mirror of git://sourceware.org/git/glibc.git
Load pointers into R*_LP in strcmp.S
This commit is contained in:
parent
54e2ed8105
commit
3cb845617b
|
@ -1,3 +1,7 @@
|
||||||
|
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* sysdeps/x86_64/strcmp.S: Load pointers into R*_LP.
|
||||||
|
|
||||||
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
|
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* sysdeps/x86_64/memcpy.S: Load __x86_64_data_cache_size_half
|
* sysdeps/x86_64/memcpy.S: Load __x86_64_data_cache_size_half
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
|
|
||||||
ENTRY2 (__strcasecmp)
|
ENTRY2 (__strcasecmp)
|
||||||
movq __libc_tsd_LOCALE@gottpoff(%rip),%rax
|
movq __libc_tsd_LOCALE@gottpoff(%rip),%rax
|
||||||
movq %fs:(%rax),%rdx
|
mov %fs:(%rax),%RDX_LP
|
||||||
|
|
||||||
// XXX 5 byte should be before the function
|
// XXX 5 byte should be before the function
|
||||||
/* 5-byte NOP. */
|
/* 5-byte NOP. */
|
||||||
|
@ -115,7 +115,7 @@ libc_hidden_def (__strcasecmp)
|
||||||
|
|
||||||
ENTRY2 (__strncasecmp)
|
ENTRY2 (__strncasecmp)
|
||||||
movq __libc_tsd_LOCALE@gottpoff(%rip),%rax
|
movq __libc_tsd_LOCALE@gottpoff(%rip),%rax
|
||||||
movq %fs:(%rax),%rcx
|
mov %fs:(%rax),%RCX_LP
|
||||||
|
|
||||||
// XXX 5 byte should be before the function
|
// XXX 5 byte should be before the function
|
||||||
/* 5-byte NOP. */
|
/* 5-byte NOP. */
|
||||||
|
@ -152,9 +152,9 @@ END (BP_SYM (STRCMP))
|
||||||
/* We have to fall back on the C implementation for locales
|
/* We have to fall back on the C implementation for locales
|
||||||
with encodings not matching ASCII for single bytes. */
|
with encodings not matching ASCII for single bytes. */
|
||||||
# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
|
# 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
|
# else
|
||||||
movq (%rdx), %rax
|
mov (%rdx), %RAX_LP
|
||||||
# endif
|
# endif
|
||||||
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
|
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
|
||||||
jne __strcasecmp_l_nonascii
|
jne __strcasecmp_l_nonascii
|
||||||
|
@ -162,9 +162,9 @@ END (BP_SYM (STRCMP))
|
||||||
/* We have to fall back on the C implementation for locales
|
/* We have to fall back on the C implementation for locales
|
||||||
with encodings not matching ASCII for single bytes. */
|
with encodings not matching ASCII for single bytes. */
|
||||||
# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
|
# 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
|
# else
|
||||||
movq (%rcx), %rax
|
mov (%rcx), %RAX_LP
|
||||||
# endif
|
# endif
|
||||||
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
|
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
|
||||||
jne __strncasecmp_l_nonascii
|
jne __strncasecmp_l_nonascii
|
||||||
|
|
Loading…
Reference in New Issue