2 Copyright (C) 2010-2014 Free Software Foundation, Inc.
3 Contributed by Intel Corporation.
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <http://www.gnu.org/licenses/>. */
23 #include "asm-syntax.h"
25 #define CFI_PUSH(REG) \
26 cfi_adjust_cfa_offset (4); \
27 cfi_rel_offset (REG, 0)
29 #define CFI_POP(REG) \
30 cfi_adjust_cfa_offset (-4); \
33 #define PUSH(REG) pushl REG; CFI_PUSH (REG)
34 #define POP(REG) popl REG; CFI_POP (REG)
38 # define STRCMP __strncmp_ssse3
43 # define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
44 # define UPDATE_STRNCMP_COUNTER \
45 /* calculate left number to compare */ \
49 jbe L(more8byteseq); \
53 #elif defined USE_AS_STRCASECMP_L
54 # include "locale-defines.h"
56 # define STRCMP __strcasecmp_l_ssse3
64 # define LOCALE 12 /* Loaded before the adjustment. */
66 # define RETURN POP (%ebx); ret; .p2align 4; CFI_PUSH (%ebx)
68 # define RETURN ret; .p2align 4
70 # define UPDATE_STRNCMP_COUNTER
72 # define NONASCII __strcasecmp_nonascii
73 #elif defined USE_AS_STRNCASECMP_L
74 # include "locale-defines.h"
76 # define STRCMP __strncasecmp_l_ssse3
85 # define LOCALE 16 /* Loaded before the adjustment. */
87 # define RETURN POP (REM); POP (%ebx); ret; \
88 .p2align 4; CFI_PUSH (%ebx); CFI_PUSH (REM)
90 # define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
92 # define UPDATE_STRNCMP_COUNTER \
93 /* calculate left number to compare */ \
97 jbe L(more8byteseq); \
101 # define NONASCII __strncasecmp_nonascii
104 # define STRCMP __strcmp_ssse3
108 # define RETURN ret; .p2align 4
109 # define UPDATE_STRNCMP_COUNTER
113 .section .text.ssse3,"ax",@progbits
115 #ifdef USE_AS_STRCASECMP_L
116 ENTRY (__strcasecmp_ssse3)
120 movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
121 # ifdef NO_TLS_DIRECT_SEG_REFS
125 movl %gs:(%eax), %eax
128 # ifdef NO_TLS_DIRECT_SEG_REFS
130 movl __libc_tsd_LOCALE@NTPOFF(%eax), %eax
132 movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
135 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
136 movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
140 testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
144 jmp __strcasecmp_nonascii
146 jne __strcasecmp_nonascii
149 END (__strcasecmp_ssse3)
152 #ifdef USE_AS_STRNCASECMP_L
153 ENTRY (__strncasecmp_ssse3)
157 movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
158 # ifdef NO_TLS_DIRECT_SEG_REFS
162 movl %gs:(%eax), %eax
165 # ifdef NO_TLS_DIRECT_SEG_REFS
167 movl __libc_tsd_LOCALE@NTPOFF(%eax), %eax
169 movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
172 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
173 movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
177 testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
181 jmp __strncasecmp_nonascii
183 jne __strncasecmp_nonascii
186 END (__strncasecmp_ssse3)
190 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
191 movl LOCALE(%esp), %eax
192 # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
193 movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
197 testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
205 .section .rodata.cst16,"aM",@progbits,16
208 .quad 0x4040404040404040
209 .quad 0x4040404040404040
211 .quad 0x5b5b5b5b5b5b5b5b
212 .quad 0x5b5b5b5b5b5b5b5b
214 .quad 0x2020202020202020
215 .quad 0x2020202020202020
219 # define UCLOW_reg .Lbelowupper@GOTOFF(%ebx)
220 # define UCHIGH_reg .Ltopupper@GOTOFF(%ebx)
221 # define LCQWORD_reg .Ltouppermask@GOTOFF(%ebx)
223 # define UCLOW_reg .Lbelowupper
224 # define UCHIGH_reg .Ltopupper
225 # define LCQWORD_reg .Ltouppermask
229 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
233 movl STR1(%esp), %edx
234 movl STR2(%esp), %eax
235 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
238 jb L(less16bytes_sncmp)
239 #elif !defined USE_AS_STRCASECMP_L
302 movhpd 8(%eax), %xmm1
303 movhpd 8(%edx), %xmm2
304 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
305 # define TOLOWER(reg1, reg2) \
306 movdqa reg1, %xmm5; \
307 movdqa reg2, %xmm7; \
308 movdqa UCHIGH_reg, %xmm6; \
309 pcmpgtb UCLOW_reg, %xmm5; \
310 pcmpgtb UCLOW_reg, %xmm7; \
311 pcmpgtb reg1, %xmm6; \
313 movdqa UCHIGH_reg, %xmm6; \
314 pcmpgtb reg2, %xmm6; \
316 pand LCQWORD_reg, %xmm5; \
318 pand LCQWORD_reg, %xmm7; \
320 TOLOWER (%xmm1, %xmm2)
322 # define TOLOWER(reg1, reg2)
330 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
340 #if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
345 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
347 cfi_adjust_cfa_offset (4)
349 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
359 #if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
405 * The following cases will be handled by ashr_0
406 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
407 * n(0~15) n(0~15) 15(15+ n-n) ashr_0
415 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
417 TOLOWER (%xmm1, %xmm2)
420 pcmpeqb (%edx), %xmm1
429 UPDATE_STRNCMP_COUNTER
435 movdqa (%eax, %ecx), %xmm1
436 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
437 movdqa (%edx, %ecx), %xmm2
438 TOLOWER (%xmm1, %xmm2)
444 pcmpeqb (%edx, %ecx), %xmm1
450 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
459 * The following cases will be handled by ashr_1
460 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
461 * n(15) n -15 0(15 +(n-15) - n) ashr_1
471 TOLOWER (%xmm1, %xmm2)
481 UPDATE_STRNCMP_COUNTER
497 movdqa (%eax, %ecx), %xmm1
498 movdqa (%edx, %ecx), %xmm2
501 palignr $1, %xmm3, %xmm2
502 TOLOWER (%xmm1, %xmm2)
510 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
522 movdqa (%eax, %ecx), %xmm1
523 movdqa (%edx, %ecx), %xmm2
526 palignr $1, %xmm3, %xmm2
527 TOLOWER (%xmm1, %xmm2)
536 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
550 jnz L(ashr_1_exittail)
552 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
554 jbe L(ashr_1_exittail)
562 movdqa (%eax, %ecx), %xmm1
568 * The following cases will be handled by ashr_2
569 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
570 * n(14~15) n -14 1(15 +(n-14) - n) ashr_2
580 TOLOWER (%xmm1, %xmm2)
590 UPDATE_STRNCMP_COUNTER
606 movdqa (%eax, %ecx), %xmm1
607 movdqa (%edx, %ecx), %xmm2
610 palignr $2, %xmm3, %xmm2
611 TOLOWER (%xmm1, %xmm2)
620 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
631 movdqa (%eax, %ecx), %xmm1
632 movdqa (%edx, %ecx), %xmm2
635 palignr $2, %xmm3, %xmm2
636 TOLOWER (%xmm1, %xmm2)
645 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
659 jnz L(ashr_2_exittail)
661 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
663 jbe L(ashr_2_exittail)
672 movdqa (%eax, %ecx), %xmm1
678 * The following cases will be handled by ashr_3
679 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
680 * n(13~15) n -13 2(15 +(n-13) - n) ashr_3
690 TOLOWER (%xmm1, %xmm2)
700 UPDATE_STRNCMP_COUNTER
716 movdqa (%eax, %ecx), %xmm1
717 movdqa (%edx, %ecx), %xmm2
720 palignr $3, %xmm3, %xmm2
721 TOLOWER (%xmm1, %xmm2)
730 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
741 movdqa (%eax, %ecx), %xmm1
742 movdqa (%edx, %ecx), %xmm2
745 palignr $3, %xmm3, %xmm2
746 TOLOWER (%xmm1, %xmm2)
755 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
769 jnz L(ashr_3_exittail)
771 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
773 jbe L(ashr_3_exittail)
781 movdqa (%eax, %ecx), %xmm1
787 * The following cases will be handled by ashr_4
788 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
789 * n(12~15) n -12 3(15 +(n-12) - n) ashr_4
799 TOLOWER (%xmm1, %xmm2)
809 UPDATE_STRNCMP_COUNTER
825 movdqa (%eax, %ecx), %xmm1
826 movdqa (%edx, %ecx), %xmm2
829 palignr $4, %xmm3, %xmm2
830 TOLOWER (%xmm1, %xmm2)
839 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
851 movdqa (%eax, %ecx), %xmm1
852 movdqa (%edx, %ecx), %xmm2
855 palignr $4, %xmm3, %xmm2
856 TOLOWER (%xmm1, %xmm2)
865 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
880 jnz L(ashr_4_exittail)
882 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
884 jbe L(ashr_4_exittail)
893 movdqa (%eax, %ecx), %xmm1
899 * The following cases will be handled by ashr_5
900 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
901 * n(11~15) n -11 4(15 +(n-11) - n) ashr_5
911 TOLOWER (%xmm1, %xmm2)
921 UPDATE_STRNCMP_COUNTER
937 movdqa (%eax, %ecx), %xmm1
938 movdqa (%edx, %ecx), %xmm2
941 palignr $5, %xmm3, %xmm2
942 TOLOWER (%xmm1, %xmm2)
951 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
962 movdqa (%eax, %ecx), %xmm1
963 movdqa (%edx, %ecx), %xmm2
966 palignr $5, %xmm3, %xmm2
967 TOLOWER (%xmm1, %xmm2)
976 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
990 jnz L(ashr_5_exittail)
992 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
994 jbe L(ashr_5_exittail)
1002 movdqa (%eax, %ecx), %xmm1
1008 * The following cases will be handled by ashr_6
1009 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1010 * n(10~15) n -10 5(15 +(n-10) - n) ashr_6
1017 movdqa (%edx), %xmm2
1018 movdqa (%eax), %xmm1
1019 pcmpeqb %xmm1, %xmm0
1021 TOLOWER (%xmm1, %xmm2)
1022 pcmpeqb %xmm1, %xmm2
1024 pmovmskb %xmm2, %edi
1031 UPDATE_STRNCMP_COUNTER
1033 movdqa (%edx), %xmm3
1047 movdqa (%eax, %ecx), %xmm1
1048 movdqa (%edx, %ecx), %xmm2
1051 palignr $6, %xmm3, %xmm2
1052 TOLOWER (%xmm1, %xmm2)
1054 pcmpeqb %xmm1, %xmm0
1055 pcmpeqb %xmm2, %xmm1
1057 pmovmskb %xmm1, %esi
1061 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1073 movdqa (%eax, %ecx), %xmm1
1074 movdqa (%edx, %ecx), %xmm2
1077 palignr $6, %xmm3, %xmm2
1078 TOLOWER (%xmm1, %xmm2)
1080 pcmpeqb %xmm1, %xmm0
1081 pcmpeqb %xmm2, %xmm1
1083 pmovmskb %xmm1, %esi
1086 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1098 pcmpeqb %xmm3, %xmm0
1099 pmovmskb %xmm0, %esi
1101 jnz L(ashr_6_exittail)
1103 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1105 jbe L(ashr_6_exittail)
1109 jmp L(gobble_ashr_6)
1113 movdqa (%eax, %ecx), %xmm1
1119 * The following cases will be handled by ashr_7
1120 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1121 * n(9~15) n - 9 6(15 +(n-9) - n) ashr_7
1128 movdqa (%edx), %xmm2
1129 movdqa (%eax), %xmm1
1130 pcmpeqb %xmm1, %xmm0
1132 TOLOWER (%xmm1, %xmm2)
1133 pcmpeqb %xmm1, %xmm2
1135 pmovmskb %xmm2, %edi
1142 UPDATE_STRNCMP_COUNTER
1144 movdqa (%edx), %xmm3
1158 movdqa (%eax, %ecx), %xmm1
1159 movdqa (%edx, %ecx), %xmm2
1162 palignr $7, %xmm3, %xmm2
1163 TOLOWER (%xmm1, %xmm2)
1165 pcmpeqb %xmm1, %xmm0
1166 pcmpeqb %xmm2, %xmm1
1168 pmovmskb %xmm1, %esi
1172 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1184 movdqa (%eax, %ecx), %xmm1
1185 movdqa (%edx, %ecx), %xmm2
1188 palignr $7, %xmm3, %xmm2
1189 TOLOWER (%xmm1, %xmm2)
1191 pcmpeqb %xmm1, %xmm0
1192 pcmpeqb %xmm2, %xmm1
1194 pmovmskb %xmm1, %esi
1198 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1210 pcmpeqb %xmm3, %xmm0
1211 pmovmskb %xmm0, %esi
1213 jnz L(ashr_7_exittail)
1215 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1217 jbe L(ashr_7_exittail)
1222 jmp L(gobble_ashr_7)
1226 movdqa (%eax, %ecx), %xmm1
1232 * The following cases will be handled by ashr_8
1233 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1234 * n(8~15) n - 8 7(15 +(n-8) - n) ashr_8
1240 movdqa (%edx), %xmm2
1241 movdqa (%eax), %xmm1
1242 pcmpeqb %xmm1, %xmm0
1244 TOLOWER (%xmm1, %xmm2)
1245 pcmpeqb %xmm1, %xmm2
1247 pmovmskb %xmm2, %edi
1254 UPDATE_STRNCMP_COUNTER
1256 movdqa (%edx), %xmm3
1270 movdqa (%eax, %ecx), %xmm1
1271 movdqa (%edx, %ecx), %xmm2
1274 palignr $8, %xmm3, %xmm2
1275 TOLOWER (%xmm1, %xmm2)
1277 pcmpeqb %xmm1, %xmm0
1278 pcmpeqb %xmm2, %xmm1
1280 pmovmskb %xmm1, %esi
1284 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1295 movdqa (%eax, %ecx), %xmm1
1296 movdqa (%edx, %ecx), %xmm2
1299 palignr $8, %xmm3, %xmm2
1300 TOLOWER (%xmm1, %xmm2)
1302 pcmpeqb %xmm1, %xmm0
1303 pcmpeqb %xmm2, %xmm1
1305 pmovmskb %xmm1, %esi
1309 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1320 pcmpeqb %xmm3, %xmm0
1321 pmovmskb %xmm0, %esi
1323 jnz L(ashr_8_exittail)
1325 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1327 jbe L(ashr_8_exittail)
1332 jmp L(gobble_ashr_8)
1336 movdqa (%eax, %ecx), %xmm1
1342 * The following cases will be handled by ashr_9
1343 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1344 * n(7~15) n - 7 8(15 +(n-7) - n) ashr_9
1350 movdqa (%edx), %xmm2
1351 movdqa (%eax), %xmm1
1352 pcmpeqb %xmm1, %xmm0
1354 TOLOWER (%xmm1, %xmm2)
1355 pcmpeqb %xmm1, %xmm2
1357 pmovmskb %xmm2, %edi
1364 UPDATE_STRNCMP_COUNTER
1366 movdqa (%edx), %xmm3
1380 movdqa (%eax, %ecx), %xmm1
1381 movdqa (%edx, %ecx), %xmm2
1384 palignr $9, %xmm3, %xmm2
1385 TOLOWER (%xmm1, %xmm2)
1387 pcmpeqb %xmm1, %xmm0
1388 pcmpeqb %xmm2, %xmm1
1390 pmovmskb %xmm1, %esi
1394 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1405 movdqa (%eax, %ecx), %xmm1
1406 movdqa (%edx, %ecx), %xmm2
1409 palignr $9, %xmm3, %xmm2
1410 TOLOWER (%xmm1, %xmm2)
1412 pcmpeqb %xmm1, %xmm0
1413 pcmpeqb %xmm2, %xmm1
1415 pmovmskb %xmm1, %esi
1419 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1430 pcmpeqb %xmm3, %xmm0
1431 pmovmskb %xmm0, %esi
1433 jnz L(ashr_9_exittail)
1435 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1437 jbe L(ashr_9_exittail)
1441 jmp L(gobble_ashr_9)
1445 movdqa (%eax, %ecx), %xmm1
1451 * The following cases will be handled by ashr_10
1452 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1453 * n(6~15) n - 6 9(15 +(n-6) - n) ashr_10
1459 movdqa (%edx), %xmm2
1460 movdqa (%eax), %xmm1
1461 pcmpeqb %xmm1, %xmm0
1463 TOLOWER (%xmm1, %xmm2)
1464 pcmpeqb %xmm1, %xmm2
1466 pmovmskb %xmm2, %edi
1473 UPDATE_STRNCMP_COUNTER
1475 movdqa (%edx), %xmm3
1486 jg L(nibble_ashr_10)
1489 movdqa (%eax, %ecx), %xmm1
1490 movdqa (%edx, %ecx), %xmm2
1493 palignr $10, %xmm3, %xmm2
1494 TOLOWER (%xmm1, %xmm2)
1496 pcmpeqb %xmm1, %xmm0
1497 pcmpeqb %xmm2, %xmm1
1499 pmovmskb %xmm1, %esi
1503 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1512 jg L(nibble_ashr_10)
1514 movdqa (%eax, %ecx), %xmm1
1515 movdqa (%edx, %ecx), %xmm2
1518 palignr $10, %xmm3, %xmm2
1519 TOLOWER (%xmm1, %xmm2)
1521 pcmpeqb %xmm1, %xmm0
1522 pcmpeqb %xmm2, %xmm1
1524 pmovmskb %xmm1, %esi
1528 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1539 pcmpeqb %xmm3, %xmm0
1540 pmovmskb %xmm0, %esi
1542 jnz L(ashr_10_exittail)
1544 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1546 jbe L(ashr_10_exittail)
1550 jmp L(gobble_ashr_10)
1553 L(ashr_10_exittail):
1554 movdqa (%eax, %ecx), %xmm1
1560 * The following cases will be handled by ashr_11
1561 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1562 * n(5~15) n - 5 10(15 +(n-5) - n) ashr_11
1568 movdqa (%edx), %xmm2
1569 movdqa (%eax), %xmm1
1570 pcmpeqb %xmm1, %xmm0
1572 TOLOWER (%xmm1, %xmm2)
1573 pcmpeqb %xmm1, %xmm2
1575 pmovmskb %xmm2, %edi
1582 UPDATE_STRNCMP_COUNTER
1584 movdqa (%edx), %xmm3
1595 jg L(nibble_ashr_11)
1598 movdqa (%eax, %ecx), %xmm1
1599 movdqa (%edx, %ecx), %xmm2
1602 palignr $11, %xmm3, %xmm2
1603 TOLOWER (%xmm1, %xmm2)
1605 pcmpeqb %xmm1, %xmm0
1606 pcmpeqb %xmm2, %xmm1
1608 pmovmskb %xmm1, %esi
1612 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1621 jg L(nibble_ashr_11)
1623 movdqa (%eax, %ecx), %xmm1
1624 movdqa (%edx, %ecx), %xmm2
1627 palignr $11, %xmm3, %xmm2
1628 TOLOWER (%xmm1, %xmm2)
1630 pcmpeqb %xmm1, %xmm0
1631 pcmpeqb %xmm2, %xmm1
1633 pmovmskb %xmm1, %esi
1637 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1648 pcmpeqb %xmm3, %xmm0
1649 pmovmskb %xmm0, %esi
1651 jnz L(ashr_11_exittail)
1653 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1655 jbe L(ashr_11_exittail)
1659 jmp L(gobble_ashr_11)
1662 L(ashr_11_exittail):
1663 movdqa (%eax, %ecx), %xmm1
1669 * The following cases will be handled by ashr_12
1670 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1671 * n(4~15) n - 4 11(15 +(n-4) - n) ashr_12
1677 movdqa (%edx), %xmm2
1678 movdqa (%eax), %xmm1
1679 pcmpeqb %xmm1, %xmm0
1681 TOLOWER (%xmm1, %xmm2)
1682 pcmpeqb %xmm1, %xmm2
1684 pmovmskb %xmm2, %edi
1691 UPDATE_STRNCMP_COUNTER
1693 movdqa (%edx), %xmm3
1704 jg L(nibble_ashr_12)
1707 movdqa (%eax, %ecx), %xmm1
1708 movdqa (%edx, %ecx), %xmm2
1711 palignr $12, %xmm3, %xmm2
1712 TOLOWER (%xmm1, %xmm2)
1714 pcmpeqb %xmm1, %xmm0
1715 pcmpeqb %xmm2, %xmm1
1717 pmovmskb %xmm1, %esi
1721 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1731 jg L(nibble_ashr_12)
1733 movdqa (%eax, %ecx), %xmm1
1734 movdqa (%edx, %ecx), %xmm2
1737 palignr $12, %xmm3, %xmm2
1738 TOLOWER (%xmm1, %xmm2)
1740 pcmpeqb %xmm1, %xmm0
1741 pcmpeqb %xmm2, %xmm1
1743 pmovmskb %xmm1, %esi
1747 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1758 pcmpeqb %xmm3, %xmm0
1759 pmovmskb %xmm0, %esi
1761 jnz L(ashr_12_exittail)
1763 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1765 jbe L(ashr_12_exittail)
1769 jmp L(gobble_ashr_12)
1772 L(ashr_12_exittail):
1773 movdqa (%eax, %ecx), %xmm1
1779 * The following cases will be handled by ashr_13
1780 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1781 * n(3~15) n - 3 12(15 +(n-3) - n) ashr_13
1787 movdqa (%edx), %xmm2
1788 movdqa (%eax), %xmm1
1789 pcmpeqb %xmm1, %xmm0
1791 TOLOWER (%xmm1, %xmm2)
1792 pcmpeqb %xmm1, %xmm2
1794 pmovmskb %xmm2, %edi
1801 UPDATE_STRNCMP_COUNTER
1803 movdqa (%edx), %xmm3
1814 jg L(nibble_ashr_13)
1817 movdqa (%eax, %ecx), %xmm1
1818 movdqa (%edx, %ecx), %xmm2
1821 palignr $13, %xmm3, %xmm2
1822 TOLOWER (%xmm1, %xmm2)
1824 pcmpeqb %xmm1, %xmm0
1825 pcmpeqb %xmm2, %xmm1
1827 pmovmskb %xmm1, %esi
1831 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1840 jg L(nibble_ashr_13)
1842 movdqa (%eax, %ecx), %xmm1
1843 movdqa (%edx, %ecx), %xmm2
1846 palignr $13, %xmm3, %xmm2
1847 TOLOWER (%xmm1, %xmm2)
1849 pcmpeqb %xmm1, %xmm0
1850 pcmpeqb %xmm2, %xmm1
1852 pmovmskb %xmm1, %esi
1856 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1867 pcmpeqb %xmm3, %xmm0
1868 pmovmskb %xmm0, %esi
1870 jnz L(ashr_13_exittail)
1872 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1874 jbe L(ashr_13_exittail)
1878 jmp L(gobble_ashr_13)
1881 L(ashr_13_exittail):
1882 movdqa (%eax, %ecx), %xmm1
1888 * The following cases will be handled by ashr_14
1889 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1890 * n(2~15) n - 2 13(15 +(n-2) - n) ashr_14
1896 movdqa (%edx), %xmm2
1897 movdqa (%eax), %xmm1
1898 pcmpeqb %xmm1, %xmm0
1900 TOLOWER (%xmm1, %xmm2)
1901 pcmpeqb %xmm1, %xmm2
1903 pmovmskb %xmm2, %edi
1910 UPDATE_STRNCMP_COUNTER
1912 movdqa (%edx), %xmm3
1923 jg L(nibble_ashr_14)
1926 movdqa (%eax, %ecx), %xmm1
1927 movdqa (%edx, %ecx), %xmm2
1930 palignr $14, %xmm3, %xmm2
1931 TOLOWER (%xmm1, %xmm2)
1933 pcmpeqb %xmm1, %xmm0
1934 pcmpeqb %xmm2, %xmm1
1936 pmovmskb %xmm1, %esi
1940 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1949 jg L(nibble_ashr_14)
1951 movdqa (%eax, %ecx), %xmm1
1952 movdqa (%edx, %ecx), %xmm2
1955 palignr $14, %xmm3, %xmm2
1956 TOLOWER (%xmm1, %xmm2)
1958 pcmpeqb %xmm1, %xmm0
1959 pcmpeqb %xmm2, %xmm1
1961 pmovmskb %xmm1, %esi
1965 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1976 pcmpeqb %xmm3, %xmm0
1977 pmovmskb %xmm0, %esi
1979 jnz L(ashr_14_exittail)
1981 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
1983 jbe L(ashr_14_exittail)
1987 jmp L(gobble_ashr_14)
1990 L(ashr_14_exittail):
1991 movdqa (%eax, %ecx), %xmm1
1997 * The following cases will be handled by ashr_14
1998 * ecx(offset of esi) eax(offset of edi) relative offset corresponding case
1999 * n(1~15) n - 1 14(15 +(n-1) - n) ashr_15
2006 movdqa (%edx), %xmm2
2007 movdqa (%eax), %xmm1
2008 pcmpeqb %xmm1, %xmm0
2010 TOLOWER (%xmm1, %xmm2)
2011 pcmpeqb %xmm1, %xmm2
2013 pmovmskb %xmm2, %edi
2020 UPDATE_STRNCMP_COUNTER
2022 movdqa (%edx), %xmm3
2033 jg L(nibble_ashr_15)
2036 movdqa (%eax, %ecx), %xmm1
2037 movdqa (%edx, %ecx), %xmm2
2040 palignr $15, %xmm3, %xmm2
2041 TOLOWER (%xmm1, %xmm2)
2043 pcmpeqb %xmm1, %xmm0
2044 pcmpeqb %xmm2, %xmm1
2046 pmovmskb %xmm1, %esi
2050 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2059 jg L(nibble_ashr_15)
2061 movdqa (%eax, %ecx), %xmm1
2062 movdqa (%edx, %ecx), %xmm2
2065 palignr $15, %xmm3, %xmm2
2066 TOLOWER (%xmm1, %xmm2)
2068 pcmpeqb %xmm1, %xmm0
2069 pcmpeqb %xmm2, %xmm1
2071 pmovmskb %xmm1, %esi
2075 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2086 pcmpeqb %xmm3, %xmm0
2087 pmovmskb %xmm0, %esi
2089 jnz L(ashr_15_exittail)
2091 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2093 jbe L(ashr_15_exittail)
2097 jmp L(gobble_ashr_15)
2100 L(ashr_15_exittail):
2101 movdqa (%eax, %ecx), %xmm1
2108 TOLOWER (%xmm1, %xmm3)
2109 pcmpeqb %xmm3, %xmm1
2111 pmovmskb %xmm1, %esi
2116 lea -16(%edi, %ecx), %edi
2127 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2129 cfi_adjust_cfa_offset (-4)
2133 #if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
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
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
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
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
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
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
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
2307 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2314 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2316 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2317 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2319 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2320 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2330 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2357 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2364 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2366 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2367 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
2369 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2370 movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
2377 #ifdef USE_AS_STRNCMP
2385 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2387 cfi_adjust_cfa_offset (-4)
2389 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2392 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2399 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2404 # ifdef USE_AS_STRNCASECMP_L
2406 cfi_adjust_cfa_offset (-4)
2410 # ifdef USE_AS_STRNCMP
2415 #ifdef USE_AS_STRNCMP
2420 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2423 #if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
2431 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
2433 # if defined USE_AS_STRNCASECMP_L && defined PIC
2437 L(less16bytes_sncmp):
2438 # ifdef USE_AS_STRNCASECMP_L
2445 # ifdef USE_AS_STRNCASECMP_L
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 1(%eax), %ecx
2466 # ifdef USE_AS_STRNCASECMP_L
2467 movzbl 1(%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 2(%eax), %ecx
2487 # ifdef USE_AS_STRNCASECMP_L
2488 movzbl 2(%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 3(%eax), %ecx
2508 # ifdef USE_AS_STRNCASECMP_L
2509 movzbl 3(%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 4(%eax), %ecx
2529 # ifdef USE_AS_STRNCASECMP_L
2530 movzbl 4(%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 5(%eax), %ecx
2550 # ifdef USE_AS_STRNCASECMP_L
2551 movzbl 5(%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 6(%eax), %ecx
2571 # ifdef USE_AS_STRNCASECMP_L
2572 movzbl 6(%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
2591 movzbl 7(%eax), %ecx
2592 # ifdef USE_AS_STRNCASECMP_L
2593 movzbl 7(%edx), %esi
2595 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2596 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2598 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2599 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2613 movzbl 8(%eax), %ecx
2614 # ifdef USE_AS_STRNCASECMP_L
2615 movzbl 8(%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 9(%eax), %ecx
2635 # ifdef USE_AS_STRNCASECMP_L
2636 movzbl 9(%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 10(%eax), %ecx
2656 # ifdef USE_AS_STRNCASECMP_L
2657 movzbl 10(%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
2676 movzbl 11(%eax), %ecx
2677 # ifdef USE_AS_STRNCASECMP_L
2678 movzbl 11(%edx), %esi
2680 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2681 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2683 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2684 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2698 movzbl 12(%eax), %ecx
2699 # ifdef USE_AS_STRNCASECMP_L
2700 movzbl 12(%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 13(%eax), %ecx
2720 # ifdef USE_AS_STRNCASECMP_L
2721 movzbl 13(%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 14(%eax), %ecx
2741 # ifdef USE_AS_STRNCASECMP_L
2742 movzbl 14(%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
2761 movzbl 15(%eax), %ecx
2762 # ifdef USE_AS_STRNCASECMP_L
2763 movzbl 15(%edx), %esi
2765 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
2766 movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
2768 movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
2769 movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
2777 # ifdef USE_AS_STRNCASECMP_L
2782 # if defined USE_AS_STRNCASECMP_L && defined PIC
2788 # ifdef USE_AS_STRNCASECMP_L