diff options
author | Henrik Gramner <henrik@gramner.com> | 2024-03-24 20:04:17 +0100 |
---|---|---|
committer | Henrik Gramner <henrik@gramner.com> | 2024-03-25 21:17:47 +0100 |
commit | 7c003b63c85aadf57ca10be849bd9895a4eeeb87 (patch) | |
tree | 064122fc15625de3cd6737a624326431213c1f22 | |
parent | 316239096b15ed193056aada1555e84cce402b3a (diff) | |
download | ffmpeg-7c003b63c85aadf57ca10be849bd9895a4eeeb87.tar.gz |
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.
-rw-r--r-- | libavcodec/x86/h264_idct.asm | 12 |
1 files 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 |