[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r6317 - in glibc-package/trunk/debian: . patches patches/amd64



Author: aurel32
Date: 2014-10-27 21:39:20 +0000 (Mon, 27 Oct 2014)
New Revision: 6317

Added:
   glibc-package/trunk/debian/patches/amd64/cvs-slow-sse42.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
patches/amd64/cvs-slow-sse42.diff: backport patch from upstream to fix
a performance issue with strcmp and friends functions on some machines.

Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2014-10-27 21:34:59 UTC (rev 6316)
+++ glibc-package/trunk/debian/changelog	2014-10-27 21:39:20 UTC (rev 6317)
@@ -5,6 +5,8 @@
     Workarounds a kfreebsd 9.0 to 10.1 ABI break. Closes: #740509.
   * patches/hppa/cvs-sigrtmin.diff: backport patch from upstream to change
     __SIGRTMIN to match other architectures. Closes: #766605.
+  * patches/amd64/cvs-slow-sse42.diff: backport patch from upstream to fix
+    a performance issue with strcmp and friends functions on some machines.
 
  -- Aurelien Jarno <aurel32@debian.org>  Mon, 27 Oct 2014 21:36:32 +0100
 

Added: glibc-package/trunk/debian/patches/amd64/cvs-slow-sse42.diff
===================================================================
--- glibc-package/trunk/debian/patches/amd64/cvs-slow-sse42.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/amd64/cvs-slow-sse42.diff	2014-10-27 21:39:20 UTC (rev 6317)
@@ -0,0 +1,103 @@
+2014-10-27  Andreas Schwab  <schwab@suse.de>
+
+	[BZ #17501]
+	* sysdeps/i386/i686/multiarch/strcasecmp.S (__strcasecmp): Fix
+	check for Slow_SSE4_2 feature bit.
+	* sysdeps/i386/i686/multiarch/strcmp.S (STRCMP): Likewise.
+	* sysdeps/i386/i686/multiarch/strncase.S (__strncasecmp): Likewise.
+	* sysdeps/x86_64/multiarch/strcmp.S (STRCMP, __strcascmp):
+	Likewise.  Fix check for Fast_Unaligned_Load feature bit.
+
+--- a/sysdeps/i386/i686/multiarch/strcasecmp.S
++++ b/sysdeps/i386/i686/multiarch/strcasecmp.S
+@@ -37,7 +37,7 @@ ENTRY(__strcasecmp)
+ 	leal	__strcasecmp_ssse3@GOTOFF(%ebx), %eax
+ 	testl	$bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ 	jz	2f
+-	testl	$bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
++	testl	$bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ 	jnz	2f
+ 	leal	__strcasecmp_sse4_2@GOTOFF(%ebx), %eax
+ 2:	popl	%ebx
+@@ -58,7 +58,7 @@ ENTRY(__strcasecmp)
+ 	leal	__strcasecmp_ssse3, %eax
+ 	testl	$bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+ 	jz	2f
+-	testl	$bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
++	testl	$bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features
+ 	jnz	2f
+ 	leal	__strcasecmp_sse4_2, %eax
+ 2:	ret
+--- a/sysdeps/i386/i686/multiarch/strcmp.S
++++ b/sysdeps/i386/i686/multiarch/strcmp.S
+@@ -68,7 +68,7 @@ ENTRY(STRCMP)
+ 	leal	__STRCMP_SSSE3@GOTOFF(%ebx), %eax
+ 	testl	$bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ 	jz	2f
+-	testl	$bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
++	testl	$bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ 	jnz	2f
+ 	leal	__STRCMP_SSE4_2@GOTOFF(%ebx), %eax
+ 2:	popl	%ebx
+@@ -89,7 +89,7 @@ ENTRY(STRCMP)
+ 	leal	__STRCMP_SSSE3, %eax
+ 	testl	$bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+ 	jz	2f
+-	testl	$bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
++	testl	$bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features
+ 	jnz	2f
+ 	leal	__STRCMP_SSE4_2, %eax
+ 2:	ret
+--- a/sysdeps/i386/i686/multiarch/strncase.S
++++ b/sysdeps/i386/i686/multiarch/strncase.S
+@@ -37,7 +37,7 @@ ENTRY(__strncasecmp)
+ 	leal	__strncasecmp_ssse3@GOTOFF(%ebx), %eax
+ 	testl	$bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ 	jz	2f
+-	testl	$bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
++	testl	$bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ 	jnz	2f
+ 	leal	__strncasecmp_sse4_2@GOTOFF(%ebx), %eax
+ 2:	popl	%ebx
+@@ -58,7 +58,7 @@ ENTRY(__strncasecmp)
+ 	leal	__strncasecmp_ssse3, %eax
+ 	testl	$bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+ 	jz	2f
+-	testl	$bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
++	testl	$bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features
+ 	jnz	2f
+ 	leal	__strncasecmp_sse4_2, %eax
+ 2:	ret
+--- a/sysdeps/x86_64/multiarch/strcmp.S
++++ b/sysdeps/x86_64/multiarch/strcmp.S
+@@ -91,10 +91,10 @@ ENTRY(STRCMP)
+ 1:
+ #ifdef USE_AS_STRCMP
+ 	leaq	__strcmp_sse2_unaligned(%rip), %rax
+-	testl   $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip)
++	testl   $bit_Fast_Unaligned_Load, __cpu_features+FEATURE_OFFSET+index_Fast_Unaligned_Load(%rip)
+ 	jnz     3f
+ #else
+-	testl	$bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip)
++	testl	$bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip)
+ 	jnz	2f
+ 	leaq	STRCMP_SSE42(%rip), %rax
+ 	testl	$bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+@@ -120,7 +120,7 @@ ENTRY(__strcasecmp)
+ 	testl	$bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip)
+ 	jnz	3f
+ #  endif
+-	testl	$bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip)
++	testl	$bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip)
+ 	jnz	2f
+ 	leaq	__strcasecmp_sse42(%rip), %rax
+ 	testl	$bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+@@ -146,7 +146,7 @@ ENTRY(__strncasecmp)
+ 	testl	$bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip)
+ 	jnz	3f
+ #  endif
+-	testl	$bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip)
++	testl	$bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip)
+ 	jnz	2f
+ 	leaq	__strncasecmp_sse42(%rip), %rax
+ 	testl	$bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2014-10-27 21:34:59 UTC (rev 6316)
+++ glibc-package/trunk/debian/patches/series	2014-10-27 21:39:20 UTC (rev 6317)
@@ -51,6 +51,7 @@
 
 amd64/submitted-rwlock-stack-imbalance.diff
 amd64/local-blacklist-on-TSX-Haswell.diff
+amd64/cvs-slow-sse42.diff
 
 arm/local-ioperm.diff
 arm/local-lowlevellock.diff


Reply to: