summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/strcmp.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-07-31 21:41:09 -0700
committerUlrich Drepper <drepper@redhat.com>2010-07-31 21:41:09 -0700
commit73507d3ae077c2dcf0da857a5a244deff3d4d223 (patch)
tree0a6b1d0c944ded9e269b8c47f802d0a920186a7e /sysdeps/x86_64/strcmp.S
parent66f6765a472452937fa821d6c30e2396e113bd60 (diff)
downloadglibc-73507d3ae077c2dcf0da857a5a244deff3d4d223.tar.gz
Add support for SSSE3 and SSE4.2 versions of strcasecmp on x86-64.
Diffstat (limited to 'sysdeps/x86_64/strcmp.S')
-rw-r--r--sysdeps/x86_64/strcmp.S13
1 files changed, 11 insertions, 2 deletions
diff --git a/sysdeps/x86_64/strcmp.S b/sysdeps/x86_64/strcmp.S
index 7b2b246866..d36fef225b 100644
--- a/sysdeps/x86_64/strcmp.S
+++ b/sysdeps/x86_64/strcmp.S
@@ -74,15 +74,24 @@
#endif
#ifdef USE_AS_STRCASECMP_L
-ENTRY (__strcasecmp)
+# ifndef ENTRY2
+# define ENTRY2(name) ENTRY (name)
+# define END2(name) END (name)
+# define NO_NOLOCALE_ALIAS
+# endif
+
+ ENTRY2 (__strcasecmp)
movq __libc_tsd_LOCALE@gottpoff(%rip),%rax
movq %fs:(%rax),%rdx
+ // XXX 5 byte should be before the function
/* 5-byte NOP. */
.byte 0x0f,0x1f,0x44,0x00,0x00
-END (__strcasecmp)
+END2 (__strcasecmp)
+# ifndef NO_NOLOCALE_ALIAS
weak_alias (__strcasecmp, strcasecmp)
libc_hidden_def (__strcasecmp)
+# endif
/* FALLTHROUGH to strcasecmp_l. */
#endif