shithub: libvpx

Download patch

ref: 6614563b8f851adebdb25cc9ffca28b871e34616
parent: f57fc7bcc6c0584b7ecc3af18a66d723b8a86016
author: Yunqing Wang <yunqingwang@google.com>
date: Thu Oct 28 12:59:03 EDT 2010

Save XMM registers in asm functions

XMM6/7 are used in these functions, and need to be saved.

Change-Id: I3dfaddaf2a69cd4bf8e8735c7064b17bac5a14e5

--- a/vp8/encoder/x86/fwalsh_sse2.asm
+++ b/vp8/encoder/x86/fwalsh_sse2.asm
@@ -17,6 +17,7 @@
     push        rbp
     mov         rbp, rsp
     SHADOW_ARGS_TO_STACK 3
+    SAVE_XMM
     GET_GOT     rbx
     push        rsi
     push        rdi
@@ -143,6 +144,7 @@
     pop rdi
     pop rsi
     RESTORE_GOT
+    RESTORE_XMM
     UNSHADOW_ARGS
     pop         rbp
     ret
--- a/vp8/encoder/x86/subtract_sse2.asm
+++ b/vp8/encoder/x86/subtract_sse2.asm
@@ -77,6 +77,7 @@
     push        rbp
     mov         rbp, rsp
     SHADOW_ARGS_TO_STACK 4
+    SAVE_XMM
     GET_GOT     rbx
     push rsi
     push rdi
@@ -138,6 +139,7 @@
     pop rsi
     ; begin epilog
     RESTORE_GOT
+    RESTORE_XMM
     UNSHADOW_ARGS
     pop         rbp
     ret
--