* [PATCH] Speed up generic __strcpy_chk
@ 2004-10-18 9:38 Jakub Jelinek
0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2004-10-18 9:38 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-10-18 9:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-18 9:38 [PATCH] Speed up generic __strcpy_chk Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).