From 1feccb6caf8b324e67d6becebbe445af1a3b0847 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 15 Aug 2010 20:46:09 -0700 Subject: [PATCH] Fix fourth parameter of SSE4.2 strcmp for x86-64. --- ChangeLog | 1 + sysdeps/x86_64/multiarch/strcmp.S | 6 +++--- 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 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