2 Copyright (C) 2010-2024 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
22 #include "asm-syntax.h"
24 #define CFI_PUSH(REG) \
25 cfi_adjust_cfa_offset (4); \
26 cfi_rel_offset (REG, 0)
28 #define CFI_POP(REG) \
29 cfi_adjust_cfa_offset (-4); \
32 #define PUSH(REG) pushl REG; CFI_PUSH (REG)
33 #define POP(REG) popl REG; CFI_POP (REG)
37 # define STRCMP __strncmp_ssse3
42 # define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
43 # define UPDATE_STRNCMP_COUNTER \
44 /* calculate left number to compare */ \
48 jbe L(more8byteseq); \
52 #elif defined USE_AS_STRCASECMP_L
53 # include "locale-defines.h"
55 # define STRCMP __strcasecmp_l_ssse3
63 # define LOCALE 12 /* Loaded before the adjustment. */
65 # define RETURN POP (%ebx); ret; .p2align 4; CFI_PUSH (%ebx)
67 # define RETURN ret; .p2align 4
69 # define UPDATE_STRNCMP_COUNTER
71 # define NONASCII __strcasecmp_nonascii
72 #elif defined USE_AS_STRNCASECMP_L
73 # include "locale-defines.h"
75 # define STRCMP __strncasecmp_l_ssse3
84 # define LOCALE 16 /* Loaded before the adjustment. */
86 # define RETURN POP (REM); POP (%ebx); ret; \
87 .p2align 4; CFI_PUSH (%ebx); CFI_PUSH (REM)
89 # define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
91 # define UPDATE_STRNCMP_COUNTER \
92 /* calculate left number to compare */ \
96 jbe L(more8byteseq); \
100 # define NONASCII __strncasecmp_nonascii
103 # define STRCMP __strcmp_ssse3
107 # define RETURN ret; .p2align 4
108 # define UPDATE_STRNCMP_COUNTER
112 .section .text.ssse3,"ax",@progbits
114 #ifdef USE_AS_STRCASECMP_L
115 ENTRY (__strcasecmp_ssse3)
119 movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
120 movl %gs:(%eax), %eax
122 movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
124 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
125 movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
129 testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
133 jmp __strcasecmp_nonascii
135 jne __strcasecmp_nonascii
138 END (__strcasecmp_ssse3)
141 #ifdef USE_AS_STRNCASECMP_L
142 ENTRY (__strncasecmp_ssse3)
146 movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
147 movl %gs:(%eax), %eax
149 movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
151 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
152 movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
156 testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
160 jmp __strncasecmp_nonascii
162 jne __strncasecmp_nonascii
165 END (__strncasecmp_ssse3)
169 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
170 movl LOCALE(%esp), %eax
171 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
172 movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
176 testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
184 .section .rodata.cst16,"aM",@progbits,16
187 .quad 0x4040404040404040
188 .quad 0x4040404040404040
190 .quad 0x5b5b5b5b5b5b5b5b
191 .quad 0x5b5b5b5b5b5b5b5b
193 .quad 0x2020202020202020
194 .quad 0x2020202020202020
198 # define UCLOW_reg .Lbelowupper@GOTOFF(%ebx)
199 # define UCHIGH_reg .Ltopupper@GOTOFF(%ebx)
200 # define LCQWORD_reg .Ltouppermask@GOTOFF(%ebx)
202 # define UCLOW_reg .Lbelowupper
203 # define UCHIGH_reg .Ltopupper
204 # define LCQWORD_reg .Ltouppermask
208 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
212 movl STR1(%esp), %edx
213 movl STR2(%esp), %eax
214 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
217 jb L(less16bytes_sncmp)
218 #elif !defined USE_AS_STRCASECMP_L
281 movhpd 8(%eax), %xmm1
282 movhpd 8(%edx), %xmm2
283 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
284 # define TOLOWER(reg1, reg2) \
285 movdqa reg1, %xmm5; \
286 movdqa reg2, %xmm7; \
287 movdqa UCHIGH_reg, %xmm6; \
288 pcmpgtb UCLOW_reg, %xmm5; \
289 pcmpgtb UCLOW_reg, %xmm7; \
290 pcmpgtb reg1, %xmm6; \
292 movdqa UCHIGH_reg, %xmm6; \
293 pcmpgtb reg2, %xmm6; \
295 pand LCQWORD_reg, %xmm5; \
297 pand LCQWORD_reg, %xmm7; \
299 TOLOWER (%xmm1, %xmm2)
301 # define TOLOWER(reg1, reg2)
309 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
319 #if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
324 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
326 cfi_adjust_cfa_offset (4)
328 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
338 #if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
384 * The following cases will be handled by ashr_0
385 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
386 * n(0~15) n(0~15) 15(15+ n-n) ashr_0
394 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
396 TOLOWER (%xmm1, %xmm2)
399 pcmpeqb (%edx), %xmm1
408 UPDATE_STRNCMP_COUNTER
414 movdqa (%eax, %ecx), %xmm1
415 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
416 movdqa (%edx, %ecx), %xmm2
417 TOLOWER (%xmm1, %xmm2)
423 pcmpeqb (%edx, %ecx), %xmm1
429 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
438 * The following cases will be handled by ashr_1
439 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
440 * n(15) n -15 0(15 +(n-15) - n) ashr_1
450 TOLOWER (%xmm1, %xmm2)
460 UPDATE_STRNCMP_COUNTER
476 movdqa (%eax, %ecx), %xmm1
477 movdqa (%edx, %ecx), %xmm2
480 palignr $1, %xmm3, %xmm2
481 TOLOWER (%xmm1, %xmm2)
489 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
501 movdqa (%eax, %ecx), %xmm1
502 movdqa (%edx, %ecx), %xmm2
505 palignr $1, %xmm3, %xmm2
506 TOLOWER (%xmm1, %xmm2)
515 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
529 jnz L(ashr_1_exittail)
531 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
533 jbe L(ashr_1_exittail)
541 movdqa (%eax, %ecx), %xmm1
547 * The following cases will be handled by ashr_2
548 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
549 * n(14~15) n -14 1(15 +(n-14) - n) ashr_2
559 TOLOWER (%xmm1, %xmm2)
569 UPDATE_STRNCMP_COUNTER
585 movdqa (%eax, %ecx), %xmm1
586 movdqa (%edx, %ecx), %xmm2
589 palignr $2, %xmm3, %xmm2
590 TOLOWER (%xmm1, %xmm2)
599 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
610 movdqa (%eax, %ecx), %xmm1
611 movdqa (%edx, %ecx), %xmm2
614 palignr $2, %xmm3, %xmm2
615 TOLOWER (%xmm1, %xmm2)
624 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
638 jnz L(ashr_2_exittail)
640 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
642 jbe L(ashr_2_exittail)
651 movdqa (%eax, %ecx), %xmm1
657 * The following cases will be handled by ashr_3
658 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
659 * n(13~15) n -13 2(15 +(n-13) - n) ashr_3
669 TOLOWER (%xmm1, %xmm2)
679 UPDATE_STRNCMP_COUNTER
695 movdqa (%eax, %ecx), %xmm1
696 movdqa (%edx, %ecx), %xmm2
699 palignr $3, %xmm3, %xmm2
700 TOLOWER (%xmm1, %xmm2)
709 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
720 movdqa (%eax, %ecx), %xmm1
721 movdqa (%edx, %ecx), %xmm2
724 palignr $3, %xmm3, %xmm2
725 TOLOWER (%xmm1, %xmm2)
734 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
748 jnz L(ashr_3_exittail)
750 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
752 jbe L(ashr_3_exittail)
760 movdqa (%eax, %ecx), %xmm1
766 * The following cases will be handled by ashr_4
767 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
768 * n(12~15) n -12 3(15 +(n-12) - n) ashr_4
778 TOLOWER (%xmm1, %xmm2)
788 UPDATE_STRNCMP_COUNTER
804 movdqa (%eax, %ecx), %xmm1
805 movdqa (%edx, %ecx), %xmm2
808 palignr $4, %xmm3, %xmm2
809 TOLOWER (%xmm1, %xmm2)
818 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
830 movdqa (%eax, %ecx), %xmm1
831 movdqa (%edx, %ecx), %xmm2
834 palignr $4, %xmm3, %xmm2
835 TOLOWER (%xmm1, %xmm2)
844 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
859 jnz L(ashr_4_exittail)
861 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
863 jbe L(ashr_4_exittail)
872 movdqa (%eax, %ecx), %xmm1
878 * The following cases will be handled by ashr_5
879 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
880 * n(11~15) n -11 4(15 +(n-11) - n) ashr_5
890 TOLOWER (%xmm1, %xmm2)
900 UPDATE_STRNCMP_COUNTER
916 movdqa (%eax, %ecx), %xmm1
917 movdqa (%edx, %ecx), %xmm2
920 palignr $5, %xmm3, %xmm2
921 TOLOWER (%xmm1, %xmm2)
930 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
941 movdqa (%eax, %ecx), %xmm1
942 movdqa (%edx, %ecx), %xmm2
945 palignr $5, %xmm3, %xmm2
946 TOLOWER (%xmm1, %xmm2)
955 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
969 jnz L(ashr_5_exittail)
971 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
973 jbe L(ashr_5_exittail)
981 movdqa (%eax, %ecx), %xmm1
987 * The following cases will be handled by ashr_6
988 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
989 * n(10~15) n -10 5(15 +(n-10) - n) ashr_6
1000 TOLOWER (%xmm1, %xmm2)
1001 pcmpeqb %xmm1, %xmm2
1003 pmovmskb %xmm2, %edi
1010 UPDATE_STRNCMP_COUNTER
1012 movdqa (%edx), %xmm3
1026 movdqa (%eax, %ecx), %xmm1
1027 movdqa (%edx, %ecx), %xmm2
1030 palignr $6, %xmm3, %xmm2
1031 TOLOWER (%xmm1, %xmm2)
1033 pcmpeqb %xmm1, %xmm0
1034 pcmpeqb %xmm2, %xmm1
1036 pmovmskb %xmm1, %esi
1040 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1052 movdqa (%eax, %ecx), %xmm1
1053 movdqa (%edx, %ecx), %xmm2
1056 palignr $6, %xmm3, %xmm2
1057 TOLOWER (%xmm1, %xmm2)
1059 pcmpeqb %xmm1, %xmm0
1060 pcmpeqb %xmm2, %xmm1
1062 pmovmskb %xmm1, %esi
1065 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1077 pcmpeqb %xmm3, %xmm0
1078 pmovmskb %xmm0, %esi
1080 jnz L(ashr_6_exittail)
1082 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1084 jbe L(ashr_6_exittail)
1088 jmp L(gobble_ashr_6)
1092 movdqa (%eax, %ecx), %xmm1
1098 * The following cases will be handled by ashr_7
1099 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1100 * n(9~15) n - 9 6(15 +(n-9) - n) ashr_7
1107 movdqa (%edx), %xmm2
1108 movdqa (%eax), %xmm1
1109 pcmpeqb %xmm1, %xmm0
1111 TOLOWER (%xmm1, %xmm2)
1112 pcmpeqb %xmm1, %xmm2
1114 pmovmskb %xmm2, %edi
1121 UPDATE_STRNCMP_COUNTER
1123 movdqa (%edx), %xmm3
1137 movdqa (%eax, %ecx), %xmm1
1138 movdqa (%edx, %ecx), %xmm2
1141 palignr $7, %xmm3, %xmm2
1142 TOLOWER (%xmm1, %xmm2)
1144 pcmpeqb %xmm1, %xmm0
1145 pcmpeqb %xmm2, %xmm1
1147 pmovmskb %xmm1, %esi
1151 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1163 movdqa (%eax, %ecx), %xmm1
1164 movdqa (%edx, %ecx), %xmm2
1167 palignr $7, %xmm3, %xmm2
1168 TOLOWER (%xmm1, %xmm2)
1170 pcmpeqb %xmm1, %xmm0
1171 pcmpeqb %xmm2, %xmm1
1173 pmovmskb %xmm1, %esi
1177 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1189 pcmpeqb %xmm3, %xmm0
1190 pmovmskb %xmm0, %esi
1192 jnz L(ashr_7_exittail)
1194 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1196 jbe L(ashr_7_exittail)
1201 jmp L(gobble_ashr_7)
1205 movdqa (%eax, %ecx), %xmm1
1211 * The following cases will be handled by ashr_8
1212 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1213 * n(8~15) n - 8 7(15 +(n-8) - n) ashr_8
1219 movdqa (%edx), %xmm2
1220 movdqa (%eax), %xmm1
1221 pcmpeqb %xmm1, %xmm0
1223 TOLOWER (%xmm1, %xmm2)
1224 pcmpeqb %xmm1, %xmm2
1226 pmovmskb %xmm2, %edi
1233 UPDATE_STRNCMP_COUNTER
1235 movdqa (%edx), %xmm3
1249 movdqa (%eax, %ecx), %xmm1
1250 movdqa (%edx, %ecx), %xmm2
1253 palignr $8, %xmm3, %xmm2
1254 TOLOWER (%xmm1, %xmm2)
1256 pcmpeqb %xmm1, %xmm0
1257 pcmpeqb %xmm2, %xmm1
1259 pmovmskb %xmm1, %esi
1263 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1274 movdqa (%eax, %ecx), %xmm1
1275 movdqa (%edx, %ecx), %xmm2
1278 palignr $8, %xmm3, %xmm2
1279 TOLOWER (%xmm1, %xmm2)
1281 pcmpeqb %xmm1, %xmm0
1282 pcmpeqb %xmm2, %xmm1
1284 pmovmskb %xmm1, %esi
1288 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1299 pcmpeqb %xmm3, %xmm0
1300 pmovmskb %xmm0, %esi
1302 jnz L(ashr_8_exittail)
1304 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1306 jbe L(ashr_8_exittail)
1311 jmp L(gobble_ashr_8)
1315 movdqa (%eax, %ecx), %xmm1
1321 * The following cases will be handled by ashr_9
1322 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1323 * n(7~15) n - 7 8(15 +(n-7) - n) ashr_9
1329 movdqa (%edx), %xmm2
1330 movdqa (%eax), %xmm1
1331 pcmpeqb %xmm1, %xmm0
1333 TOLOWER (%xmm1, %xmm2)
1334 pcmpeqb %xmm1, %xmm2
1336 pmovmskb %xmm2, %edi
1343 UPDATE_STRNCMP_COUNTER
1345 movdqa (%edx), %xmm3
1359 movdqa (%eax, %ecx), %xmm1
1360 movdqa (%edx, %ecx), %xmm2
1363 palignr $9, %xmm3, %xmm2
1364 TOLOWER (%xmm1, %xmm2)
1366 pcmpeqb %xmm1, %xmm0
1367 pcmpeqb %xmm2, %xmm1
1369 pmovmskb %xmm1, %esi
1373 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1384 movdqa (%eax, %ecx), %xmm1
1385 movdqa (%edx, %ecx), %xmm2
1388 palignr $9, %xmm3, %xmm2
1389 TOLOWER (%xmm1, %xmm2)
1391 pcmpeqb %xmm1, %xmm0
1392 pcmpeqb %xmm2, %xmm1
1394 pmovmskb %xmm1, %esi
1398 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1409 pcmpeqb %xmm3, %xmm0
1410 pmovmskb %xmm0, %esi
1412 jnz L(ashr_9_exittail)
1414 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1416 jbe L(ashr_9_exittail)
1420 jmp L(gobble_ashr_9)
1424 movdqa (%eax, %ecx), %xmm1
1430 * The following cases will be handled by ashr_10
1431 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1432 * n(6~15) n - 6 9(15 +(n-6) - n) ashr_10
1438 movdqa (%edx), %xmm2
1439 movdqa (%eax), %xmm1
1440 pcmpeqb %xmm1, %xmm0
1442 TOLOWER (%xmm1, %xmm2)
1443 pcmpeqb %xmm1, %xmm2
1445 pmovmskb %xmm2, %edi
1452 UPDATE_STRNCMP_COUNTER
1454 movdqa (%edx), %xmm3
1465 jg L(nibble_ashr_10)
1468 movdqa (%eax, %ecx), %xmm1
1469 movdqa (%edx, %ecx), %xmm2
1472 palignr $10, %xmm3, %xmm2
1473 TOLOWER (%xmm1, %xmm2)
1475 pcmpeqb %xmm1, %xmm0
1476 pcmpeqb %xmm2, %xmm1
1478 pmovmskb %xmm1, %esi
1482 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1491 jg L(nibble_ashr_10)
1493 movdqa (%eax, %ecx), %xmm1
1494 movdqa (%edx, %ecx), %xmm2
1497 palignr $10, %xmm3, %xmm2
1498 TOLOWER (%xmm1, %xmm2)
1500 pcmpeqb %xmm1, %xmm0
1501 pcmpeqb %xmm2, %xmm1
1503 pmovmskb %xmm1, %esi
1507 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1518 pcmpeqb %xmm3, %xmm0
1519 pmovmskb %xmm0, %esi
1521 jnz L(ashr_10_exittail)
1523 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1525 jbe L(ashr_10_exittail)
1529 jmp L(gobble_ashr_10)
1532 L(ashr_10_exittail):
1533 movdqa (%eax, %ecx), %xmm1
1539 * The following cases will be handled by ashr_11
1540 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1541 * n(5~15) n - 5 10(15 +(n-5) - n) ashr_11
1547 movdqa (%edx), %xmm2
1548 movdqa (%eax), %xmm1
1549 pcmpeqb %xmm1, %xmm0
1551 TOLOWER (%xmm1, %xmm2)
1552 pcmpeqb %xmm1, %xmm2
1554 pmovmskb %xmm2, %edi
1561 UPDATE_STRNCMP_COUNTER
1563 movdqa (%edx), %xmm3
1574 jg L(nibble_ashr_11)
1577 movdqa (%eax, %ecx), %xmm1
1578 movdqa (%edx, %ecx), %xmm2
1581 palignr $11, %xmm3, %xmm2
1582 TOLOWER (%xmm1, %xmm2)
1584 pcmpeqb %xmm1, %xmm0
1585 pcmpeqb %xmm2, %xmm1
1587 pmovmskb %xmm1, %esi
1591 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1600 jg L(nibble_ashr_11)
1602 movdqa (%eax, %ecx), %xmm1
1603 movdqa (%edx, %ecx), %xmm2
1606 palignr $11, %xmm3, %xmm2
1607 TOLOWER (%xmm1, %xmm2)
1609 pcmpeqb %xmm1, %xmm0
1610 pcmpeqb %xmm2, %xmm1
1612 pmovmskb %xmm1, %esi
1616 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1627 pcmpeqb %xmm3, %xmm0
1628 pmovmskb %xmm0, %esi
1630 jnz L(ashr_11_exittail)
1632 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1634 jbe L(ashr_11_exittail)
1638 jmp L(gobble_ashr_11)
1641 L(ashr_11_exittail):
1642 movdqa (%eax, %ecx), %xmm1
1648 * The following cases will be handled by ashr_12
1649 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1650 * n(4~15) n - 4 11(15 +(n-4) - n) ashr_12
1656 movdqa (%edx), %xmm2
1657 movdqa (%eax), %xmm1
1658 pcmpeqb %xmm1, %xmm0
1660 TOLOWER (%xmm1, %xmm2)
1661 pcmpeqb %xmm1, %xmm2
1663 pmovmskb %xmm2, %edi
1670 UPDATE_STRNCMP_COUNTER
1672 movdqa (%edx), %xmm3
1683 jg L(nibble_ashr_12)
1686 movdqa (%eax, %ecx), %xmm1
1687 movdqa (%edx, %ecx), %xmm2
1690 palignr $12, %xmm3, %xmm2
1691 TOLOWER (%xmm1, %xmm2)
1693 pcmpeqb %xmm1, %xmm0
1694 pcmpeqb %xmm2, %xmm1
1696 pmovmskb %xmm1, %esi
1700 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1710 jg L(nibble_ashr_12)
1712 movdqa (%eax, %ecx), %xmm1
1713 movdqa (%edx, %ecx), %xmm2
1716 palignr $12, %xmm3, %xmm2
1717 TOLOWER (%xmm1, %xmm2)
1719 pcmpeqb %xmm1, %xmm0
1720 pcmpeqb %xmm2, %xmm1
1722 pmovmskb %xmm1, %esi
1726 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1737 pcmpeqb %xmm3, %xmm0
1738 pmovmskb %xmm0, %esi
1740 jnz L(ashr_12_exittail)
1742 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1744 jbe L(ashr_12_exittail)
1748 jmp L(gobble_ashr_12)
1751 L(ashr_12_exittail):
1752 movdqa (%eax, %ecx), %xmm1
1758 * The following cases will be handled by ashr_13
1759 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1760 * n(3~15) n - 3 12(15 +(n-3) - n) ashr_13
1766 movdqa (%edx), %xmm2
1767 movdqa (%eax), %xmm1
1768 pcmpeqb %xmm1, %xmm0
1770 TOLOWER (%xmm1, %xmm2)
1771 pcmpeqb %xmm1, %xmm2
1773 pmovmskb %xmm2, %edi
1780 UPDATE_STRNCMP_COUNTER
1782 movdqa (%edx), %xmm3
1793 jg L(nibble_ashr_13)
1796 movdqa (%eax, %ecx), %xmm1
1797 movdqa (%edx, %ecx), %xmm2
1800 palignr $13, %xmm3, %xmm2
1801 TOLOWER (%xmm1, %xmm2)
1803 pcmpeqb %xmm1, %xmm0
1804 pcmpeqb %xmm2, %xmm1
1806 pmovmskb %xmm1, %esi
1810 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1819 jg L(nibble_ashr_13)
1821 movdqa (%eax, %ecx), %xmm1
1822 movdqa (%edx, %ecx), %xmm2
1825 palignr $13, %xmm3, %xmm2
1826 TOLOWER (%xmm1, %xmm2)
1828 pcmpeqb %xmm1, %xmm0
1829 pcmpeqb %xmm2, %xmm1
1831 pmovmskb %xmm1, %esi
1835 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1846 pcmpeqb %xmm3, %xmm0
1847 pmovmskb %xmm0, %esi
1849 jnz L(ashr_13_exittail)
1851 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1853 jbe L(ashr_13_exittail)
1857 jmp L(gobble_ashr_13)
1860 L(ashr_13_exittail):
1861 movdqa (%eax, %ecx), %xmm1
1867 * The following cases will be handled by ashr_14
1868 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1869 * n(2~15) n - 2 13(15 +(n-2) - n) ashr_14
1875 movdqa (%edx), %xmm2
1876 movdqa (%eax), %xmm1
1877 pcmpeqb %xmm1, %xmm0
1879 TOLOWER (%xmm1, %xmm2)
1880 pcmpeqb %xmm1, %xmm2
1882 pmovmskb %xmm2, %edi
1889 UPDATE_STRNCMP_COUNTER
1891 movdqa (%edx), %xmm3
1902 jg L(nibble_ashr_14)
1905 movdqa (%eax, %ecx), %xmm1
1906 movdqa (%edx, %ecx), %xmm2
1909 palignr $14, %xmm3, %xmm2
1910 TOLOWER (%xmm1, %xmm2)
1912 pcmpeqb %xmm1, %xmm0
1913 pcmpeqb %xmm2, %xmm1
1915 pmovmskb %xmm1, %esi
1919 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1928 jg L(nibble_ashr_14)
1930 movdqa (%eax, %ecx), %xmm1
1931 movdqa (%edx, %ecx), %xmm2
1934 palignr $14, %xmm3, %xmm2
1935 TOLOWER (%xmm1, %xmm2)
1937 pcmpeqb %xmm1, %xmm0
1938 pcmpeqb %xmm2, %xmm1
1940 pmovmskb %xmm1, %esi
1944 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1955 pcmpeqb %xmm3, %xmm0
1956 pmovmskb %xmm0, %esi
1958 jnz L(ashr_14_exittail)
1960 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1962 jbe L(ashr_14_exittail)
1966 jmp L(gobble_ashr_14)
1969 L(ashr_14_exittail):
1970 movdqa (%eax, %ecx), %xmm1
1976 * The following cases will be handled by ashr_14
1977 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1978 * n(1~15) n - 1 14(15 +(n-1) - n) ashr_15
1985 movdqa (%edx), %xmm2
1986 movdqa (%eax), %xmm1
1987 pcmpeqb %xmm1, %xmm0
1989 TOLOWER (%xmm1, %xmm2)
1990 pcmpeqb %xmm1, %xmm2
1992 pmovmskb %xmm2, %edi
1999 UPDATE_STRNCMP_COUNTER
2001 movdqa (%edx), %xmm3
2012 jg L(nibble_ashr_15)
2015 movdqa (%eax, %ecx), %xmm1
2016 movdqa (%edx, %ecx), %xmm2
2019 palignr $15, %xmm3, %xmm2
2020 TOLOWER (%xmm1, %xmm2)
2022 pcmpeqb %xmm1, %xmm0
2023 pcmpeqb %xmm2, %xmm1
2025 pmovmskb %xmm1, %esi
2029 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2038 jg L(nibble_ashr_15)
2040 movdqa (%eax, %ecx), %xmm1
2041 movdqa (%edx, %ecx), %xmm2
2044 palignr $15, %xmm3, %xmm2
2045 TOLOWER (%xmm1, %xmm2)
2047 pcmpeqb %xmm1, %xmm0
2048 pcmpeqb %xmm2, %xmm1
2050 pmovmskb %xmm1, %esi
2054 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2065 pcmpeqb %xmm3, %xmm0
2066 pmovmskb %xmm0, %esi
2068 jnz L(ashr_15_exittail)
2070 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2072 jbe L(ashr_15_exittail)
2076 jmp L(gobble_ashr_15)
2079 L(ashr_15_exittail):
2080 movdqa (%eax, %ecx), %xmm1
2087 TOLOWER (%xmm1, %xmm3)
2088 pcmpeqb %xmm3, %xmm1
2090 pmovmskb %xmm1, %esi
2095 lea -16(%edi, %ecx), %edi
2106 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2108 cfi_adjust_cfa_offset (-4)
2112 #if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
2139 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2144 movzbl 7(%eax), %ecx
2145 movzbl 7(%edx), %eax
2146 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2148 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2149 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2151 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2152 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2160 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2167 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2169 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2170 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2172 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2173 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2181 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2185 movzbl 1(%eax), %ecx
2186 movzbl 1(%edx), %eax
2188 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2190 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2191 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2193 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2194 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2202 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2206 movzbl 2(%eax), %ecx
2207 movzbl 2(%edx), %eax
2209 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2211 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2212 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2214 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2215 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2223 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2227 movzbl 3(%eax), %ecx
2228 movzbl 3(%edx), %eax
2230 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2232 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2233 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2235 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2236 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2244 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2248 movzbl 4(%eax), %ecx
2249 movzbl 4(%edx), %eax
2251 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2253 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2254 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2256 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2257 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2265 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2269 movzbl 5(%eax), %ecx
2270 movzbl 5(%edx), %eax
2272 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2274 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2275 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2277 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2278 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2286 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2290 movzbl 6(%eax), %ecx
2291 movzbl 6(%edx), %eax
2293 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2295 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2296 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2298 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2299 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2309 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2336 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2340 movzbl 7(%eax), %ecx
2341 movzbl 7(%edx), %eax
2343 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2345 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2346 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2348 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2349 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2356 #ifdef USE_AS_STRNCMP
2364 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2366 cfi_adjust_cfa_offset (-4)
2368 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2371 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2378 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2383 # ifdef USE_AS_STRNCASECMP_L
2385 cfi_adjust_cfa_offset (-4)
2389 # ifdef USE_AS_STRNCMP
2394 #ifdef USE_AS_STRNCMP
2399 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2402 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2410 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2412 # if defined USE_AS_STRNCASECMP_L && defined PIC
2416 L(less16bytes_sncmp):
2417 # ifdef USE_AS_STRNCASECMP_L
2424 # ifdef USE_AS_STRNCASECMP_L
2427 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2428 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2430 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2431 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2444 movzbl 1(%eax), %ecx
2445 # ifdef USE_AS_STRNCASECMP_L
2446 movzbl 1(%edx), %esi
2448 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2449 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2451 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2452 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2465 movzbl 2(%eax), %ecx
2466 # ifdef USE_AS_STRNCASECMP_L
2467 movzbl 2(%edx), %esi
2469 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2470 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2472 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2473 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2486 movzbl 3(%eax), %ecx
2487 # ifdef USE_AS_STRNCASECMP_L
2488 movzbl 3(%edx), %esi
2490 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2491 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2493 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2494 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2507 movzbl 4(%eax), %ecx
2508 # ifdef USE_AS_STRNCASECMP_L
2509 movzbl 4(%edx), %esi
2511 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2512 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2514 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2515 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2528 movzbl 5(%eax), %ecx
2529 # ifdef USE_AS_STRNCASECMP_L
2530 movzbl 5(%edx), %esi
2532 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2533 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2535 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2536 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2549 movzbl 6(%eax), %ecx
2550 # ifdef USE_AS_STRNCASECMP_L
2551 movzbl 6(%edx), %esi
2553 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2554 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2556 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2557 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2570 movzbl 7(%eax), %ecx
2571 # ifdef USE_AS_STRNCASECMP_L
2572 movzbl 7(%edx), %esi
2574 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2575 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2577 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2578 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2592 movzbl 8(%eax), %ecx
2593 # ifdef USE_AS_STRNCASECMP_L
2594 movzbl 8(%edx), %esi
2596 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2597 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2599 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2600 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2613 movzbl 9(%eax), %ecx
2614 # ifdef USE_AS_STRNCASECMP_L
2615 movzbl 9(%edx), %esi
2617 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2618 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2620 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2621 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2634 movzbl 10(%eax), %ecx
2635 # ifdef USE_AS_STRNCASECMP_L
2636 movzbl 10(%edx), %esi
2638 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2639 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2641 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2642 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2655 movzbl 11(%eax), %ecx
2656 # ifdef USE_AS_STRNCASECMP_L
2657 movzbl 11(%edx), %esi
2659 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2660 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2662 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2663 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2677 movzbl 12(%eax), %ecx
2678 # ifdef USE_AS_STRNCASECMP_L
2679 movzbl 12(%edx), %esi
2681 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2682 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2684 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2685 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2698 movzbl 13(%eax), %ecx
2699 # ifdef USE_AS_STRNCASECMP_L
2700 movzbl 13(%edx), %esi
2702 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2703 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2705 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2706 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2719 movzbl 14(%eax), %ecx
2720 # ifdef USE_AS_STRNCASECMP_L
2721 movzbl 14(%edx), %esi
2723 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2724 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2726 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2727 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2740 movzbl 15(%eax), %ecx
2741 # ifdef USE_AS_STRNCASECMP_L
2742 movzbl 15(%edx), %esi
2744 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2745 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2747 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2748 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2756 # ifdef USE_AS_STRNCASECMP_L
2761 # if defined USE_AS_STRNCASECMP_L && defined PIC
2767 # ifdef USE_AS_STRNCASECMP_L