aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/x86_64/dl-trampoline.S5
-rw-r--r--sysdeps/x86_64/dl-trampoline.h9
2 files changed, 6 insertions, 8 deletions
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 3f812b89c0..177f666164 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -88,11 +88,9 @@
# endif
# define VEC(i) zmm##i
# define _dl_runtime_resolve _dl_runtime_resolve_avx512
-# define _dl_runtime_resolve_opt _dl_runtime_resolve_avx512_opt
# define _dl_runtime_profile _dl_runtime_profile_avx512
# include "dl-trampoline.h"
# undef _dl_runtime_resolve
-# undef _dl_runtime_resolve_opt
# undef _dl_runtime_profile
# undef VEC
# undef VMOV
@@ -101,8 +99,6 @@
#else
strong_alias (_dl_runtime_resolve_avx, _dl_runtime_resolve_avx512)
.hidden _dl_runtime_resolve_avx512
-strong_alias (_dl_runtime_resolve_avx_opt, _dl_runtime_resolve_avx512_opt)
- .hidden _dl_runtime_resolve_avx512_opt
strong_alias (_dl_runtime_profile_avx, _dl_runtime_profile_avx512)
.hidden _dl_runtime_profile_avx512
#endif
@@ -154,4 +150,5 @@ strong_alias (_dl_runtime_profile_avx, _dl_runtime_profile_avx512)
# define VMOV vmovdqu
#endif
#define _dl_runtime_resolve _dl_runtime_resolve_sse_vex
+#define _dl_runtime_resolve_opt _dl_runtime_resolve_avx512_opt
#include "dl-trampoline.h"
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index abe4471c1d..32ad3af202 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -129,19 +129,20 @@ _dl_runtime_resolve_opt:
# YMM state isn't in use.
PRESERVE_BND_REGS_PREFIX
jz _dl_runtime_resolve_sse_vex
-# elif VEC_SIZE == 64
+# elif VEC_SIZE == 16
# For ZMM registers, check if YMM state and ZMM state are in
# use.
andl $(bit_YMM_state | bit_ZMM0_15_state), %r11d
cmpl $bit_YMM_state, %r11d
- # Preserve %xmm0 - %xmm7 registers with the zero upper 384 bits if
- # neither YMM state nor ZMM state are in use.
+ # Preserve %zmm0 - %zmm7 registers if ZMM state is in use.
PRESERVE_BND_REGS_PREFIX
- jl _dl_runtime_resolve_sse_vex
+ jg _dl_runtime_resolve_avx512
# Preserve %ymm0 - %ymm7 registers with the zero upper 256 bits if
# ZMM state isn't in use.
PRESERVE_BND_REGS_PREFIX
je _dl_runtime_resolve_avx
+ # Preserve %xmm0 - %xmm7 registers with the zero upper 384 bits if
+ # neither YMM state nor ZMM state are in use.
# else
# error Unsupported VEC_SIZE!
# endif