avcodec/x86/fmtconvert: Add emms to int32_to_float_fmul_array8_sse()
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 15 Jan 2016 16:08:37 +0000 (17:08 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 15 Jan 2016 16:08:37 +0000 (17:08 +0100)
this should fix checkasm on x86_64-archlinux-gcc-valgrind

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/x86/fmtconvert.asm

index b4220e2..8f62a0a 100644 (file)
@@ -107,7 +107,14 @@ cglobal int32_to_float_fmul_array8, 5, 5, 5, c, dst, src, mul, len
     add     mulq, 4
     add     lenq, 32
     jl .loop
     add     mulq, 4
     add     lenq, 32
     jl .loop
-    REP_RET
+%if notcpuflag(sse2)
+    ;; cvtpi2ps switches to MMX even if the source is a memory location
+    ;; possible an error in documentation since every tested CPU disagrees with
+    ;; that. Use emms anyway since the vast majority of machines will use the
+    ;; SSE2 variant
+    emms
+%endif
+    RET
 %endmacro
 
 INIT_XMM sse
 %endmacro
 
 INIT_XMM sse