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. --- configure | 6 ------ libavutil/x86/cpu.c | 38 +------------------------------------- 2 files changed, 1 insertions(+), 43 deletions(-)
diff --git a/configure b/configure index c74693b..fad48ac 100755 --- a/configure +++ b/configure @@ -1137,7 +1137,6 @@ HAVE_LIST=" cbrtf closesocket cmov - cpuid cpunop dcbzl dev_bktr_ioctl_bt848_h @@ -1205,7 +1204,6 @@ HAVE_LIST=" rint round roundf - rweflags sched_getaffinity sdl sdl_video_size @@ -1249,7 +1247,6 @@ HAVE_LIST=" windows_h winsock2_h xform_asm - xgetbv xmm_clobbers " @@ -3066,10 +3063,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 d797677..35fa13f 100644 --- a/libavutil/x86/cpu.c +++ b/libavutil/x86/cpu.c @@ -51,35 +51,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" \ @@ -91,17 +65,7 @@ "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 */ +#endif /* Function to test if multimedia instructions are supported... */ int ff_get_cpu_flags_x86(void) -- 1.7.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel