aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Gramner <hengar-6@student.ltu.se>2012-02-04 00:28:46 -0800
committerRonald S. Bultje <rsbultje@gmail.com>2012-02-08 10:31:14 -0800
commit9cf7385309491d63d43c7c03c9c719d3ce443b95 (patch)
treecd04e14b5bb6e4919c065e8636a3cb412d447ab7
parent314af0ff94255ab5f08790c05b9967c5f960a6e8 (diff)
downloadffmpeg-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.asm9
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