about summary refs log tree commit diff
path: root/sysdeps/x86_64/multiarch/strcmp.S
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-11-10 03:05:37 -0500
committerUlrich Drepper <drepper@gmail.com>2010-11-10 03:05:37 -0500
commit8ca52c6e3b2dc44a46c32d6a8e6a7f608915998f (patch)
treefd2ff61641c3c584b23952682253c4065c82088c /sysdeps/x86_64/multiarch/strcmp.S
parent69da074d7adfab7b57004a0dea9403a928e310a5 (diff)
downloadglibc-8ca52c6e3b2dc44a46c32d6a8e6a7f608915998f.tar.gz
glibc-8ca52c6e3b2dc44a46c32d6a8e6a7f608915998f.tar.xz
glibc-8ca52c6e3b2dc44a46c32d6a8e6a7f608915998f.zip
Fix one exit path in x86-64 SSE4.2 str{,n}casecmp.
Diffstat (limited to 'sysdeps/x86_64/multiarch/strcmp.S')
-rw-r--r--sysdeps/x86_64/multiarch/strcmp.S6
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/x86_64/multiarch/strcmp.S b/sysdeps/x86_64/multiarch/strcmp.S
index 54e5bbc31d..1859289572 100644
--- a/sysdeps/x86_64/multiarch/strcmp.S
+++ b/sysdeps/x86_64/multiarch/strcmp.S
@@ -1809,7 +1809,13 @@ LABEL(nibble_ashr_15_use_sse4_2):
 	ja	LABEL(loop_ashr_15_use_sse4_2)
 
 LABEL(nibble_ashr_use_sse4_2_exit):
+# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
 	pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
+# else
+	movdqa	(%rsi,%rdx), %xmm1
+	TOLOWER (%xmm0, %xmm1)
+	pcmpistri $0x1a, %xmm1, %xmm0
+# endif
 	.p2align 4
 LABEL(use_sse4_2_exit):
 	jnc	LABEL(strcmp_exitz_sse4_2)