[FFmpeg-devel] [PATCH] x86/emms: run the instruction unconditionally on supported targets

James Almer jamrial at gmail.com
Wed Feb 3 06:21:28 CET 2016


Inlined functions like AV_ZERO* and AV_COPY* may use mmx instructions
regardless of runtime cpuflags.

Signed-off-by: James Almer <jamrial at gmail.com>
---
On targets where __MMX__ is not defined (like default x86_32 builds) the
runtime check is a must, and neither of the above functions will use mmx
instructions anyway.

 libavutil/x86/emms.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavutil/x86/emms.h b/libavutil/x86/emms.h
index a529b6b..0deeb8c 100644
--- a/libavutil/x86/emms.h
+++ b/libavutil/x86/emms.h
@@ -34,7 +34,9 @@ void avpriv_emms_yasm(void);
  */
 static av_always_inline void emms_c(void)
 {
+#if !defined(__MMX__)
     if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
+#endif
         __asm__ volatile ("emms" ::: "memory");
 }
 #elif HAVE_MMX && HAVE_MM_EMPTY
-- 
2.7.0



More information about the ffmpeg-devel mailing list