diff options
Diffstat (limited to 'sysdeps/i386/multiarch/ifunc-impl-list.c')
-rw-r--r-- | sysdeps/i386/multiarch/ifunc-impl-list.c | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/sysdeps/i386/multiarch/ifunc-impl-list.c b/sysdeps/i386/multiarch/ifunc-impl-list.c index 7bde24e112..d5df5de426 100644 --- a/sysdeps/i386/multiarch/ifunc-impl-list.c +++ b/sysdeps/i386/multiarch/ifunc-impl-list.c @@ -36,7 +36,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, size_t i = 0; -#if 0 /* Support sysdeps/i386/i686/multiarch/bcopy.S. */ IFUNC_IMPL (i, name, bcopy, IFUNC_IMPL_ADD (array, i, bcopy, HAS_CPU_FEATURE (SSSE3), @@ -45,8 +44,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __bcopy_ssse3) IFUNC_IMPL_ADD (array, i, bcopy, HAS_CPU_FEATURE (SSE2), __bcopy_sse2_unaligned) - IFUNC_IMPL_ADD (array, i, bcopy, 1, __bcopy_ia32)) + IFUNC_IMPL_ADD (array, i, bcopy, HAS_I686, __bcopy_i686) +#if MINIMUM_ISA < 686 + IFUNC_IMPL_ADD (array, i, bcopy, 1, __bcopy_i386) #endif + ) /* Support sysdeps/i386/i686/multiarch/bzero.S. */ IFUNC_IMPL (i, name, bzero, @@ -77,6 +79,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, memcmp, HAS_CPU_FEATURE (SSSE3), __memcmp_ssse3) IFUNC_IMPL_ADD (array, i, memcmp, 1, __memcmp_ia32)) +#endif /* Support sysdeps/i386/i686/multiarch/memmove_chk.S. */ IFUNC_IMPL (i, name, __memmove_chk, @@ -89,8 +92,13 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, __memmove_chk, HAS_CPU_FEATURE (SSE2), __memmove_chk_sse2_unaligned) + IFUNC_IMPL_ADD (array, i, __memmove_chk, HAS_I686, + __memmove_chk_i686) +#if MINIMUM_ISA < 686 IFUNC_IMPL_ADD (array, i, __memmove_chk, 1, - __memmove_chk_ia32)) + __memmove_chk_i386) +#endif + ) /* Support sysdeps/i386/i686/multiarch/memmove.S. */ IFUNC_IMPL (i, name, memmove, @@ -100,8 +108,13 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __memmove_ssse3) IFUNC_IMPL_ADD (array, i, memmove, HAS_CPU_FEATURE (SSE2), __memmove_sse2_unaligned) - IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_ia32)) + IFUNC_IMPL_ADD (array, i, memmove, HAS_I686, __memmove_i686) +#if MINIMUM_ISA < 686 + IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_i386) +#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), @@ -329,6 +342,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, wmemcmp, HAS_CPU_FEATURE (SSSE3), __wmemcmp_ssse3) IFUNC_IMPL_ADD (array, i, wmemcmp, 1, __wmemcmp_ia32)) +#endif #ifdef SHARED /* Support sysdeps/i386/i686/multiarch/memcpy_chk.S. */ @@ -342,8 +356,15 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, __memcpy_chk, HAS_CPU_FEATURE (SSE2), __memcpy_chk_sse2_unaligned) + IFUNC_IMPL_ADD (array, i, __memcpy_chk, HAS_I686, + __memcpy_chk_i686) +# if MINIMUM_ISA < 686 + IFUNC_IMPL_ADD (array, i, __memcpy_chk, HAS_I586, + __memcpy_chk_i586) IFUNC_IMPL_ADD (array, i, __memcpy_chk, 1, - __memcpy_chk_ia32)) + __memcpy_chk_i386) +# endif + ) /* Support sysdeps/i386/i686/multiarch/memcpy.S. */ IFUNC_IMPL (i, name, memcpy, @@ -353,7 +374,12 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __memcpy_ssse3) IFUNC_IMPL_ADD (array, i, memcpy, HAS_CPU_FEATURE (SSE2), __memcpy_sse2_unaligned) - IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_ia32)) + IFUNC_IMPL_ADD (array, i, memcpy, HAS_I686, __memcpy_i686) +#if MINIMUM_ISA < 686 + IFUNC_IMPL_ADD (array, i, memcpy, HAS_I586, __memcpy_i586) + IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_i386) +# endif + ) /* Support sysdeps/i386/i686/multiarch/mempcpy_chk.S. */ IFUNC_IMPL (i, name, __mempcpy_chk, @@ -366,8 +392,15 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, __mempcpy_chk, HAS_CPU_FEATURE (SSE2), __mempcpy_chk_sse2_unaligned) + IFUNC_IMPL_ADD (array, i, __mempcpy_chk, HAS_I686, + __mempcpy_chk_i686) +# if MINIMUM_ISA < 686 + IFUNC_IMPL_ADD (array, i, __mempcpy_chk, HAS_I586, + __mempcpy_chk_i586) IFUNC_IMPL_ADD (array, i, __mempcpy_chk, 1, - __mempcpy_chk_ia32)) + __mempcpy_chk_i386) +# endif + ) /* Support sysdeps/i386/i686/multiarch/mempcpy.S. */ IFUNC_IMPL (i, name, mempcpy, @@ -377,8 +410,14 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, __mempcpy_ssse3) IFUNC_IMPL_ADD (array, i, mempcpy, HAS_CPU_FEATURE (SSE2), __mempcpy_sse2_unaligned) - IFUNC_IMPL_ADD (array, i, mempcpy, 1, __mempcpy_ia32)) + IFUNC_IMPL_ADD (array, i, mempcpy, HAS_I686, __mempcpy_i686) +# if MINIMUM_ISA < 686 + IFUNC_IMPL_ADD (array, i, mempcpy, HAS_I586, __mempcpy_i586) + IFUNC_IMPL_ADD (array, i, mempcpy, 1, __mempcpy_i386) +# endif + ) +#if 0 /* Support sysdeps/i386/i686/multiarch/strlen.S. */ IFUNC_IMPL (i, name, strlen, IFUNC_IMPL_ADD (array, i, strlen, HAS_CPU_FEATURE (SSE2), |