diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/strcmp.S | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index dd78abe472..b8ac051a23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-08-15 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/x86_64/strcmp.S: Use correct register for fourth parameter + of strncasecmp_l. + 2010-08-14 Ulrich Drepper <drepper@redhat.com> * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add diff --git a/sysdeps/x86_64/strcmp.S b/sysdeps/x86_64/strcmp.S index 685fec183c..aeb8895bed 100644 --- a/sysdeps/x86_64/strcmp.S +++ b/sysdeps/x86_64/strcmp.S @@ -116,7 +116,7 @@ libc_hidden_def (__strcasecmp) ENTRY2 (__strncasecmp) movq __libc_tsd_LOCALE@gottpoff(%rip),%rax - movq %fs:(%rax),%r10 + movq %fs:(%rax),%rcx // XXX 5 byte should be before the function /* 5-byte NOP. */ @@ -163,9 +163,9 @@ END (BP_SYM (STRCMP)) /* We have to fall back on the C implementation for locales with encodings not matching ASCII for single bytes. */ # if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 - movq LOCALE_T___LOCALES+LC_CTYPE*8(%r10), %rax + movq LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax # else - movq (%r10), %rax + movq (%rcx), %rax # endif testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) jne __strncasecmp_l_nonascii |