diff options
author | Henrik Gramner <hengar-6@student.ltu.se> | 2012-02-04 00:28:46 -0800 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2012-02-08 10:31:14 -0800 |
commit | 9cf7385309491d63d43c7c03c9c719d3ce443b95 (patch) | |
tree | cd04e14b5bb6e4919c065e8636a3cb412d447ab7 | |
parent | 314af0ff94255ab5f08790c05b9967c5f960a6e8 (diff) | |
download | ffmpeg-9cf7385309491d63d43c7c03c9c719d3ce443b95.tar.gz |
x86inc: allow manual use of WIN64_SPILL_XMM.
Functions using INIT_MMX may still access XMM registers through direct
means (xmm0-15). Therefore, they still need to be marked for clobber
so they can be properly saved/restored.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
-rw-r--r-- | libavutil/x86/x86inc.asm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index 06a1c9fd7e..7758d1afd7 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -290,7 +290,11 @@ DECLARE_REG 6, rax, eax, ax, al, [rsp + stack_offset + 56] push r5 %assign stack_offset stack_offset+16 %endif - WIN64_SPILL_XMM %3 + %if mmsize == 8 + %assign xmm_regs_used 0 + %else + WIN64_SPILL_XMM %3 + %endif LOAD_IF_USED 4, %1 LOAD_IF_USED 5, %1 LOAD_IF_USED 6, %1 @@ -299,9 +303,6 @@ DECLARE_REG 6, rax, eax, ax, al, [rsp + stack_offset + 56] %macro WIN64_SPILL_XMM 1 %assign xmm_regs_used %1 - %if mmsize == 8 - %assign xmm_regs_used 0 - %endif ASSERT xmm_regs_used <= 16 %if xmm_regs_used > 6 sub rsp, (xmm_regs_used-6)*16+16 |