From 1bc1103620e8f6c7e01cb54a8ed04ee1c3eb5a1a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 30 Jan 2015 11:07:13 -0800 Subject: [PATCH] Add memcpy-rte-ssse3.c --- sysdeps/x86_64/multiarch/Makefile | 5 ++++- sysdeps/x86_64/multiarch/ifunc-impl-list.c | 2 ++ sysdeps/x86_64/multiarch/memcpy-rte-ssse3.c | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 sysdeps/x86_64/multiarch/memcpy-rte-ssse3.c diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile index 581beb9fae..1afc991195 100644 --- a/sysdeps/x86_64/multiarch/Makefile +++ b/sysdeps/x86_64/multiarch/Makefile @@ -18,7 +18,10 @@ sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 \ strcpy-sse2-unaligned strncpy-sse2-unaligned \ stpcpy-sse2-unaligned stpncpy-sse2-unaligned \ strcat-sse2-unaligned strncat-sse2-unaligned \ - strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned + strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned \ + memcpy-rte-ssse3 + +CFLAGS-memcpy-rte-ssse3.c += -mssse3 ifeq (yes,$(config-cflags-sse4)) sysdep_routines += strcspn-c strpbrk-c strspn-c varshift diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c index 59e48dc915..623771884a 100644 --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c @@ -229,6 +229,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, /* Support sysdeps/x86_64/multiarch/memcpy.S. */ IFUNC_IMPL (i, name, memcpy, + IFUNC_IMPL_ADD (array, i, memcpy, HAS_SSSE3, + __memcpy_rte_ssse3) IFUNC_IMPL_ADD (array, i, memcpy, HAS_AVX, __memcpy_rte_avx) IFUNC_IMPL_ADD (array, i, memcpy, HAS_AVX, diff --git a/sysdeps/x86_64/multiarch/memcpy-rte-ssse3.c b/sysdeps/x86_64/multiarch/memcpy-rte-ssse3.c new file mode 100644 index 0000000000..f893ea04e4 --- /dev/null +++ b/sysdeps/x86_64/multiarch/memcpy-rte-ssse3.c @@ -0,0 +1,4 @@ +#if IS_IN (libc) && defined SHARED +#define rte_memcpy __memcpy_rte_ssse3 +#include "rte_memcpy.h" +#endif -- 2.11.4.GIT