about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-04-01 15:08:48 -0700
committerH.J. Lu <hjl.tools@gmail.com>2016-04-01 15:09:14 -0700
commit27d3ce1467990f89126e228559dec8f84b96c60e (patch)
tree2d67df078f6e7ad4fdb0f7492426922ff762b9ee
parent2e51bc3813ca3fe72fd197d08d79496e46669f43 (diff)
downloadglibc-27d3ce1467990f89126e228559dec8f84b96c60e.tar.gz
glibc-27d3ce1467990f89126e228559dec8f84b96c60e.tar.xz
glibc-27d3ce1467990f89126e228559dec8f84b96c60e.zip
Remove Fast_Copy_Backward from Intel Core processors
Intel Core i3, i5 and i7 processors have fast unaligned copy and
copy backward is ignored.  Remove Fast_Copy_Backward from Intel Core
processors to avoid confusion.

	* sysdeps/x86/cpu-features.c (init_cpu_features): Don't set
	bit_arch_Fast_Copy_Backward for Intel Core proessors.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86/cpu-features.c6
2 files changed, 6 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index c181042349..d22231b95d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-04-01   H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86/cpu-features.c (init_cpu_features): Don't set
+	bit_arch_Fast_Copy_Backward for Intel Core proessors.
+
 2016-04-01  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
 	* string/strcspn.c (strcspn): Use PTR_ALIGN_DOWN.
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
index de75c79cf9..963b845916 100644
--- a/sysdeps/x86/cpu-features.c
+++ b/sysdeps/x86/cpu-features.c
@@ -176,11 +176,8 @@ init_cpu_features (struct cpu_features *cpu_features)
 	    case 0x2c:
 	    case 0x2e:
 	    case 0x2f:
-	      /* Rep string instructions, copy backward, unaligned loads
+	      /* Rep string instructions, unaligned load, unaligned copy,
 		 and pminub are fast on Intel Core i3, i5 and i7.  */
-#if index_arch_Fast_Rep_String != index_arch_Fast_Copy_Backward
-# error index_arch_Fast_Rep_String != index_arch_Fast_Copy_Backward
-#endif
 #if index_arch_Fast_Rep_String != index_arch_Fast_Unaligned_Load
 # error index_arch_Fast_Rep_String != index_arch_Fast_Unaligned_Load
 #endif
@@ -192,7 +189,6 @@ init_cpu_features (struct cpu_features *cpu_features)
 #endif
 	      cpu_features->feature[index_arch_Fast_Rep_String]
 		|= (bit_arch_Fast_Rep_String
-		    | bit_arch_Fast_Copy_Backward
 		    | bit_arch_Fast_Unaligned_Load
 		    | bit_arch_Fast_Unaligned_Copy
 		    | bit_arch_Prefer_PMINUB_for_stringop);