mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 11:39:47 +00:00
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. Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
901ad0394c
commit
8cb0f7a2b4
@ -716,11 +716,9 @@ RET
|
|||||||
%endif
|
%endif
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%macro IDCT_DC_DEQUANT 1
|
INIT_XMM sse2
|
||||||
cglobal h264_luma_dc_dequant_idct, 3, 4, %1
|
cglobal h264_luma_dc_dequant_idct, 3, 4, 7
|
||||||
; manually spill XMM registers for Win64 because
|
INIT_MMX cpuname
|
||||||
; the code here is initialized with INIT_MMX
|
|
||||||
WIN64_SPILL_XMM %1
|
|
||||||
movq m3, [r1+24]
|
movq m3, [r1+24]
|
||||||
movq m2, [r1+16]
|
movq m2, [r1+16]
|
||||||
movq m1, [r1+ 8]
|
movq m1, [r1+ 8]
|
||||||
@ -757,10 +755,6 @@ cglobal h264_luma_dc_dequant_idct, 3, 4, %1
|
|||||||
movd xmm6, t1d
|
movd xmm6, t1d
|
||||||
DEQUANT_STORE xmm6
|
DEQUANT_STORE xmm6
|
||||||
RET
|
RET
|
||||||
%endmacro
|
|
||||||
|
|
||||||
INIT_MMX sse2
|
|
||||||
IDCT_DC_DEQUANT 7
|
|
||||||
|
|
||||||
%ifdef __NASM_VER__
|
%ifdef __NASM_VER__
|
||||||
%if __NASM_MAJOR__ >= 2 && __NASM_MINOR__ >= 4
|
%if __NASM_MAJOR__ >= 2 && __NASM_MINOR__ >= 4
|
||||||
|
Loading…
Reference in New Issue
Block a user