]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Don't put SSE2/AVX/AVX512 memmove/memset in ld.so
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 3 Apr 2016 21:32:20 +0000 (14:32 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 3 Apr 2016 21:35:38 +0000 (14:35 -0700)
Since memmove and memset in ld.so don't use IFUNC, don't put SSE2, AVX
and AVX512 memmove and memset in ld.so.

* sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S: Skip
if not in libc.
* sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S:
Likewise.
* sysdeps/x86_64/multiarch/memset-avx2-unaligned-erms.S:
Likewise.
* sysdeps/x86_64/multiarch/memset-avx512-unaligned-erms.S:
Likewise.

ChangeLog
sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S
sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S
sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
sysdeps/x86_64/multiarch/memset-avx2-unaligned-erms.S
sysdeps/x86_64/multiarch/memset-avx512-unaligned-erms.S
sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S

index e93b7bf3b14aae2473ae4567d31362a6305214d4..befaa41a666d09a1de42d11fdee84d3f2f19fbfd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-04-03   H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S: Skip
+       if not in libc.
+       * sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S:
+       Likewise.
+       * sysdeps/x86_64/multiarch/memset-avx2-unaligned-erms.S:
+       Likewise.
+       * sysdeps/x86_64/multiarch/memset-avx512-unaligned-erms.S:
+       Likewise.
+
 2016-04-03   H.J. Lu  <hongjiu.lu@intel.com>
 
        * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:
index 3a72c7eafd44e187c9450f3a1365791e77424951..44711c37ca4f24186c96096f83d023244dfb98fe 100644 (file)
@@ -1,9 +1,11 @@
-#define VEC_SIZE       32
-#define VEC(i)         ymm##i
-#define VMOVU          vmovdqu
-#define VMOVA          vmovdqa
+#if IS_IN (libc)
+# define VEC_SIZE      32
+# define VEC(i)                ymm##i
+# define VMOVU         vmovdqu
+# define VMOVA         vmovdqa
 
-#define SECTION(p)             p##.avx
-#define MEMMOVE_SYMBOL(p,s)    p##_avx_##s
+# define SECTION(p)            p##.avx
+# define MEMMOVE_SYMBOL(p,s)   p##_avx_##s
 
-#include "memmove-vec-unaligned-erms.S"
+# include "memmove-vec-unaligned-erms.S"
+#endif
index 38358fa37cb53b2fc2417cbb5ea755d8af4fd276..c2c52937bf36b0bb3ffddbbde29d640714b4fe14 100644 (file)
@@ -1,4 +1,4 @@
-#ifdef HAVE_AVX512_ASM_SUPPORT
+#if defined HAVE_AVX512_ASM_SUPPORT && IS_IN (libc)
 # define VEC_SIZE      64
 # define VEC(i)                zmm##i
 # define VMOVU         vmovdqu64
index 52b9ae08fc552b8583d0a47ac2ee1c814c9cef1a..85214fe7259ac80d49429d379f3fb4448d66e6ec 100644 (file)
@@ -1,9 +1,11 @@
-#define VEC_SIZE       16
-#define VEC(i)         xmm##i
-#define VMOVU          movdqu
-#define VMOVA          movdqa
+#if IS_IN (libc)
+# define VEC_SIZE      16
+# define VEC(i)                xmm##i
+# define VMOVU         movdqu
+# define VMOVA         movdqa
 
-#define SECTION(p)             p
-#define MEMMOVE_SYMBOL(p,s)    p##_sse2_##s
+# define SECTION(p)            p
+# define MEMMOVE_SYMBOL(p,s)   p##_sse2_##s
 
-#include "memmove-vec-unaligned-erms.S"
+# include "memmove-vec-unaligned-erms.S"
+#endif
index e0dc56512e9017faa01a247584ee997662a240ea..79975e08250dacd56861350e42e048651d63721d 100644 (file)
@@ -1,14 +1,16 @@
-#define VEC_SIZE       32
-#define VEC(i)         ymm##i
-#define VMOVU          vmovdqu
-#define VMOVA          vmovdqa
+#if IS_IN (libc)
+# define VEC_SIZE      32
+# define VEC(i)                ymm##i
+# define VMOVU         vmovdqu
+# define VMOVA         vmovdqa
 
-#define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
+# define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
   vmovd d, %xmm0; \
   movq r, %rax; \
   vpbroadcastb %xmm0, %ymm0
 
-#define SECTION(p)             p##.avx
-#define MEMSET_SYMBOL(p,s)     p##_avx2_##s
+# define SECTION(p)            p##.avx
+# define MEMSET_SYMBOL(p,s)    p##_avx2_##s
 
-#include "memset-vec-unaligned-erms.S"
+# include "memset-vec-unaligned-erms.S"
+#endif
index 72f409583186b2f88c5ddfb55684e5768f1cee1a..f1b3cb23d37e61b077206bce16cb8057ef8b6bc8 100644 (file)
@@ -1,4 +1,4 @@
-#ifdef HAVE_AVX512_ASM_SUPPORT
+#if defined HAVE_AVX512_ASM_SUPPORT && IS_IN (libc)
 # define VEC_SIZE      64
 # define VEC(i)                zmm##i
 # define VMOVU         vmovdqu64
index 437a858dab5c337231a1292c8a456cb933bcfe96..2deba42c16f611c6a3835b269acd6a5456938b07 100644 (file)
@@ -1,16 +1,18 @@
-#define VEC_SIZE       16
-#define VEC(i)         xmm##i
-#define VMOVU          movdqu
-#define VMOVA          movdqa
+#if IS_IN (libc)
+# define VEC_SIZE      16
+# define VEC(i)                xmm##i
+# define VMOVU         movdqu
+# define VMOVA         movdqa
 
-#define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
+# define VDUP_TO_VEC0_AND_SET_RETURN(d, r) \
   movd d, %xmm0; \
   movq r, %rax; \
   punpcklbw %xmm0, %xmm0; \
   punpcklwd %xmm0, %xmm0; \
   pshufd $0, %xmm0, %xmm0
 
-#define SECTION(p)             p
-#define MEMSET_SYMBOL(p,s)     p##_sse2_##s
+# define SECTION(p)            p
+# define MEMSET_SYMBOL(p,s)    p##_sse2_##s
 
-#include "memset-vec-unaligned-erms.S"
+# include "memset-vec-unaligned-erms.S"
+#endif