This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Rename __memcmp_sse4_2 to __memcmp_sse4_1.
- From: Matt Turner <mattst88 at gmail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: libc-alpha at sourceware dot org, Matt Turner <mattst88 at gmail dot com>
- Date: Tue, 9 Jul 2013 18:17:09 -0700
- Subject: [PATCH] Rename __memcmp_sse4_2 to __memcmp_sse4_1.
- References: <CAMe9rOreowCOEH+6zRaRNk_p9sYe3T2bhwPRbKpybW9cO0BhJA at mail dot gmail dot com>
It uses SSE 4.1 instructions (ptest) but no SSE 4.2 instructions.
2013-07-09 Matt Turner <mattst88@gmail.com>
* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Rename
__memcmp_sse4_2 to __memcmp_sse4_1 and add to ifunc when
HAS_SSE4_1. Rename __wmemcmp_sse4_2 to __wmemcmp_sse4_1 and
add to ifunc when HAS_SSE4_1.
* sysdeps/i386/i686/multiarch/memcmp-sse4.S (__memcmp_sse4_2):
Rename to __memcmp_sse4_1. Put in .text.sse4.1 rather than
.text.sse4.2.
* sysdeps/i386/i686/multiarch/memcmp.S: Test bit_SSE4_1 for
__memcmp_sse4_1.
* sysdeps/i386/i686/multiarch/wmemcmp-sse4.S: Rename
__wmemcmp_sse4_2 to __wmemcmp_sse4_1.
* sysdeps/i386/i686/multiarch/wmemcmp.S: Rename __wmemcmp_sse4_2
to __wmemcmp_sse4_1. Test bit_SSE4_1 for __wmemcmp_sse4_1.
---
sysdeps/i386/i686/multiarch/ifunc-impl-list.c | 8 ++++----
sysdeps/i386/i686/multiarch/memcmp-sse4.S | 8 ++++----
sysdeps/i386/i686/multiarch/memcmp.S | 8 ++++----
sysdeps/i386/i686/multiarch/wmemcmp-sse4.S | 2 +-
sysdeps/i386/i686/multiarch/wmemcmp.S | 4 ++--
5 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
index 2c282bd..eea27f1 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
+++ b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
@@ -58,8 +58,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/i386/i686/multiarch/memcmp.S. */
IFUNC_IMPL (i, name, memcmp,
- IFUNC_IMPL_ADD (array, i, memcmp, HAS_SSE4_2,
- __memcmp_sse4_2)
+ IFUNC_IMPL_ADD (array, i, memcmp, HAS_SSE4_1,
+ __memcmp_sse4_1)
IFUNC_IMPL_ADD (array, i, memcmp, HAS_SSSE3, __memcmp_ssse3)
IFUNC_IMPL_ADD (array, i, memcmp, 1, __memcmp_ia32))
@@ -266,8 +266,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/i386/i686/multiarch/wmemcmp.S. */
IFUNC_IMPL (i, name, wmemcmp,
- IFUNC_IMPL_ADD (array, i, wmemcmp, HAS_SSE4_2,
- __wmemcmp_sse4_2)
+ IFUNC_IMPL_ADD (array, i, wmemcmp, HAS_SSE4_1,
+ __wmemcmp_sse4_1)
IFUNC_IMPL_ADD (array, i, wmemcmp, HAS_SSSE3,
__wmemcmp_ssse3)
IFUNC_IMPL_ADD (array, i, wmemcmp, 1, __wmemcmp_ia32))
diff --git a/sysdeps/i386/i686/multiarch/memcmp-sse4.S b/sysdeps/i386/i686/multiarch/memcmp-sse4.S
index 14226f5..2b529fc 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-sse4.S
@@ -1,4 +1,4 @@
-/* memcmp with SSE4.2, wmemcmp with SSE4.2
+/* memcmp with SSE4.1, wmemcmp with SSE4.1
Copyright (C) 2010-2013 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -22,7 +22,7 @@
# include <sysdep.h>
# ifndef MEMCMP
-# define MEMCMP __memcmp_sse4_2
+# define MEMCMP __memcmp_sse4_1
# endif
# define CFI_PUSH(REG) \
@@ -76,7 +76,7 @@
memcmp has to use UNSIGNED comparison for elemnts.
*/
- .section .text.sse4.2,"ax",@progbits
+ .section .text.sse4.1,"ax",@progbits
ENTRY (MEMCMP)
movl BLK1(%esp), %eax
movl BLK2(%esp), %edx
@@ -1084,7 +1084,7 @@ L(bigger):
# endif
END (MEMCMP)
- .section .rodata.sse4.2,"a",@progbits
+ .section .rodata.sse4.1,"a",@progbits
.p2align 2
.type L(table_64bytes), @object
# ifndef USE_AS_WMEMCMP
diff --git a/sysdeps/i386/i686/multiarch/memcmp.S b/sysdeps/i386/i686/multiarch/memcmp.S
index 73d1363..c005bc2 100644
--- a/sysdeps/i386/i686/multiarch/memcmp.S
+++ b/sysdeps/i386/i686/multiarch/memcmp.S
@@ -38,9 +38,9 @@ ENTRY(memcmp)
testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx)
jz 2f
leal __memcmp_ssse3@GOTOFF(%ebx), %eax
- testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1+__cpu_features@GOTOFF(%ebx)
jz 2f
- leal __memcmp_sse4_2@GOTOFF(%ebx), %eax
+ leal __memcmp_sse4_1@GOTOFF(%ebx), %eax
2: popl %ebx
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
@@ -57,9 +57,9 @@ ENTRY(memcmp)
testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features
jz 2f
leal __memcmp_ssse3, %eax
- testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+ testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1+__cpu_features
jz 2f
- leal __memcmp_sse4_2, %eax
+ leal __memcmp_sse4_1, %eax
2: ret
END(memcmp)
# endif
diff --git a/sysdeps/i386/i686/multiarch/wmemcmp-sse4.S b/sysdeps/i386/i686/multiarch/wmemcmp-sse4.S
index 1a857c7..b07973a 100644
--- a/sysdeps/i386/i686/multiarch/wmemcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/wmemcmp-sse4.S
@@ -1,4 +1,4 @@
#define USE_AS_WMEMCMP 1
-#define MEMCMP __wmemcmp_sse4_2
+#define MEMCMP __wmemcmp_sse4_1
#include "memcmp-sse4.S"
diff --git a/sysdeps/i386/i686/multiarch/wmemcmp.S b/sysdeps/i386/i686/multiarch/wmemcmp.S
index e994038..91363dc 100644
--- a/sysdeps/i386/i686/multiarch/wmemcmp.S
+++ b/sysdeps/i386/i686/multiarch/wmemcmp.S
@@ -38,9 +38,9 @@ ENTRY(wmemcmp)
testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx)
jz 2f
leal __wmemcmp_ssse3@GOTOFF(%ebx), %eax
- testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ testl $bit_SSE4_1, CPUID_OFFSET+index_SSE4_1+__cpu_features@GOTOFF(%ebx)
jz 2f
- leal __wmemcmp_sse4_2@GOTOFF(%ebx), %eax
+ leal __wmemcmp_sse4_1@GOTOFF(%ebx), %eax
2: popl %ebx
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
--
1.8.1.5