x86: Drop CPU detection intrinsics

Now that there is CPU detection in YASM, there will always be one of
inline or external assembly enabled, which obviates the need to fall
back on CPU detection through compiler intrinsics.
This commit is contained in:
Diego Biurrun 2012-10-03 17:57:53 +02:00
parent 1f6d86991f
commit f6fbce761e
2 changed files with 0 additions and 42 deletions

6
configure vendored
View File

@ -1138,7 +1138,6 @@ HAVE_LIST="
cbrtf
closesocket
cmov
cpuid
cpunop
dcbzl
dev_bktr_ioctl_bt848_h
@ -1206,7 +1205,6 @@ HAVE_LIST="
rint
round
roundf
rweflags
sched_getaffinity
sdl
sdl_video_size
@ -1250,7 +1248,6 @@ HAVE_LIST="
windows_h
winsock2_h
xform_asm
xgetbv
xmm_clobbers
"
@ -3070,10 +3067,7 @@ elif enabled sparc; then
elif enabled x86; then
check_code ld immintrin.h "return __xgetbv(0)" && enable xgetbv
check_code ld intrin.h "int info[4]; __cpuid(info, 0)" && enable cpuid
check_code ld intrin.h "__rdtsc()" && enable rdtsc
check_code ld intrin.h "unsigned int x = __readeflags()" && enable rweflags
check_code ld mmintrin.h "_mm_empty()" && enable mm_empty

View File

@ -45,35 +45,9 @@
"xchg %%"REG_b", %%"REG_S \
: "=a" (eax), "=S" (ebx), "=c" (ecx), "=d" (edx) \
: "0" (index))
#elif HAVE_CPUID
#include <intrin.h>
#define cpuid(index, eax, ebx, ecx, edx) \
do { \
int info[4]; \
__cpuid(info, index); \
eax = info[0]; \
ebx = info[1]; \
ecx = info[2]; \
edx = info[3]; \
} while (0)
#endif /* HAVE_CPUID */
#if HAVE_INLINE_ASM
#define xgetbv(index, eax, edx) \
__asm__ (".byte 0x0f, 0x01, 0xd0" : "=a"(eax), "=d"(edx) : "c" (index))
#elif HAVE_XGETBV
#include <immintrin.h>
#define xgetbv(index, eax, edx) \
do { \
uint64_t res = __xgetbv(index); \
eax = res; \
edx = res >> 32; \
} while (0)
#endif /* HAVE_XGETBV */
#if HAVE_INLINE_ASM
#define get_eflags(x) \
__asm__ volatile ("pushfl \n" \
@ -85,16 +59,6 @@
"popfl \n" \
:: "r"(x))
#elif HAVE_RWEFLAGS
#include <intrin.h>
#define get_eflags(x) \
x = __readeflags()
#define set_eflags(x) \
__writeeflags(x)
#endif /* HAVE_INLINE_ASM */
#if ARCH_X86_64