i686: Skip SSE4_2 version for strcmp, strncmp, strncase, strcasecmp
if bit_Slow_SSE4_2 is set.
This commit is contained in:
parent
d400dcac5e
commit
46ed103824
|
@ -1,3 +1,10 @@
|
||||||
|
2013-08-21 Liubov Dmitrieva <liubov.dmitrieva@intel.com>
|
||||||
|
|
||||||
|
* sysdeps/i386/i686/multiarch/strcmp.S: Skip SSE4_2
|
||||||
|
version if bit_Slow_SSE4_2 is set.
|
||||||
|
* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
|
||||||
|
* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
|
||||||
|
|
||||||
2013-07-23 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
2013-07-23 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
[BZ #15867]
|
[BZ #15867]
|
||||||
|
|
|
@ -37,6 +37,8 @@ ENTRY(__strcasecmp)
|
||||||
leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax
|
leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax
|
||||||
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
||||||
jz 2f
|
jz 2f
|
||||||
|
testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
||||||
|
jnz 2f
|
||||||
leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax
|
leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax
|
||||||
2: popl %ebx
|
2: popl %ebx
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
@ -56,6 +58,8 @@ ENTRY(__strcasecmp)
|
||||||
leal __strcasecmp_ssse3, %eax
|
leal __strcasecmp_ssse3, %eax
|
||||||
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
|
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
|
||||||
jz 2f
|
jz 2f
|
||||||
|
testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
|
||||||
|
jnz 2f
|
||||||
leal __strcasecmp_sse4_2, %eax
|
leal __strcasecmp_sse4_2, %eax
|
||||||
2: ret
|
2: ret
|
||||||
END(__strcasecmp)
|
END(__strcasecmp)
|
||||||
|
|
|
@ -68,6 +68,8 @@ ENTRY(STRCMP)
|
||||||
leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax
|
leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax
|
||||||
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
||||||
jz 2f
|
jz 2f
|
||||||
|
testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
||||||
|
jnz 2f
|
||||||
leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax
|
leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax
|
||||||
2: popl %ebx
|
2: popl %ebx
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
@ -87,6 +89,8 @@ ENTRY(STRCMP)
|
||||||
leal __STRCMP_SSSE3, %eax
|
leal __STRCMP_SSSE3, %eax
|
||||||
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
|
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
|
||||||
jz 2f
|
jz 2f
|
||||||
|
testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
|
||||||
|
jnz 2f
|
||||||
leal __STRCMP_SSE4_2, %eax
|
leal __STRCMP_SSE4_2, %eax
|
||||||
2: ret
|
2: ret
|
||||||
END(STRCMP)
|
END(STRCMP)
|
||||||
|
|
|
@ -37,6 +37,8 @@ ENTRY(__strncasecmp)
|
||||||
leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax
|
leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax
|
||||||
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
||||||
jz 2f
|
jz 2f
|
||||||
|
testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
|
||||||
|
jnz 2f
|
||||||
leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax
|
leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax
|
||||||
2: popl %ebx
|
2: popl %ebx
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
@ -56,6 +58,8 @@ ENTRY(__strncasecmp)
|
||||||
leal __strncasecmp_ssse3, %eax
|
leal __strncasecmp_ssse3, %eax
|
||||||
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
|
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
|
||||||
jz 2f
|
jz 2f
|
||||||
|
testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
|
||||||
|
jnz 2f
|
||||||
leal __strncasecmp_sse4_2, %eax
|
leal __strncasecmp_sse4_2, %eax
|
||||||
2: ret
|
2: ret
|
||||||
END(__strncasecmp)
|
END(__strncasecmp)
|
||||||
|
|
Loading…
Reference in New Issue