Hi! The functions in libavutil/x86/pixelutils.asm are exported to the library users if I understand the code correctly. I suspect it can be expected that the MMX state is reset after returning.
Fixes the pixelutils fate test with musl on x86-32. Please comment, Carl Eugen
From f16831e6dc0f36c8f290d927bf51142c64fe8afc Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos <ceho...@ag.or.at> Date: Sun, 2 Oct 2016 22:45:51 +0200 Subject: [PATCH] lavu/x86/pixelutils: Call emms before returning. The functions are exported and the library user can expect that the MMX state is reset after returning. --- libavutil/x86/pixelutils.asm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavutil/x86/pixelutils.asm b/libavutil/x86/pixelutils.asm index 7af3007..092eb6e 100644 --- a/libavutil/x86/pixelutils.asm +++ b/libavutil/x86/pixelutils.asm @@ -61,6 +61,7 @@ cglobal pixelutils_sad_8x8, 4,4,0, src1, stride1, src2, stride2 paddw m6, m0 movd eax, m6 movzx eax, ax + emms RET ;------------------------------------------------------------------------------- @@ -81,6 +82,7 @@ cglobal pixelutils_sad_8x8, 4,4,0, src1, stride1, src2, stride2 lea src2q, [src2q + 2*stride2q] %endrep movd eax, m2 + emms RET ;------------------------------------------------------------------------------- @@ -101,6 +103,7 @@ cglobal pixelutils_sad_16x16, 4,4,0, src1, stride1, src2, stride2 add src2q, stride2q %endrep movd eax, m2 + emms RET ;------------------------------------------------------------------------------- @@ -131,6 +134,7 @@ cglobal pixelutils_sad_16x16, 4,4,5, src1, stride1, src2, stride2 movhlps m0, m4 paddw m4, m0 movd eax, m4 + emms RET ;------------------------------------------------------------------------------- @@ -158,6 +162,7 @@ cglobal pixelutils_sad_%1_16x16, 4,4,3, src1, stride1, src2, stride2 movhlps m0, m2 paddw m2, m0 movd eax, m2 + emms RET %endmacro -- 1.7.10.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel