From 64d4dea6cdcd908ea43a0eed5fc6262b1c6c205a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 4 Aug 2017 13:38:05 -0700 Subject: x86: Remove assembly versions of HAS_CPU_FEATURE/HAS_ARCH_FEATURE Since all x86 IFUNC selectors are implemented in C, assembly versions of HAS_CPU_FEATURE and HAS_ARCH_FEATURE can be removed. * sysdeps/x86/cpu-features.h [__ASSEMBLER__] (LOAD_RTLD_GLOBAL_RO_RDX, HAS_FEATURE, LOAD_FUNC_GOT_EAX, HAS_CPU_FEATURE, HAS_ARCH_FEATURE): Removed. --- sysdeps/x86/cpu-features.h | 57 ---------------------------------------------- 1 file changed, 57 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h index 3ed67f5..af52689 100644 --- a/sysdeps/x86/cpu-features.h +++ b/sysdeps/x86/cpu-features.h @@ -127,63 +127,6 @@ # define index_arch_Use_dl_runtime_resolve_slow FEATURE_INDEX_1*FEATURE_SIZE # define index_arch_Prefer_No_AVX512 FEATURE_INDEX_1*FEATURE_SIZE - -# if defined (_LIBC) && !IS_IN (nonlib) -# ifdef __x86_64__ -# ifdef SHARED -# if IS_IN (rtld) -# define LOAD_RTLD_GLOBAL_RO_RDX -# define HAS_FEATURE(offset, field, name) \ - testl $(bit_##field##_##name), \ - _rtld_local_ro+offset+(index_##field##_##name)(%rip) -# else -# define LOAD_RTLD_GLOBAL_RO_RDX \ - mov _rtld_global_ro@GOTPCREL(%rip), %RDX_LP -# define HAS_FEATURE(offset, field, name) \ - testl $(bit_##field##_##name), \ - RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+offset+(index_##field##_##name)(%rdx) -# endif -# else /* SHARED */ -# define LOAD_RTLD_GLOBAL_RO_RDX -# define HAS_FEATURE(offset, field, name) \ - testl $(bit_##field##_##name), \ - _dl_x86_cpu_features+offset+(index_##field##_##name)(%rip) -# endif /* !SHARED */ -# else /* __x86_64__ */ -# ifdef SHARED -# define LOAD_FUNC_GOT_EAX(func) \ - leal func@GOTOFF(%edx), %eax -# if IS_IN (rtld) -# define LOAD_GOT_AND_RTLD_GLOBAL_RO \ - LOAD_PIC_REG(dx) -# define HAS_FEATURE(offset, field, name) \ - testl $(bit_##field##_##name), \ - offset+(index_##field##_##name)+_rtld_local_ro@GOTOFF(%edx) -# else -# define LOAD_GOT_AND_RTLD_GLOBAL_RO \ - LOAD_PIC_REG(dx); \ - mov _rtld_global_ro@GOT(%edx), %ecx -# define HAS_FEATURE(offset, field, name) \ - testl $(bit_##field##_##name), \ - RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+offset+(index_##field##_##name)(%ecx) -# endif -# else /* SHARED */ -# define LOAD_FUNC_GOT_EAX(func) \ - leal func, %eax -# define LOAD_GOT_AND_RTLD_GLOBAL_RO -# define HAS_FEATURE(offset, field, name) \ - testl $(bit_##field##_##name), \ - _dl_x86_cpu_features+offset+(index_##field##_##name) -# endif /* !SHARED */ -# endif /* !__x86_64__ */ -# else /* _LIBC && !nonlib */ -# error "Sorry, is unimplemented for assembler" -# endif /* !_LIBC || nonlib */ - -/* HAS_* evaluates to true if we may use the feature at runtime. */ -# define HAS_CPU_FEATURE(name) HAS_FEATURE (CPUID_OFFSET, cpu, name) -# define HAS_ARCH_FEATURE(name) HAS_FEATURE (FEATURE_OFFSET, arch, name) - #else /* __ASSEMBLER__ */ enum -- cgit v1.1