mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2025-02-19 19:42:55 +00:00
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:
parent
1f6d86991f
commit
f6fbce761e
6
configure
vendored
6
configure
vendored
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user