From: Ulrich Drepper Date: Mon, 16 Aug 2010 03:46:09 +0000 (-0700) Subject: Fix fourth parameter of SSE4.2 strcmp for x86-64. X-Git-Tag: glibc-2.13~153^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1feccb6caf8b324e67d6becebbe445af1a3b0847;p=thirdparty%2Fglibc.git Fix fourth parameter of SSE4.2 strcmp for x86-64. --- diff --git a/ChangeLog b/ChangeLog index 5008892f146..b9dc348edd8 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 764eb093207..45cd80b2f0d 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