about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-08-20 08:28:10 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-08-27 09:35:10 -0700
commit3882e4ba5b6a043a034b20b6001dda727cc45a80 (patch)
tree7a507bc557ae9aa55e41b39e8854d9e0e8f5b895
parenta51db847c9ca5926c22c9bf2505c3d69886967b8 (diff)
downloadglibc-3882e4ba5b6a043a034b20b6001dda727cc45a80.tar.gz
glibc-3882e4ba5b6a043a034b20b6001dda727cc45a80.tar.xz
glibc-3882e4ba5b6a043a034b20b6001dda727cc45a80.zip
Add i386 memrchr multiarch functions
-rw-r--r--sysdeps/i386/i686/multiarch/Makefile1
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr-c.c7
-rw-r--r--sysdeps/i386/multiarch/Makefile3
-rw-r--r--sysdeps/i386/multiarch/ifunc-impl-list.c4
-rw-r--r--sysdeps/i386/multiarch/memrchr-i386.c7
-rw-r--r--sysdeps/i386/multiarch/memrchr-sse2-bsf.S (renamed from sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S)0
-rw-r--r--sysdeps/i386/multiarch/memrchr-sse2.S (renamed from sysdeps/i386/i686/multiarch/memrchr-sse2.S)0
-rw-r--r--sysdeps/i386/multiarch/memrchr.S (renamed from sysdeps/i386/i686/multiarch/memrchr.S)2
8 files changed, 11 insertions, 13 deletions
diff --git a/sysdeps/i386/i686/multiarch/Makefile b/sysdeps/i386/i686/multiarch/Makefile
index ec128d7047..0b91d00a0d 100644
--- a/sysdeps/i386/i686/multiarch/Makefile
+++ b/sysdeps/i386/i686/multiarch/Makefile
@@ -7,7 +7,6 @@ sysdep_routines += strcmp-ssse3 \
 		   strncpy-sse2 stpcpy-sse2 stpncpy-sse2 strcat-ssse3 \
 		   strcat-sse2 strncat-ssse3 strncat-sse2 strncat-c \
 		   strchr-sse2 strrchr-sse2 strchr-sse2-bsf strrchr-sse2-bsf \
-		   memrchr-sse2 memrchr-sse2-bsf memrchr-c \
 		   rawmemchr-sse2 rawmemchr-sse2-bsf \
 		   strnlen-sse2 strnlen-c \
 		   strcasecmp_l-c strcasecmp-c strcasecmp_l-ssse3 \
diff --git a/sysdeps/i386/i686/multiarch/memrchr-c.c b/sysdeps/i386/i686/multiarch/memrchr-c.c
deleted file mode 100644
index ef7bbbe792..0000000000
--- a/sysdeps/i386/i686/multiarch/memrchr-c.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#if IS_IN (libc)
-# define MEMRCHR  __memrchr_ia32
-# include <string.h>
-extern void *__memrchr_ia32 (const void *, int, size_t);
-#endif
-
-#include "string/memrchr.c"
diff --git a/sysdeps/i386/multiarch/Makefile b/sysdeps/i386/multiarch/Makefile
index 577bbb6c65..fc9364fe65 100644
--- a/sysdeps/i386/multiarch/Makefile
+++ b/sysdeps/i386/multiarch/Makefile
@@ -19,5 +19,6 @@ sysdep_routines += bcopy-i386 bcopy-i686 bcopy-sse2-unaligned \
 		   memset-i386 memset-i586 memset-i686 \
 		   memset-sse2 memset-sse2-rep \
 		   memchr-sse2-bsf memchr-sse2 \
-		   memcmp-i386 memcmp-i686 memcmp-ssse3 memcmp-sse4
+		   memcmp-i386 memcmp-i686 memcmp-ssse3 memcmp-sse4 \
+		   memrchr-i386 memrchr-sse2-bsf memrchr-sse2
 endif
diff --git a/sysdeps/i386/multiarch/ifunc-impl-list.c b/sysdeps/i386/multiarch/ifunc-impl-list.c
index e57134d340..15c2009e62 100644
--- a/sysdeps/i386/multiarch/ifunc-impl-list.c
+++ b/sysdeps/i386/multiarch/ifunc-impl-list.c
@@ -116,15 +116,13 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 #endif
 	      )
 
-#if 0
   /* Support sysdeps/i386/i686/multiarch/memrchr.S.  */
   IFUNC_IMPL (i, name, memrchr,
 	      IFUNC_IMPL_ADD (array, i, memrchr, HAS_CPU_FEATURE (SSE2),
 			      __memrchr_sse2_bsf)
 	      IFUNC_IMPL_ADD (array, i, memrchr, HAS_CPU_FEATURE (SSE2),
 			      __memrchr_sse2)
-	      IFUNC_IMPL_ADD (array, i, memrchr, 1, __memrchr_ia32))
-#endif
+	      IFUNC_IMPL_ADD (array, i, memrchr, 1, __memrchr_i386))
 
   /* Support sysdeps/i386/i686/multiarch/memset_chk.S.  */
   IFUNC_IMPL (i, name, __memset_chk,
diff --git a/sysdeps/i386/multiarch/memrchr-i386.c b/sysdeps/i386/multiarch/memrchr-i386.c
new file mode 100644
index 0000000000..f8cef0712b
--- /dev/null
+++ b/sysdeps/i386/multiarch/memrchr-i386.c
@@ -0,0 +1,7 @@
+#if IS_IN (libc)
+# define MEMRCHR  __memrchr_i386
+# include <string.h>
+extern void *__memrchr_i386 (const void *, int, size_t);
+#endif
+
+#include "string/memrchr.c"
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S b/sysdeps/i386/multiarch/memrchr-sse2-bsf.S
index 043e1bbd23..043e1bbd23 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
+++ b/sysdeps/i386/multiarch/memrchr-sse2-bsf.S
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2.S b/sysdeps/i386/multiarch/memrchr-sse2.S
index 65e3c8bc73..65e3c8bc73 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2.S
+++ b/sysdeps/i386/multiarch/memrchr-sse2.S
diff --git a/sysdeps/i386/i686/multiarch/memrchr.S b/sysdeps/i386/multiarch/memrchr.S
index 32fb1a6792..be8deae4e6 100644
--- a/sysdeps/i386/i686/multiarch/memrchr.S
+++ b/sysdeps/i386/multiarch/memrchr.S
@@ -34,7 +34,7 @@ ENTRY(__memrchr)
 	LOAD_FUNC_GOT_EAX (__memrchr_sse2)
 	ret
 
-2:	LOAD_FUNC_GOT_EAX (__memrchr_ia32)
+2:	LOAD_FUNC_GOT_EAX (__memrchr_i386)
 	ret
 
 3:	LOAD_FUNC_GOT_EAX (__memrchr_sse2_bsf)