Module: libav
Branch: master
Commit: 9cf7385309491d63d43c7c03c9c719d3ce443b95

Author:    Henrik Gramner <[email protected]>
Committer: Ronald S. Bultje <[email protected]>
Date:      Sat Feb  4 00:28:46 2012 -0800

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 <[email protected]>

---

 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

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to