[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