diff options
author | Diego Biurrun <diego@biurrun.de> | 2012-10-03 17:57:53 +0200 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2012-10-04 19:29:14 +0200 |
commit | f6fbce761ea697f437cef721ec6711ffcbd1ac1f (patch) | |
tree | e8e53835e266b41e75beafed036cc9ed268bca50 | |
parent | 1f6d86991f191568d45484f2b3740c2dcd0a7b45 (diff) | |
download | ffmpeg-f6fbce761ea697f437cef721ec6711ffcbd1ac1f.tar.gz |
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.
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | libavutil/x86/cpu.c | 36 |
2 files changed, 0 insertions, 42 deletions
@@ -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 diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c index fb1dd299bc..5b658d1bed 100644 --- a/libavutil/x86/cpu.c +++ b/libavutil/x86/cpu.c @@ -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 |