aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--NEWS2
-rw-r--r--sysdeps/x86_64/dl-trampoline.S40
3 files changed, 34 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index b2e971e..1f000fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #19124]
+ * sysdeps/x86_64/dl-trampoline.S [!HAVE_AVX512_ASM_SUPPORT]
+ (_dl_runtime_resolve_avx512): Make it a hidden alias of
+ _dl_runtime_resolve_avx.
+ (_dl_runtime_profile_avx512): Make it a hidden alias of
+ _dl_runtime_profile_avx.
+
2015-10-13 Joseph Myers <joseph@codesourcery.com>
* sysdeps/powerpc/fpu/s_llround.c: Move to ....
diff --git a/NEWS b/NEWS
index 478ed2d..7f39543 100644
--- a/NEWS
+++ b/NEWS
@@ -19,7 +19,7 @@ Version 2.23
18870, 18872, 18873, 18875, 18887, 18921, 18951, 18952, 18956, 18961,
18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985, 19003, 19012,
19016, 19018, 19032, 19046, 19049, 19050, 19059, 19071, 19076, 19077,
- 19078, 19079, 19085, 19086, 19088, 19094, 19095.
+ 19078, 19079, 19085, 19086, 19088, 19094, 19095, 19124
* The obsolete header <regexp.h> has been removed. Programs that require
this header must be updated to use <regex.h> instead.
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 8475d26..bfc27a1 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -71,24 +71,32 @@
#define REGISTER_SAVE_R8 (REGISTER_SAVE_RDI + 8)
#define REGISTER_SAVE_R9 (REGISTER_SAVE_R8 + 8)
-#define VEC_SIZE 64
-#define VMOVA vmovdqa64
-#if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT
-# define VMOV vmovdqa64
+#define RESTORE_AVX
+
+#ifdef HAVE_AVX512_ASM_SUPPORT
+# define VEC_SIZE 64
+# define VMOVA vmovdqa64
+# if DL_RUNIME_RESOLVE_REALIGN_STACK || VEC_SIZE <= DL_STACK_ALIGNMENT
+# define VMOV vmovdqa64
+# else
+# define VMOV vmovdqu64
+# endif
+# define VEC(i) zmm##i
+# define _dl_runtime_resolve _dl_runtime_resolve_avx512
+# define _dl_runtime_profile _dl_runtime_profile_avx512
+# include "dl-trampoline.h"
+# undef _dl_runtime_resolve
+# undef _dl_runtime_profile
+# undef VEC
+# undef VMOV
+# undef VMOVA
+# undef VEC_SIZE
#else
-# define VMOV vmovdqu64
+strong_alias (_dl_runtime_resolve_avx, _dl_runtime_resolve_avx512)
+ .hidden _dl_runtime_resolve_avx512
+strong_alias (_dl_runtime_profile_avx, _dl_runtime_profile_avx512)
+ .hidden _dl_runtime_profile_avx512
#endif
-#define VEC(i) zmm##i
-#define _dl_runtime_resolve _dl_runtime_resolve_avx512
-#define _dl_runtime_profile _dl_runtime_profile_avx512
-#define RESTORE_AVX
-#include "dl-trampoline.h"
-#undef _dl_runtime_resolve
-#undef _dl_runtime_profile
-#undef VEC
-#undef VMOV
-#undef VMOVA
-#undef VEC_SIZE
#define VEC_SIZE 32
#define VMOVA vmovdqa