summaryrefslogtreecommitdiff
path: root/libc/sysdeps/x86_64/multiarch/strchr.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/x86_64/multiarch/strchr.S')
-rw-r--r--libc/sysdeps/x86_64/multiarch/strchr.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/libc/sysdeps/x86_64/multiarch/strchr.S b/libc/sysdeps/x86_64/multiarch/strchr.S
index 71845a35f..97a6057bb 100644
--- a/libc/sysdeps/x86_64/multiarch/strchr.S
+++ b/libc/sysdeps/x86_64/multiarch/strchr.S
@@ -33,7 +33,11 @@ ENTRY(strchr)
testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
jz 2f
leaq __strchr_sse42(%rip), %rax
-2: ret
+ ret
+2: testl $bit_Slow_BSF, __cpu_features+FEATURE_OFFSET+index_Slow_BSF(%rip)
+ jz 3f
+ leaq __strchr_sse2_no_bsf(%rip), %rax
+3: ret
END(strchr)