about summary refs log tree commit diff
path: root/sysdeps/x86_64/multiarch/init-arch.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-06-30 08:26:11 -0700
committerUlrich Drepper <drepper@redhat.com>2010-06-30 08:26:11 -0700
commit6fb8cbcb58a29fff73eb2101b34caa19a7f88eba (patch)
tree3a39ddec3a6cf66f8541c6591dbe4017136580f0 /sysdeps/x86_64/multiarch/init-arch.c
parentd85f8ff66711fd3b1c5753330499c7403fa46d81 (diff)
downloadglibc-6fb8cbcb58a29fff73eb2101b34caa19a7f88eba.tar.gz
glibc-6fb8cbcb58a29fff73eb2101b34caa19a7f88eba.tar.xz
glibc-6fb8cbcb58a29fff73eb2101b34caa19a7f88eba.zip
Improve 64bit memcpy/memmove for Atom, Core 2 and Core i7
This patch includes optimized 64bit memcpy/memmove for Atom, Core 2 and
Core i7.  It improves memcpy by up to 3X on Atom, up to 4X on Core 2 and
up to 1X on Core i7.  It also improves memmove by up to 3X on Atom, up to
4X on Core 2 and up to 2X on Core i7.
Diffstat (limited to 'sysdeps/x86_64/multiarch/init-arch.c')
-rw-r--r--sysdeps/x86_64/multiarch/init-arch.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
index f13a9f4b79..55c9f54f96 100644
--- a/sysdeps/x86_64/multiarch/init-arch.c
+++ b/sysdeps/x86_64/multiarch/init-arch.c
@@ -78,10 +78,13 @@ __init_cpu_features (void)
 	    case 0x25:
 	    case 0x2e:
 	    case 0x2f:
-	      /* Rep string instructions are fast on Intel Core i3, i5
-		 and i7.  */
+	      /* Rep string instructions and copy backward are fast on
+		 Intel Core i3, i5 and i7.  */
+#if index_Fast_Rep_String != index_Fast_Copy_Backward
+# error index_Fast_Rep_String != index_Fast_Copy_Backward
+#endif
 	      __cpu_features.feature[index_Fast_Rep_String]
-		|= bit_Fast_Rep_String;
+		|= bit_Fast_Rep_String | bit_Fast_Copy_Backward;
 	      break;
 	    }
 	}