This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Speed up generic __strcpy_chk


Hi!

On both AMD64 (32-bit glibc) and P4 the following patch gives up to 40%
speedup on longer string copies, on really short strings it is sometimes
a few ticks slower but sometimes faster too.

2004-10-18  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
	destlen only every 4 bytes.

--- libc/sysdeps/generic/strcpy_chk.c.jj	2004-10-18 06:17:12.000000000 +0200
+++ libc/sysdeps/generic/strcpy_chk.c	2004-10-18 11:29:18.826411429 +0200
@@ -31,14 +31,36 @@ __strcpy_chk (dest, src, destlen)
 {
   reg_char c;
   char *s = (char *) src;
-  const ptrdiff_t off = dest - s - 1;
+  const ptrdiff_t off = dest - s;
+
+  while (__builtin_expect (destlen >= 4, 0))
+    {
+      c = s[0];
+      s[off] = c;
+      if (c == '\0')
+        return dest;
+      c = s[1];
+      s[off + 1] = c;
+      if (c == '\0')
+        return dest;
+      c = s[2];
+      s[off + 2] = c;
+      if (c == '\0')
+        return dest;
+      c = s[3];
+      s[off + 3] = c;
+      if (c == '\0')
+        return dest;
+      destlen -= 4;
+      s += 4;
+    }
 
   do
     {
       if (__builtin_expect (destlen-- == 0, 0))
-	__chk_fail ();
-      c = *s++;
-      s[off] = c;
+        __chk_fail ();
+      c = *s;
+      *(s++ + off) = c;
     }
   while (c != '\0');
 


On AMD64 (__strcpy_chk_2 is the one with this patch, __strcpy_chk_1 is
the CVS one, __strcpy_chk_3 is unrolled the same way as __strcpy_chk_2,
but uses c = *s++; s[off] = c; if (c == '\0') return dest; in all cases):

                        __strcpy_chk_3  __strcpy_chk_2  __strcpy_chk_1  normal_strcpy   simple_strcpy_chk
Length    0, alignment  0/ 0:   26      26      26      19      18
Length    0, alignment  0/ 0:   26      26      26      19      19
Length    0, alignment  0/ 0:   26      26      26      19      19
Length    0, alignment  0/ 0:   26      26      26      19      19
Length    1, alignment  0/ 0:   30      28      29      19      20
Length    1, alignment  0/ 0:   30      28      29      19      20
Length    1, alignment  0/ 1:   30      28      29      19      20
Length    1, alignment  1/ 0:   30      28      29      19      20
Length    2, alignment  0/ 0:   34      34      33      20      27
Length    2, alignment  0/ 0:   34      34      33      20      27
Length    2, alignment  0/ 2:   34      34      33      20      27
Length    2, alignment  2/ 0:   34      34      34      20      27
Length    3, alignment  0/ 0:   37      33      36      25      28
Length    3, alignment  0/ 0:   37      33      36      25      27
Length    3, alignment  0/ 3:   37      33      36      25      27
Length    3, alignment  3/ 0:   35      33      37      23      29
Length    4, alignment  0/ 0:   38      37      43      24      31
Length    4, alignment  0/ 0:   38      37      43      24      31
Length    4, alignment  0/ 4:   37      37      41      26      31
Length    4, alignment  4/ 0:   37      37      39      28      31
Length    5, alignment  0/ 0:   40      40      46      34      34
Length    5, alignment  0/ 0:   40      40      46      34      34
Length    5, alignment  0/ 5:   40      42      45      31      33
Length    5, alignment  5/ 0:   39      41      42      29      34
Length    6, alignment  0/ 0:   47      45      51      33      37
Length    6, alignment  0/ 0:   47      45      51      33      38
Length    6, alignment  0/ 6:   44      44      48      30      37
Length    6, alignment  6/ 0:   43      43      46      31      36
Length    7, alignment  0/ 0:   47      47      55      35      40
Length    7, alignment  0/ 0:   47      47      55      35      40
Length    7, alignment  0/ 7:   41      41      51      35      40
Length    7, alignment  7/ 0:   43      43      50      34      40
Length    8, alignment  0/ 0:   53      52      74      56      58
Length    8, alignment  0/ 0:   53      52      74      56      58
Length    8, alignment  0/ 0:   53      52      74      56      58
Length    8, alignment  0/ 0:   53      52      74      56      58
Length    9, alignment  0/ 0:   55      54      83      62      61
Length    9, alignment  0/ 0:   55      54      83      62      61
Length    9, alignment  0/ 1:   60      59      82      64      66
Length    9, alignment  1/ 0:   52      54      82      61      61
Length   10, alignment  0/ 0:   59      58      88      64      64
Length   10, alignment  0/ 0:   59      58      88      64      64
Length   10, alignment  0/ 2:   63      61      88      64      67
Length   10, alignment  2/ 0:   56      55      81      55      64
Length   11, alignment  0/ 0:   57      57      93      66      67
Length   11, alignment  0/ 0:   57      57      93      66      67
Length   11, alignment  0/ 3:   59      56      94      69      71
Length   11, alignment  3/ 0:   50      48      84      57      67
Length   12, alignment  0/ 0:   62      62      92      61      70
Length   12, alignment  0/ 0:   62      62      92      61      70
Length   12, alignment  0/ 4:   65      60      95      71      70
Length   12, alignment  4/ 0:   54      52      123     56      70
Length   13, alignment  0/ 0:   65      66      137     67      73
Length   13, alignment  0/ 0:   65      66      137     67      73
Length   13, alignment  0/ 5:   62      63      129     72      73
Length   13, alignment  5/ 0:   57      56      127     58      73
Length   14, alignment  0/ 0:   69      68      141     69      76
Length   14, alignment  0/ 0:   69      68      141     69      76
Length   14, alignment  0/ 6:   66      66      131     72      76
Length   14, alignment  6/ 0:   59      60      131     60      76
Length   15, alignment  0/ 0:   66      65      128     71      79
Length   15, alignment  0/ 0:   66      65      145     71      79
Length   15, alignment  0/ 7:   61      60      135     70      79
Length   15, alignment  7/ 0:   59      58      118     64      79
Length   16, alignment  0/ 0:   75      72      144     70      82
Length   16, alignment  7/ 2:   63      62      139     66      82
Length   32, alignment  0/ 0:   135     128     220     109     130
Length   32, alignment  6/ 4:   120     117     211     100     130
Length   64, alignment  0/ 0:   227     213     364     189     226
Length   64, alignment  5/ 6:   248     240     352     200     238
Length  128, alignment  0/ 0:   411     381     656     343     418
Length  128, alignment  4/ 0:   329     329     587     284     418
Length  256, alignment  0/ 0:   779     717     1240    653     802
Length  256, alignment  3/ 2:   652     628     1198    603     802
Length  512, alignment  0/ 0:   1515    1389    2408    1232    1570
Length  512, alignment  2/ 4:   1706    1674    2224    1431    1668
Length 1024, alignment  0/ 0:   2987    2733    4727    2385    3106
Length 1024, alignment  1/ 6:   2891    2922    4458    2121    3106
Length   16, alignment  1/ 2:   81      73      144     81      88
Length   16, alignment  2/ 1:   67      67      148     75      82
Length   16, alignment  1/ 1:   70      72      149     76      82
Length   16, alignment  1/ 1:   70      72      149     76      82
Length   32, alignment  2/ 4:   148     145     220     126     138
Length   32, alignment  4/ 2:   118     116     211     99      130
Length   32, alignment  2/ 2:   128     127     226     108     130
Length   32, alignment  2/ 2:   128     127     226     108     130
Length   64, alignment  3/ 6:   241     246     342     216     240
Length   64, alignment  6/ 3:   185     185     331     157     226
Length   64, alignment  3/ 3:   213     205     370     192     226
Length   64, alignment  3/ 3:   213     205     370     192     226
Length  128, alignment  4/ 0:   329     329     587     284     418
Length  128, alignment  0/ 4:   437     428     631     391     418
Length  128, alignment  4/ 4:   412     380     657     335     418
Length  128, alignment  4/ 4:   412     380     657     335     418
Length  256, alignment  5/ 2:   617     617     1099    541     802
Length  256, alignment  2/ 5:   861     803     1128    760     823
Length  256, alignment  5/ 5:   702     707     1248    628     802
Length  256, alignment  5/ 5:   702     707     1248    628     802
Length  512, alignment  6/ 4:   1216    1197    2258    1079    1570
Length  512, alignment  4/ 6:   1723    1733    2224    1425    1672
Length  512, alignment  6/ 6:   1397    1450    2416    1200    1570
Length  512, alignment  6/ 6:   1397    1450    2416    1200    1570
Length 1024, alignment  7/ 6:   2516    2382    4558    2299    3106
Length 1024, alignment  6/ 7:   3168    3042    4432    2656    3118
Length 1024, alignment  7/ 7:   2803    2590    4732    2512    3106
Length 1024, alignment  7/ 7:   2803    2590    4749    2512    3106
Length    0, alignment  0/ 0:   27      25      45      19      19
Length    0, alignment  0/ 0:   27      25      45      19      19
Length    0, alignment  0/ 0:   27      25      58      19      19
Length    0, alignment  0/ 0:   27      25      58      19      19
Length    1, alignment  0/ 0:   28      28      49      19      20
Length    1, alignment  0/ 0:   28      28      66      19      20
Length    1, alignment  0/ 1:   28      28      61      19      20
Length    1, alignment  1/ 0:   28      28      61      19      20
Length    2, alignment  0/ 0:   31      29      53      20      27
Length    2, alignment  0/ 0:   31      29      53      20      27
Length    2, alignment  0/ 2:   31      29      53      20      27
Length    2, alignment  2/ 0:   31      29      53      20      27
Length    3, alignment  0/ 0:   34      33      57      25      28
Length    3, alignment  0/ 0:   34      33      57      25      27
Length    3, alignment  0/ 3:   34      33      57      25      27
Length    3, alignment  3/ 0:   35      33      54      23      29
Length    4, alignment  0/ 0:   37      37      78      24      31
Length    4, alignment  0/ 0:   37      37      61      24      31
Length    4, alignment  0/ 4:   37      36      59      26      31
Length    4, alignment  4/ 0:   38      36      58      28      31
Length    5, alignment  0/ 0:   39      42      80      34      34
Length    5, alignment  0/ 0:   39      42      65      34      34
Length    5, alignment  0/ 5:   37      38      63      31      33
Length    5, alignment  5/ 0:   37      40      62      29      34
Length    6, alignment  0/ 0:   43      41      67      33      37
Length    6, alignment  0/ 0:   43      41      67      33      38
Length    6, alignment  0/ 6:   38      41      66      30      37
Length    6, alignment  6/ 0:   38      38      66      31      36
Length    7, alignment  0/ 0:   48      47      91      35      40
Length    7, alignment  0/ 0:   48      47      91      35      40
Length    7, alignment  0/ 7:   43      42      87      35      40
Length    7, alignment  7/ 0:   42      43      87      34      40
Length    8, alignment  0/ 0:   52      52      91      56      58
Length    8, alignment  0/ 0:   52      52      91      56      58
Length    8, alignment  0/ 0:   52      52      91      56      58
Length    8, alignment  0/ 0:   52      52      91      56      58
Length    9, alignment  0/ 0:   53      55      100     62      61
Length    9, alignment  0/ 0:   53      55      100     62      61
Length    9, alignment  0/ 1:   55      59      99      64      66
Length    9, alignment  1/ 0:   51      50      100     61      61
Length   10, alignment  0/ 0:   73      73      105     64      64
Length   10, alignment  0/ 0:   73      73      105     64      64
Length   10, alignment  0/ 2:   72      78      103     64      67
Length   10, alignment  2/ 0:   64      64      100     55      64
Length   11, alignment  0/ 0:   73      73      110     66      67
Length   11, alignment  0/ 0:   73      73      110     66      67
Length   11, alignment  0/ 3:   79      79      111     69      71
Length   11, alignment  3/ 0:   61      62      102     57      67
Length   12, alignment  0/ 0:   73      75      109     61      70
Length   12, alignment  0/ 0:   73      75      109     61      70
Length   12, alignment  0/ 4:   79      82      113     71      70
Length   12, alignment  4/ 0:   66      67      106     56      70
Length   13, alignment  0/ 0:   79      82      120     67      73
Length   13, alignment  0/ 0:   79      82      120     67      73
Length   13, alignment  0/ 5:   82      81      112     72      73
Length   13, alignment  5/ 0:   71      72      110     58      73
Length   14, alignment  0/ 0:   81      84      124     69      76
Length   14, alignment  0/ 0:   81      84      124     69      76
Length   14, alignment  0/ 6:   78      78      114     72      76
Length   14, alignment  6/ 0:   73      74      114     60      76
Length   15, alignment  0/ 0:   78      86      128     71      79
Length   15, alignment  0/ 0:   78      86      128     71      79
Length   15, alignment  0/ 7:   73      73      118     70      79
Length   15, alignment  7/ 0:   73      73      118     64      79
Length   16, alignment  0/ 0:   82      87      127     70      82
Length   16, alignment  7/ 2:   77      78      122     66      82
Length   32, alignment  0/ 0:   128     130     203     109     130
Length   32, alignment  6/ 4:   122     124     194     100     130
Length   64, alignment  0/ 0:   215     217     347     189     226
Length   64, alignment  5/ 6:   231     267     335     200     238
Length  128, alignment  0/ 0:   392     395     639     343     418
Length  128, alignment  4/ 0:   385     386     570     284     418
Length  256, alignment  0/ 0:   742     751     1223    653     802
Length  256, alignment  3/ 2:   738     745     1181    603     802
Length  512, alignment  0/ 0:   1450    1463    2391    1271    1570
Length  512, alignment  2/ 4:   1548    1725    2207    1431    1668
Length 1024, alignment  0/ 0:   2866    2887    4727    2509    3106
Length 1024, alignment  1/ 6:   2885    2993    4441    2744    3106
Length   16, alignment  1/ 2:   92      96      127     81      88
Length   16, alignment  2/ 1:   81      82      131     75      82
Length   16, alignment  1/ 1:   84      86      132     76      82
Length   16, alignment  1/ 1:   84      86      132     76      82
Length   32, alignment  2/ 4:   135     153     203     126     138
Length   32, alignment  4/ 2:   122     124     194     99      130
Length   32, alignment  2/ 2:   129     133     209     108     130
Length   32, alignment  2/ 2:   129     133     209     108     130
Length   64, alignment  3/ 6:   240     258     325     216     240
Length   64, alignment  6/ 3:   209     210     314     157     226
Length   64, alignment  3/ 3:   211     220     353     192     226
Length   64, alignment  3/ 3:   211     220     353     192     226
Length  128, alignment  4/ 0:   385     386     570     284     418
Length  128, alignment  0/ 4:   410     456     614     391     418
Length  128, alignment  4/ 4:   392     397     640     335     418
Length  128, alignment  4/ 4:   392     397     640     335     418
Length  256, alignment  5/ 2:   737     738     1082    541     802
Length  256, alignment  2/ 5:   866     903     1111    760     823
Length  256, alignment  5/ 5:   739     745     1231    628     802
Length  256, alignment  5/ 5:   739     745     1231    628     802
Length  512, alignment  6/ 4:   1442    1444    2241    1079    1570
Length  512, alignment  4/ 6:   1653    1723    2207    1425    1672
Length  512, alignment  6/ 6:   1449    1490    2399    1200    1570
Length  512, alignment  6/ 6:   1449    1490    2399    1200    1570
Length 1024, alignment  7/ 6:   2854    2861    4541    2299    3106
Length 1024, alignment  6/ 7:   3072    3343    4415    2634    3118
Length 1024, alignment  7/ 7:   2854    2903    4732    2359    3106
Length 1024, alignment  7/ 7:   2854    2888    4732    2361    3106
Length    0, alignment  0/ 0:   27      26      45      19      20
Length    0, alignment  0/ 0:   27      26      58      19      20
Length    0, alignment  0/ 0:   27      25      58      19      20
Length    1, alignment  0/ 0:   30      28      66      19      20
Length    1, alignment  0/ 1:   28      28      66      19      20
Length    1, alignment  1/ 0:   28      28      66      19      20
Length    2, alignment  0/ 0:   31      29      70      20      24
Length    2, alignment  0/ 2:   31      29      70      20      24
Length    2, alignment  2/ 0:   31      29      70      20      24
Length    3, alignment  0/ 0:   34      33      74      25      27
Length    3, alignment  0/ 3:   34      33      74      25      27
Length    3, alignment  3/ 0:   35      33      71      23      27
Length    4, alignment  0/ 0:   38      37      97      24      47
Length    4, alignment  0/ 4:   35      37      92      26      46
Length    4, alignment  4/ 0:   38      36      88      28      46
Length    5, alignment  0/ 0:   40      45      100     34      53
Length    5, alignment  0/ 5:   37      38      95      31      48
Length    5, alignment  5/ 0:   37      40      95      29      48
Length    6, alignment  0/ 0:   43      41      105     33      56
Length    6, alignment  0/ 6:   38      41      99      30      51
Length    6, alignment  6/ 0:   38      38      99      31      51
Length    7, alignment  0/ 0:   48      47      109     35      59
Length    7, alignment  0/ 7:   43      42      103     35      54
Length    7, alignment  7/ 0:   42      43      103     34      54
Length    8, alignment  0/ 0:   52      52      108     56      60
Length    8, alignment  0/ 0:   52      52      91      56      60
Length    8, alignment  0/ 0:   52      52      91      56      60
Length    9, alignment  0/ 0:   56      54      118     62      67
Length    9, alignment  0/ 1:   55      59      116     64      69
Length    9, alignment  1/ 0:   51      50      117     61      67
Length   10, alignment  0/ 0:   73      73      122     64      70
Length   10, alignment  0/ 2:   72      78      120     64      72
Length   10, alignment  2/ 0:   64      64      117     55      66
Length   11, alignment  0/ 0:   73      73      127     66      74
Length   11, alignment  0/ 3:   79      79      128     69      76
Length   11, alignment  3/ 0:   61      62      119     57      69
Length   12, alignment  0/ 0:   77      77      126     61      75
Length   12, alignment  0/ 4:   77      80      130     71      73
Length   12, alignment  4/ 0:   66      67      123     56      73
Length   13, alignment  0/ 0:   80      80      137     67      78
Length   13, alignment  0/ 5:   82      81      129     72      77
Length   13, alignment  5/ 0:   71      72      127     58      77
Length   14, alignment  0/ 0:   81      84      141     69      87
Length   14, alignment  0/ 6:   78      78      131     72      81
Length   14, alignment  6/ 0:   73      74      131     60      81
Length   15, alignment  0/ 0:   78      86      146     71      85
Length   15, alignment  0/ 7:   73      73      135     70      85
Length   15, alignment  7/ 0:   73      73      135     64      85
Length   16, alignment  7/ 2:   77      78      139     66      89
Length   32, alignment  6/ 4:   122     124     211     100     153
Length   64, alignment  5/ 6:   231     267     352     200     286
Length  128, alignment  4/ 0:   385     386     587     284     537
Length  256, alignment  3/ 2:   738     745     1198    603     1049
Length  512, alignment  2/ 4:   1548    1725    2224    1431    2078
Length 1024, alignment  1/ 6:   2885    2993    4458    2744    4121
Length   16, alignment  1/ 2:   92      95      144     81      95
Length   16, alignment  1/ 1:   84      87      132     76      89
Length   16, alignment  1/ 1:   84      86      132     76      89
Length   32, alignment  2/ 4:   137     152     220     126     158
Length   32, alignment  4/ 2:   124     125     211     99      153
Length   32, alignment  2/ 2:   129     133     226     108     153
Length   32, alignment  2/ 2:   129     133     226     108     153
Length   64, alignment  3/ 6:   238     258     342     216     286
Length   64, alignment  6/ 3:   211     213     331     155     281
Length   64, alignment  3/ 3:   211     220     370     192     281
Length   64, alignment  3/ 3:   211     220     370     192     281
Length  128, alignment  4/ 0:   385     386     587     284     537
Length  128, alignment  0/ 4:   412     453     631     391     537
Length  128, alignment  4/ 4:   392     397     657     335     537
Length  128, alignment  4/ 4:   392     397     657     335     537
Length  256, alignment  5/ 2:   737     738     1099    541     1049
Length  256, alignment  2/ 5:   866     903     1111    760     1055
Length  256, alignment  5/ 5:   739     745     1248    628     1049
Length  256, alignment  5/ 5:   739     745     1248    628     1049
Length  512, alignment  6/ 4:   1442    1444    2241    1079    2073
Length  512, alignment  4/ 6:   1653    1723    2207    1425    2078
Length  512, alignment  6/ 6:   1449    1490    2416    1200    2073
Length  512, alignment  6/ 6:   1449    1490    2416    1200    2073
Length 1024, alignment  7/ 6:   2854    2861    4558    2299    4121
Length 1024, alignment  6/ 7:   3072    3343    4432    2625    4126
Length 1024, alignment  7/ 7:   2854    2903    4749    2361    4121
Length 1024, alignment  7/ 7:   2854    2903    4749    2359    4121

and on P4:

                        __strcpy_chk_3  __strcpy_chk_2  __strcpy_chk_1  normal_strcpy   simple_strcpy_chk
Length    0, alignment  0/ 0:   36      32      36      24      20
Length    0, alignment  0/ 0:   36      32      28      24      20
Length    0, alignment  0/ 0:   36      32      32      32      36
Length    0, alignment  0/ 0:   52      32      32      36      32
Length    1, alignment  0/ 0:   48      48      48      28      32
Length    1, alignment  0/ 0:   48      48      48      28      32
Length    1, alignment  0/ 1:   64      64      56      36      32
Length    1, alignment  1/ 0:   60      60      48      36      32
Length    2, alignment  0/ 0:   76      68      60      32      40
Length    2, alignment  0/ 0:   68      76      64      32      36
Length    2, alignment  0/ 2:   76      68      64      32      44
Length    2, alignment  2/ 0:   60      68      60      32      36
Length    3, alignment  0/ 0:   72      68      72      32      44
Length    3, alignment  0/ 0:   68      64      84      32      48
Length    3, alignment  0/ 3:   80      76      80      44      56
Length    3, alignment  3/ 0:   68      64      76      36      44
Length    4, alignment  0/ 0:   88      84      76      44      56
Length    4, alignment  0/ 0:   80      84      80      64      84
Length    4, alignment  0/ 4:   88      88      112     76      88
Length    4, alignment  4/ 0:   84      76      80      72      92
Length    5, alignment  0/ 0:   84      76      60      32      44
Length    5, alignment  0/ 0:   48      44      72      32      44
Length    5, alignment  0/ 5:   48      44      80      32      48
Length    5, alignment  5/ 0:   48      44      72      32      44
Length    6, alignment  0/ 0:   52      48      76      36      64
Length    6, alignment  0/ 0:   56      48      76      36      64
Length    6, alignment  0/ 6:   56      48      84      36      68
Length    6, alignment  6/ 0:   56      48      76      36      64
Length    7, alignment  0/ 0:   48      40      80      40      68
Length    7, alignment  0/ 0:   48      40      80      40      68
Length    7, alignment  0/ 7:   48      40      84      40      76
Length    7, alignment  7/ 0:   48      40      116     60      84
Length    8, alignment  0/ 0:   124     120     124     84      108
Length    8, alignment  0/ 0:   96      92      120     84      104
Length    8, alignment  0/ 0:   96      112     120     84      108
Length    8, alignment  0/ 0:   116     96      132     96      104
Length    9, alignment  0/ 0:   112     112     128     76      112
Length    9, alignment  0/ 0:   124     112     136     92      136
Length    9, alignment  0/ 1:   120     124     168     84      92
Length    9, alignment  1/ 0:   56      56      84      44      80
Length   10, alignment  0/ 0:   64      60      96      44      80
Length   10, alignment  0/ 0:   80      60      92      44      84
Length   10, alignment  0/ 2:   88      60      100     72      96
Length   10, alignment  2/ 0:   80      60      88      44      84
Length   11, alignment  0/ 0:   56      52      96      48      88
Length   11, alignment  0/ 0:   56      60      96      48      88
Length   11, alignment  0/ 3:   56      76      108     48      100
Length   11, alignment  3/ 0:   56      60      96      48      88
Length   12, alignment  0/ 0:   132     112     148     88      132
Length   12, alignment  0/ 0:   128     116     148     104     136
Length   12, alignment  0/ 4:   128     120     176     116     164
Length   12, alignment  4/ 0:   132     120     156     112     136
Length   13, alignment  0/ 0:   120     124     156     104     144
Length   13, alignment  0/ 0:   136     124     192     116     140
Length   13, alignment  0/ 5:   72      64      128     56      120
Length   13, alignment  5/ 0:   72      64      104     56      104
Length   14, alignment  0/ 0:   76      68      112     68      112
Length   14, alignment  0/ 0:   76      68      112     68      112
Length   14, alignment  0/ 6:   72      68      124     80      124
Length   14, alignment  6/ 0:   76      68      112     68      112
Length   15, alignment  0/ 0:   68      60      116     56      116
Length   15, alignment  0/ 0:   68      60      116     56      108
Length   15, alignment  0/ 7:   72      64      128     80      124
Length   15, alignment  7/ 0:   68      60      116     56      108
Length   16, alignment  0/ 0:   76      72      120     72      112
Length   16, alignment  7/ 2:   72      72      120     72      112
Length   32, alignment  0/ 0:   132     128     216     108     280
Length   32, alignment  6/ 4:   232     232     284     196     276
Length   64, alignment  0/ 0:   372     404     528     328     540
Length   64, alignment  5/ 6:   556     576     796     604     748
Length  128, alignment  0/ 0:   668     704     1116    760     1108
Length  128, alignment  4/ 0:   776     728     1164    800     1156
Length  256, alignment  0/ 0:   804     688     1564    780     2052
Length  256, alignment  3/ 2:   804     688     1560    780     2052
Length  512, alignment  0/ 0:   1572    1328    3092    1548    4100
Length  512, alignment  2/ 4:   2612    2616    3376    2536    3784
Length 1024, alignment  0/ 0:   5552    5580    10092   5668    6160
Length 1024, alignment  1/ 6:   4212    4080    6396    4092    6868
Length   16, alignment  1/ 2:   164     164     232     168     204
Length   16, alignment  2/ 1:   124     128     188     128     164
Length   16, alignment  1/ 1:   128     124     184     120     168
Length   16, alignment  1/ 1:   132     144     228     140     208
Length   32, alignment  2/ 4:   284     288     372     264     376
Length   32, alignment  4/ 2:   236     240     292     228     352
Length   32, alignment  2/ 2:   244     260     300     216     324
Length   32, alignment  2/ 2:   224     128     220     112     208
Length   64, alignment  3/ 6:   320     320     460     292     456
Length   64, alignment  6/ 3:   228     208     408     208     400
Length   64, alignment  3/ 3:   228     208     408     208     400
Length   64, alignment  3/ 3:   228     208     408     208     400
Length  128, alignment  4/ 0:   420     368     792     400     784
Length  128, alignment  0/ 4:   576     540     1284    836     1360
Length  128, alignment  4/ 4:   668     712     1024    624     1156
Length  128, alignment  4/ 4:   752     744     1136    652     784
Length  256, alignment  5/ 2:   688     688     1564    780     1552
Length  256, alignment  2/ 5:   1164    1136    1712    1104    1792
Length  256, alignment  5/ 5:   1368    1364    2228    1404    2408
Length  256, alignment  5/ 5:   1408    1392    1964    1292    2708
Length  512, alignment  6/ 4:   2656    1340    3100    1548    3088
Length  512, alignment  4/ 6:   2576    2600    3372    3580    5700
Length  512, alignment  6/ 6:   2728    2628    3712    2052    3088
Length  512, alignment  6/ 6:   1564    1332    3092    2052    3088
Length 1024, alignment  7/ 6:   3100    5464    8564    5808    6156
Length 1024, alignment  6/ 7:   5384    5332    8412    8888    11924
Length 1024, alignment  7/ 7:   3100    2608    6172    3596    6160
Length 1024, alignment  7/ 7:   3100    2608    6168    3084    6160
Length    0, alignment  0/ 0:   36      32      40      24      24
Length    0, alignment  0/ 0:   36      32      40      24      24
Length    0, alignment  0/ 0:   40      32      40      24      24
Length    0, alignment  0/ 0:   36      32      44      24      24
Length    1, alignment  0/ 0:   40      40      68      28      36
Length    1, alignment  0/ 0:   40      40      68      28      32
Length    1, alignment  0/ 1:   52      44      92      32      48
Length    1, alignment  1/ 0:   44      44      72      32      40
Length    2, alignment  0/ 0:   64      60      80      32      72
Length    2, alignment  0/ 0:   60      60      56      24      28
Length    2, alignment  0/ 2:   32      32      44      24      28
Length    2, alignment  2/ 0:   32      32      40      24      36
Length    3, alignment  0/ 0:   44      32      48      28      44
Length    3, alignment  0/ 0:   48      32      48      28      44
Length    3, alignment  0/ 3:   48      32      56      28      44
Length    3, alignment  3/ 0:   48      32      48      28      44
Length    4, alignment  0/ 0:   48      36      64      32      44
Length    4, alignment  0/ 0:   60      36      64      32      44
Length    4, alignment  0/ 4:   60      36      64      32      48
Length    4, alignment  4/ 0:   92      72      92      44      76
Length    5, alignment  0/ 0:   92      72      104     44      84
Length    5, alignment  0/ 0:   92      76      84      44      84
Length    5, alignment  0/ 5:   92      72      84      52      100
Length    5, alignment  5/ 0:   92      72      84      44      92
Length    6, alignment  0/ 0:   100     88      112     80      108
Length    6, alignment  0/ 0:   96      76      104     52      104
Length    6, alignment  0/ 6:   92      92      128     92      88
Length    6, alignment  6/ 0:   84      80      112     52      76
Length    7, alignment  0/ 0:   92      120     148     64      88
Length    7, alignment  0/ 0:   76      40      68      36      68
Length    7, alignment  0/ 7:   44      40      84      36      84
Length    7, alignment  7/ 0:   48      40      76      36      68
Length    8, alignment  0/ 0:   56      48      80      44      72
Length    8, alignment  0/ 0:   56      48      84      44      72
Length    8, alignment  0/ 0:   52      48      80      44      72
Length    8, alignment  0/ 0:   52      48      80      44      72
Length    9, alignment  0/ 0:   56      48      84      44      80
Length    9, alignment  0/ 0:   52      60      88      44      80
Length    9, alignment  0/ 1:   60      96      108     48      100
Length    9, alignment  1/ 0:   52      60      84      44      80
Length   10, alignment  0/ 0:   56      52      92      44      84
Length   10, alignment  0/ 0:   56      48      92      44      84
Length   10, alignment  0/ 2:   56      48      104     60      104
Length   10, alignment  2/ 0:   56      48      92      44      84
Length   11, alignment  0/ 0:   60      52      96      48      88
Length   11, alignment  0/ 0:   52      60      96      48      88
Length   11, alignment  0/ 3:   56      52      108     68      104
Length   11, alignment  3/ 0:   56      52      96      48      88
Length   12, alignment  0/ 0:   60      56      100     60      92
Length   12, alignment  0/ 0:   64      56      100     60      92
Length   12, alignment  0/ 4:   64      56      112     60      108
Length   12, alignment  4/ 0:   60      56      100     60      92
Length   13, alignment  0/ 0:   104     104     156     100     140
Length   13, alignment  0/ 0:   108     108     160     100     136
Length   13, alignment  0/ 5:   120     120     180     124     164
Length   13, alignment  5/ 0:   120     100     156     104     148
Length   14, alignment  0/ 0:   120     116     168     112     152
Length   14, alignment  0/ 0:   108     108     196     120     148
Length   14, alignment  0/ 6:   132     124     188     148     160
Length   14, alignment  6/ 0:   112     124     168     120     164
Length   15, alignment  0/ 0:   128     128     176     112     120
Length   15, alignment  0/ 0:   64      60      120     60      108
Length   15, alignment  0/ 7:   72      64      132     80      124
Length   15, alignment  7/ 0:   68      60      120     60      108
Length   16, alignment  0/ 0:   92      88      124     80      112
Length   16, alignment  7/ 2:   92      88      124     80      112
Length   32, alignment  0/ 0:   128     124     220     132     196
Length   32, alignment  6/ 4:   124     124     220     132     196
Length   64, alignment  0/ 0:   208     204     412     260     388
Length   64, alignment  5/ 6:   380     548     736     572     740
Length  128, alignment  0/ 0:   680     756     1152    700     1060
Length  128, alignment  4/ 0:   724     732     1136    788     1400
Length  256, alignment  0/ 0:   1392    1432    2668    1436    2548
Length  256, alignment  3/ 2:   1328    1224    1960    1468    2116
Length  512, alignment  0/ 0:   2656    2672    3100    1548    3088
Length  512, alignment  2/ 4:   3316    3408    3384    2536    3792
Length 1024, alignment  0/ 0:   5404    2612    6172    5500    10528
Length 1024, alignment  1/ 6:   6072    4088    6408    4092    6772
Length   16, alignment  1/ 2:   152     184     236     184     200
Length   16, alignment  2/ 1:   148     140     200     136     224
Length   16, alignment  1/ 1:   132     144     176     128     228
Length   16, alignment  1/ 1:   116     144     180     140     164
Length   32, alignment  2/ 4:   280     292     388     280     440
Length   32, alignment  4/ 2:   244     220     304     224     284
Length   32, alignment  2/ 2:   224     244     324     240     296
Length   32, alignment  2/ 2:   256     256     404     220     276
Length   64, alignment  3/ 6:   320     324     464     288     468
Length   64, alignment  6/ 3:   208     204     404     204     400
Length   64, alignment  3/ 3:   208     204     404     204     400
Length   64, alignment  3/ 3:   204     204     408     204     400
Length  128, alignment  4/ 0:   368     364     792     396     784
Length  128, alignment  0/ 4:   580     564     852     532     892
Length  128, alignment  4/ 4:   368     364     792     396     784
Length  128, alignment  4/ 4:   368     364     792     396     784
Length  256, alignment  5/ 2:   736     684     1560    784     1552
Length  256, alignment  2/ 5:   1172    1168    1708    1108    1812
Length  256, alignment  5/ 5:   736     684     1560    784     1552
Length  256, alignment  5/ 5:   736     684     1564    784     1552
Length  512, alignment  6/ 4:   1440    1324    3100    1548    3088
Length  512, alignment  4/ 6:   2596    3364    5528    3668    5904
Length  512, alignment  6/ 6:   2744    2832    4368    2944    5316
Length  512, alignment  6/ 6:   2768    2836    4312    2896    5260
Length 1024, alignment  7/ 6:   5448    5468    6172    3084    6160
Length 1024, alignment  6/ 7:   5384    5352    8404    5912    8544
Length 1024, alignment  7/ 7:   2612    2604    6168    3084    6160
Length 1024, alignment  7/ 7:   2612    2604    6168    6220    10196
Length    0, alignment  0/ 0:   56      44      52      32      24
Length    0, alignment  0/ 0:   44      64      44      48      32
Length    0, alignment  0/ 0:   48      36      40      24      32
Length    1, alignment  0/ 0:   52      48      48      28      32
Length    1, alignment  0/ 1:   44      28      40      20      28
Length    1, alignment  1/ 0:   32      28      36      20      28
Length    2, alignment  0/ 0:   36      32      44      24      28
Length    2, alignment  0/ 2:   32      40      40      24      28
Length    2, alignment  2/ 0:   32      32      40      36      40
Length    3, alignment  0/ 0:   60      92      88      36      44
Length    3, alignment  0/ 3:   72      72      108     48      76
Length    3, alignment  3/ 0:   72      72      88      32      64
Length    4, alignment  0/ 0:   92      100     92      40      56
Length    4, alignment  0/ 4:   72      88      84      56      72
Length    4, alignment  4/ 0:   68      68      56      28      40
Length    5, alignment  0/ 0:   44      44      60      32      44
Length    5, alignment  0/ 5:   40      40      56      36      52
Length    5, alignment  5/ 0:   44      36      68      32      48
Length    6, alignment  0/ 0:   44      40      64      36      48
Length    6, alignment  0/ 6:   44      40      84      36      48
Length    6, alignment  6/ 0:   44      40      76      36      48
Length    7, alignment  0/ 0:   48      40      80      36      52
Length    7, alignment  0/ 7:   48      40      88      36      52
Length    7, alignment  7/ 0:   48      40      80      36      52
Length    8, alignment  0/ 0:   56      52      84      40      60
Length    8, alignment  0/ 0:   52      108     128     60      104
Length    8, alignment  0/ 0:   80      80      124     84      104
Length    9, alignment  0/ 0:   164     100     132     68      92
Length    9, alignment  0/ 1:   104     116     160     88      136
Length    9, alignment  1/ 0:   88      88      132     80      112
Length   10, alignment  0/ 0:   96      100     144     76      124
Length   10, alignment  0/ 2:   104     168     160     116     144
Length   10, alignment  2/ 0:   104     116     132     104     124
Length   11, alignment  0/ 0:   100     116     152     104     156
Length   11, alignment  0/ 3:   128     172     196     104     160
Length   11, alignment  3/ 0:   100     140     172     92      140
Length   12, alignment  0/ 0:   112     120     160     108     148
Length   12, alignment  0/ 4:   132     124     180     136     164
Length   12, alignment  4/ 0:   108     104     152     116     136
Length   13, alignment  0/ 0:   116     132     196     116     152
Length   13, alignment  0/ 5:   140     132     192     132     140
Length   13, alignment  5/ 0:   60      56      108     52      96
Length   14, alignment  0/ 0:   60      60      116     68      100
Length   14, alignment  0/ 6:   68      60      128     80      116
Length   14, alignment  6/ 0:   60      60      116     68      100
Length   15, alignment  0/ 0:   68      60      120     72      108
Length   15, alignment  0/ 7:   72      64      132     60      124
Length   15, alignment  7/ 0:   68      60      120     56      108
Length   16, alignment  7/ 2:   92      88      124     72      116
Length   32, alignment  6/ 4:   128     124     220     108     208
Length   64, alignment  5/ 6:   380     352     552     372     512
Length  128, alignment  4/ 0:   368     364     796     396     784
Length  256, alignment  3/ 2:   688     684     1564    780     1552
Length  512, alignment  2/ 4:   2584    2620    3380    2552    3776
Length 1024, alignment  1/ 6:   6224    6288    11508   7328    11592
Length   16, alignment  1/ 2:   196     212     256     176     240
Length   16, alignment  1/ 1:   140     128     176     112     184
Length   16, alignment  1/ 1:   132     156     232     140     196
Length   32, alignment  2/ 4:   300     296     376     260     400
Length   32, alignment  4/ 2:   264     240     356     212     336
Length   32, alignment  2/ 2:   244     256     336     220     364
Length   32, alignment  2/ 2:   248     236     384     232     304
Length   64, alignment  3/ 6:   464     484     712     504     764
Length   64, alignment  6/ 3:   344     356     412     204     400
Length   64, alignment  3/ 3:   208     204     408     204     400
Length   64, alignment  3/ 3:   208     204     408     204     400
Length  128, alignment  4/ 0:   364     364     792     396     784
Length  128, alignment  0/ 4:   576     560     856     532     892
Length  128, alignment  4/ 4:   368     364     792     396     784
Length  128, alignment  4/ 4:   368     364     792     396     784
Length  256, alignment  5/ 2:   688     684     1560    780     1552
Length  256, alignment  2/ 5:   1172    1168    1720    1104    1816
Length  256, alignment  5/ 5:   688     684     1560    780     1552
Length  256, alignment  5/ 5:   684     684     1560    780     1552
Length  512, alignment  6/ 4:   1328    1324    3096    1548    3088
Length  512, alignment  4/ 6:   2588    2640    3376    2548    3776
Length  512, alignment  6/ 6:   2628    2732    3708    2888    5028
Length  512, alignment  6/ 6:   2664    2752    4688    2952    4304
Length 1024, alignment  7/ 6:   2612    2608    6172    3088    6160
Length 1024, alignment  6/ 7:   5384    5352    8384    5936    8496
Length 1024, alignment  7/ 7:   3100    2604    6168    5892    9700
Length 1024, alignment  7/ 7:   5348    5432    9428    5940    9584


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]