Fix fourth parameter of SSE4.2 strcmp for x86-64.
authorUlrich Drepper <drepper@redhat.com>
Mon, 16 Aug 2010 03:46:09 +0000 (20:46 -0700)
committerUlrich Drepper <drepper@redhat.com>
Mon, 16 Aug 2010 03:46:09 +0000 (20:46 -0700)
ChangeLog
sysdeps/x86_64/multiarch/strcmp.S

index 5008892..b9dc348 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,7 @@
 
        * sysdeps/x86_64/strcmp.S: Use correct register for fourth parameter
        of strncasecmp_l.
+       * sysdeps/multiarch/strcmp.S: Likewise.
 
 2010-08-14  Ulrich Drepper  <drepper@redhat.com>
 
index 764eb09..45cd80b 100644 (file)
@@ -181,7 +181,7 @@ END (__strcasecmp_sse42)
 # ifdef USE_AS_STRNCASECMP_L
 ENTRY (__strncasecmp_sse42)
        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.  */
@@ -212,9 +212,9 @@ STRCMP_SSE42:
        /* 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