diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-08-20 08:05:39 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-08-20 16:25:21 -0700 |
commit | 59ab12e45f78aec00851dd3bd76351cd74ebf9fb (patch) | |
tree | e6622c36356425598d17c5c70a0bd19ef5027324 | |
parent | 8b4f804e42a715c8f444da85be017568ad81cdf7 (diff) | |
download | glibc-59ab12e45f78aec00851dd3bd76351cd74ebf9fb.tar.gz glibc-59ab12e45f78aec00851dd3bd76351cd74ebf9fb.tar.xz glibc-59ab12e45f78aec00851dd3bd76351cd74ebf9fb.zip |
Add i386 memchr multiarch functions
-rw-r--r-- | sysdeps/i386/multiarch/Makefile | 1 | ||||
-rw-r--r-- | sysdeps/i386/multiarch/ifunc-impl-list.c | 4 | ||||
-rw-r--r-- | sysdeps/i386/multiarch/memchr-sse2-bsf.S (renamed from sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/multiarch/memchr-sse2.S (renamed from sysdeps/i386/i686/multiarch/memchr-sse2.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/multiarch/memchr.S (renamed from sysdeps/i386/i686/multiarch/memchr.S) | 20 |
5 files changed, 13 insertions, 12 deletions
diff --git a/sysdeps/i386/multiarch/Makefile b/sysdeps/i386/multiarch/Makefile index 63a61d8efe..c9508a26a5 100644 --- a/sysdeps/i386/multiarch/Makefile +++ b/sysdeps/i386/multiarch/Makefile @@ -18,4 +18,5 @@ sysdep_routines += bcopy-i386 bcopy-i686 bcopy-sse2-unaligned \ bzero-sse2 bzero-sse2-rep \ memset-i386 memset-i586 memset-i686 \ memset-sse2 memset-sse2-rep \ + memchr-sse2-bsf memchr-sse2 endif diff --git a/sysdeps/i386/multiarch/ifunc-impl-list.c b/sysdeps/i386/multiarch/ifunc-impl-list.c index 18f17e4f18..680e46797b 100644 --- a/sysdeps/i386/multiarch/ifunc-impl-list.c +++ b/sysdeps/i386/multiarch/ifunc-impl-list.c @@ -65,15 +65,15 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, #endif ) -#if 0 /* Support sysdeps/i386/i686/multiarch/memchr.S. */ IFUNC_IMPL (i, name, memchr, IFUNC_IMPL_ADD (array, i, memchr, HAS_CPU_FEATURE (SSE2), __memchr_sse2_bsf) IFUNC_IMPL_ADD (array, i, memchr, HAS_CPU_FEATURE (SSE2), __memchr_sse2) - IFUNC_IMPL_ADD (array, i, memchr, 1, __memchr_ia32)) + IFUNC_IMPL_ADD (array, i, memchr, 1, __memchr_i386)) +#if 0 /* Support sysdeps/i386/i686/multiarch/memcmp.S. */ IFUNC_IMPL (i, name, memcmp, IFUNC_IMPL_ADD (array, i, memcmp, HAS_CPU_FEATURE (SSE4_2), diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S b/sysdeps/i386/multiarch/memchr-sse2-bsf.S index a5ae86a7ff..a5ae86a7ff 100644 --- a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S +++ b/sysdeps/i386/multiarch/memchr-sse2-bsf.S diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2.S b/sysdeps/i386/multiarch/memchr-sse2.S index ae40677278..ae40677278 100644 --- a/sysdeps/i386/i686/multiarch/memchr-sse2.S +++ b/sysdeps/i386/multiarch/memchr-sse2.S diff --git a/sysdeps/i386/i686/multiarch/memchr.S b/sysdeps/i386/multiarch/memchr.S index 65e6b96f3b..4b2b941418 100644 --- a/sysdeps/i386/i686/multiarch/memchr.S +++ b/sysdeps/i386/multiarch/memchr.S @@ -18,10 +18,10 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -#include <sysdep.h> -#include <init-arch.h> - #if IS_IN (libc) +# include <sysdep.h> +# include <init-arch.h> + .text ENTRY(__memchr) .type __memchr, @gnu_indirect_function @@ -34,7 +34,7 @@ ENTRY(__memchr) LOAD_FUNC_GOT_EAX ( __memchr_sse2) ret -2: LOAD_FUNC_GOT_EAX (__memchr_ia32) +2: LOAD_FUNC_GOT_EAX (__memchr_i386) ret 3: LOAD_FUNC_GOT_EAX (__memchr_sse2_bsf) @@ -45,21 +45,21 @@ weak_alias(__memchr, memchr) # undef ENTRY # define ENTRY(name) \ - .type __memchr_ia32, @function; \ - .globl __memchr_ia32; \ + .type __memchr_i386, @function; \ + .globl __memchr_i386; \ .p2align 4; \ - __memchr_ia32: cfi_startproc; \ + __memchr_i386: cfi_startproc; \ CALL_MCOUNT # undef END # define END(name) \ - cfi_endproc; .size __memchr_ia32, .-__memchr_ia32 + cfi_endproc; .size __memchr_i386, .-__memchr_i386 # undef libc_hidden_builtin_def /* IFUNC doesn't work with the hidden functions in shared library since they will be called without setting up EBX needed for PLT which is used by IFUNC. */ # define libc_hidden_builtin_def(name) \ - .globl __GI_memchr; __GI_memchr = __memchr_ia32 + .globl __GI_memchr; __GI_memchr = __memchr_i386 #endif -#include "../../memchr.S" +#include <sysdeps/i386/memchr.S> |