avutil: Move emms code to x86-specific header
authorDiego Biurrun <diego@biurrun.de>
Tue, 22 Jan 2013 01:22:29 +0000 (02:22 +0100)
committerDiego Biurrun <diego@biurrun.de>
Thu, 14 Feb 2013 16:37:34 +0000 (17:37 +0100)
libavutil/internal.h
libavutil/x86/emms.h

index cf18bdb..4bb6b05 100644 (file)
 #include "timer.h"
 #include "dict.h"
 
+#if ARCH_X86
+#   include "x86/emms.h"
+#endif
+
 #ifndef attribute_align_arg
 #if ARCH_X86_32 && AV_GCC_VERSION_AT_LEAST(4,2)
 #    define attribute_align_arg __attribute__((force_align_arg_pointer))
 #   define ONLY_IF_THREADS_ENABLED(x) NULL
 #endif
 
-#if HAVE_MMX_INLINE
-/**
- * Empty mmx state.
- * this must be called between any dsp function and float/double code.
- * for example sin(); dsp->idct_put(); emms_c(); cos()
- */
-static av_always_inline void emms_c(void)
-{
-    __asm__ volatile ("emms" ::: "memory");
-}
-#elif HAVE_MMX && HAVE_MM_EMPTY
-#   include <mmintrin.h>
-#   define emms_c _mm_empty
-#elif HAVE_MMX && HAVE_YASM
-#   include "libavutil/x86/emms.h"
-#   define emms_c avpriv_emms_yasm
-#else
-#   define emms_c()
-#endif /* HAVE_MMX_INLINE */
-
 #endif /* AVUTIL_INTERNAL_H */
index 6bb8ca3..56068e5 100644 (file)
 #ifndef AVUTIL_X86_EMMS_H
 #define AVUTIL_X86_EMMS_H
 
+#include "config.h"
+#include "libavutil/attributes.h"
+
 void avpriv_emms_yasm(void);
 
+#if HAVE_MMX_INLINE
+/**
+ * Empty mmx state.
+ * this must be called between any dsp function and float/double code.
+ * for example sin(); dsp->idct_put(); emms_c(); cos()
+ */
+static av_always_inline void emms_c(void)
+{
+    __asm__ volatile ("emms" ::: "memory");
+}
+#elif HAVE_MMX && HAVE_MM_EMPTY
+#   include <mmintrin.h>
+#   define emms_c _mm_empty
+#elif HAVE_MMX && HAVE_YASM
+#   define emms_c avpriv_emms_yasm
+#else
+#   define emms_c()
+#endif /* HAVE_MMX_INLINE */
+
 #endif /* AVUTIL_X86_EMMS_H */