[FFmpeg-cvslog] avutil: Move emms code to x86-specific header

Diego Biurrun git at videolan.org
Fri Feb 15 12:16:10 CET 2013


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Tue Jan 22 02:22:29 2013 +0100| [ab441e20ffdfa2547f1d6c1dc19994ec05eb7d2f] | committer: Diego Biurrun

avutil: Move emms code to x86-specific header

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ab441e20ffdfa2547f1d6c1dc19994ec05eb7d2f
---

 libavutil/internal.h |   24 ++++--------------------
 libavutil/x86/emms.h |   22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/libavutil/internal.h b/libavutil/internal.h
index cf18bdb..4bb6b05 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -39,6 +39,10 @@
 #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))
@@ -154,24 +158,4 @@
 #   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 */
diff --git a/libavutil/x86/emms.h b/libavutil/x86/emms.h
index 6bb8ca3..56068e5 100644
--- a/libavutil/x86/emms.h
+++ b/libavutil/x86/emms.h
@@ -19,6 +19,28 @@
 #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 */



More information about the ffmpeg-cvslog mailing list