[FFmpeg-cvslog] x86: Drop CPU detection intrinsics
Diego Biurrun
git at videolan.org
Fri Oct 5 17:08:42 CEST 2012
ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Wed Oct 3 17:57:53 2012 +0200| [f6fbce761ea697f437cef721ec6711ffcbd1ac1f] | committer: Diego Biurrun
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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6fbce761ea697f437cef721ec6711ffcbd1ac1f
---
configure | 6 ------
libavutil/x86/cpu.c | 36 ------------------------------------
2 files changed, 42 deletions(-)
diff --git a/configure b/configure
index 4c3ebdb..cd72f36 100755
--- a/configure
+++ b/configure
@@ -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 fb1dd29..5b658d1 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
More information about the ffmpeg-cvslog
mailing list