ffmpeg | branch: master | Henrik Gramner <hen...@gramner.com> | Sun Mar 24 
20:04:17 2024 +0100| [7c003b63c85aadf57ca10be849bd9895a4eeeb87] | committer: 
Henrik Gramner

avcodec/x86/h264_idct: Fix incorrect xmm spilling on win64

Broken in afa471d0efed1df5dca6eeeb2fcdd211ae4cad4e. It just happened
to work before due to x86inc.asm previously performing XMM spills in
INIT_MMX mode which was more of a bug than an intentional feature.

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

 libavcodec/x86/h264_idct.asm | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/libavcodec/x86/h264_idct.asm b/libavcodec/x86/h264_idct.asm
index b29ddde200..d9c3c9c862 100644
--- a/libavcodec/x86/h264_idct.asm
+++ b/libavcodec/x86/h264_idct.asm
@@ -716,11 +716,9 @@ RET
 %endif
 %endmacro
 
-%macro IDCT_DC_DEQUANT 1
-cglobal h264_luma_dc_dequant_idct, 3, 4, %1
-    ; manually spill XMM registers for Win64 because
-    ; the code here is initialized with INIT_MMX
-    WIN64_SPILL_XMM %1
+INIT_XMM sse2
+cglobal h264_luma_dc_dequant_idct, 3, 4, 7
+INIT_MMX cpuname
     movq        m3, [r1+24]
     movq        m2, [r1+16]
     movq        m1, [r1+ 8]
@@ -757,10 +755,6 @@ cglobal h264_luma_dc_dequant_idct, 3, 4, %1
     movd      xmm6, t1d
     DEQUANT_STORE xmm6
     RET
-%endmacro
-
-INIT_MMX sse2
-IDCT_DC_DEQUANT 7
 
 %ifdef __NASM_VER__
 %if __NASM_MAJOR__ >= 2 && __NASM_MINOR__ >= 4

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to