aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-08-15 20:46:09 -0700
committerUlrich Drepper <drepper@redhat.com>2010-08-15 20:46:09 -0700
commit1feccb6caf8b324e67d6becebbe445af1a3b0847 (patch)
tree4baca612651cbad09c28b2b5bb40e876696bf287
parentf8392f40049cf6faedcf4f26736227d9a7a04b9e (diff)
downloadglibc-1feccb6caf8b324e67d6becebbe445af1a3b0847.tar
glibc-1feccb6caf8b324e67d6becebbe445af1a3b0847.tar.gz
glibc-1feccb6caf8b324e67d6becebbe445af1a3b0847.tar.bz2
glibc-1feccb6caf8b324e67d6becebbe445af1a3b0847.zip
Fix fourth parameter of SSE4.2 strcmp for x86-64.
-rw-r--r--ChangeLog1
-rw-r--r--sysdeps/x86_64/multiarch/strcmp.S6
2 files changed, 4 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5008892f14..b9dc348edd 100644
--- 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>
diff --git a/sysdeps/x86_64/multiarch/strcmp.S b/sysdeps/x86_64/multiarch/strcmp.S
index 764eb09320..45cd80b2f0 100644
--- a/sysdeps/x86_64/multiarch/strcmp.S
+++ b/sysdeps/x86_64/multiarch/strcmp.S
@@ -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