diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2012-05-15 09:59:31 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2012-05-15 09:59:31 -0700 |
commit | 70bc83b910850502582330b9b3a0fe961a36d86b (patch) | |
tree | 0699e241b26d660f811e83074cb01fe6e1bf6af6 | |
parent | 9bc0b730a650b333a257777cf7d8e18d5332ee10 (diff) | |
download | glibc-70bc83b910850502582330b9b3a0fe961a36d86b.tar.gz glibc-70bc83b910850502582330b9b3a0fe961a36d86b.tar.xz glibc-70bc83b910850502582330b9b3a0fe961a36d86b.zip |
Load pointers into RAX_LP in strcmp-sse42.S
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/multiarch/strcmp-sse42.S | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 7891285462..14d081f971 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2012-05-15 H.J. Lu <hongjiu.lu@intel.com> + * sysdeps/x86_64/multiarch/strcmp-sse42.S: Load pointers into + RAX_LP. + +2012-05-15 H.J. Lu <hongjiu.lu@intel.com> + * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Load cache sizes into R*_LP. diff --git a/sysdeps/x86_64/multiarch/strcmp-sse42.S b/sysdeps/x86_64/multiarch/strcmp-sse42.S index 52cb70693c..9d00bbc5ad 100644 --- a/sysdeps/x86_64/multiarch/strcmp-sse42.S +++ b/sysdeps/x86_64/multiarch/strcmp-sse42.S @@ -51,7 +51,7 @@ #ifdef USE_AS_STRCASECMP_L ENTRY (GLABEL(__strcasecmp)) movq __libc_tsd_LOCALE@gottpoff(%rip),%rax - movq %fs:(%rax),%rdx + mov %fs:(%rax),%RDX_LP // XXX 5 byte should be before the function /* 5-byte NOP. */ @@ -62,7 +62,7 @@ END (GLABEL(__strcasecmp)) #ifdef USE_AS_STRNCASECMP_L ENTRY (GLABEL(__strncasecmp)) movq __libc_tsd_LOCALE@gottpoff(%rip),%rax - movq %fs:(%rax),%rcx + mov %fs:(%rax),%RCX_LP // XXX 5 byte should be before the function /* 5-byte NOP. */ @@ -99,9 +99,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(%rdx), %rax + mov LOCALE_T___LOCALES+LC_CTYPE*LP_SIZE(%rdx), %RAX_LP # else - movq (%rdx), %rax + mov (%rdx), %RAX_LP # endif testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) jne __strcasecmp_l_nonascii @@ -110,9 +110,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(%rcx), %rax + mov LOCALE_T___LOCALES+LC_CTYPE*LP_SIZE(%rcx), %RAX_LP # else - movq (%rcx), %rax + mov (%rcx), %RAX_LP # endif testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) jne __strncasecmp_l_nonascii |