[FFmpeg-cvslog] x86inc: allow manual use of WIN64_SPILL_XMM.
Henrik Gramner
git at videolan.org
Thu Feb 9 01:46:11 CET 2012
ffmpeg | branch: master | Henrik Gramner <hengar-6 at student.ltu.se> | Sat Feb 4 00:28:46 2012 -0800| [9cf7385309491d63d43c7c03c9c719d3ce443b95] | committer: Ronald S. Bultje
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 at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9cf7385309491d63d43c7c03c9c719d3ce443b95
---
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 06a1c9f..7758d1a 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
More information about the ffmpeg-cvslog
mailing list