summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunqing Wang <yunqingwang@google.com>2010-10-28 16:59:03 -0400
committerYunqing Wang <yunqingwang@google.com>2010-10-28 16:59:03 -0400
commit6614563b8f851adebdb25cc9ffca28b871e34616 (patch)
treef4378d89c230d8d3dee9c41bc1f7b5dfccc29cef
parentf57fc7bcc6c0584b7ecc3af18a66d723b8a86016 (diff)
downloadlibvpx-6614563b8f851adebdb25cc9ffca28b871e34616.tar
libvpx-6614563b8f851adebdb25cc9ffca28b871e34616.tar.gz
libvpx-6614563b8f851adebdb25cc9ffca28b871e34616.tar.bz2
libvpx-6614563b8f851adebdb25cc9ffca28b871e34616.zip
Save XMM registers in asm functions
XMM6/7 are used in these functions, and need to be saved. Change-Id: I3dfaddaf2a69cd4bf8e8735c7064b17bac5a14e5
-rw-r--r--vp8/encoder/x86/fwalsh_sse2.asm2
-rw-r--r--vp8/encoder/x86/subtract_sse2.asm2
2 files changed, 4 insertions, 0 deletions
diff --git a/vp8/encoder/x86/fwalsh_sse2.asm b/vp8/encoder/x86/fwalsh_sse2.asm
index 145b59d45..39439f0d8 100644
--- a/vp8/encoder/x86/fwalsh_sse2.asm
+++ b/vp8/encoder/x86/fwalsh_sse2.asm
@@ -17,6 +17,7 @@ sym(vp8_short_walsh4x4_sse2):
push rbp
mov rbp, rsp
SHADOW_ARGS_TO_STACK 3
+ SAVE_XMM
GET_GOT rbx
push rsi
push rdi
@@ -143,6 +144,7 @@ sym(vp8_short_walsh4x4_sse2):
pop rdi
pop rsi
RESTORE_GOT
+ RESTORE_XMM
UNSHADOW_ARGS
pop rbp
ret
diff --git a/vp8/encoder/x86/subtract_sse2.asm b/vp8/encoder/x86/subtract_sse2.asm
index 27661e07f..3fb23d097 100644
--- a/vp8/encoder/x86/subtract_sse2.asm
+++ b/vp8/encoder/x86/subtract_sse2.asm
@@ -77,6 +77,7 @@ sym(vp8_subtract_mby_sse2):
push rbp
mov rbp, rsp
SHADOW_ARGS_TO_STACK 4
+ SAVE_XMM
GET_GOT rbx
push rsi
push rdi
@@ -138,6 +139,7 @@ submby_loop:
pop rsi
; begin epilog
RESTORE_GOT
+ RESTORE_XMM
UNSHADOW_ARGS
pop rbp
ret