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

Reply via email to