Fix test of non-ASCII locales in x86-64 strcasecmp et.al.

This commit is contained in:
Ulrich Drepper 2011-11-01 16:46:23 -04:00
parent fadb59f8d3
commit 34372fc6d3
3 changed files with 8 additions and 5 deletions

View File

@ -1,5 +1,8 @@
2011-11-01 Ulrich Drepper <drepper@gmail.com>
* sysdeps/x86_64/strcmp.S: Fix test for non-ASCII locales.
* sysdeps/x86_64/multiarch/strcmp-sse42.S: Likewise.
* posix/tst-rfc3484.c: Add missing __free_in6ai dummy function.
* posix/tst-rfc3484-2.c: Likewise.
* posix/tst-rfc3484-3.c: Likewise.

View File

@ -104,7 +104,7 @@ STRCMP_SSE42:
# else
movq (%rdx), %rax
# endif
testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strcasecmp_l_nonascii
#endif
#ifdef USE_AS_STRNCASECMP_L
@ -115,7 +115,7 @@ STRCMP_SSE42:
# else
movq (%rcx), %rax
# endif
testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strncasecmp_l_nonascii
#endif

View File

@ -1,5 +1,5 @@
/* Highly optimized version for x86-64.
Copyright (C) 1999, 2000, 2002, 2003, 2005, 2009, 2010
Copyright (C) 1999, 2000, 2002, 2003, 2005, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on i686 version contributed by Ulrich Drepper
@ -157,7 +157,7 @@ END (BP_SYM (STRCMP))
# else
movq (%rdx), %rax
# endif
testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strcasecmp_l_nonascii
# elif defined USE_AS_STRNCASECMP_L
/* We have to fall back on the C implementation for locales
@ -167,7 +167,7 @@ END (BP_SYM (STRCMP))
# else
movq (%rcx), %rax
# endif
testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strncasecmp_l_nonascii
# endif