shithub: libvpx

Download patch

ref: 61d9d595d5d42790cdead1332d87aaf663a57acf
parent: 54c36378287805f4a7aefb89982f7d80b223b3dd
parent: b4f70084cc64b8304005a385cb0a670431aced20
author: John Koleszar <jkoleszar@google.com>
date: Fri Jul 1 20:05:12 EDT 2011

Merge remote branch 'origin/master' into experimental

Change-Id: I009c7e3043ad1eb1ce95c69132a4727073b86757

--- a/vp8/common/x86/recon_sse2.asm
+++ b/vp8/common/x86/recon_sse2.asm
@@ -593,8 +593,11 @@
     push        rsi
     push        rdi
 %ifidn %1, ssse3
+%ifndef GET_GOT_SAVE_ARG
     push        rbx
 %endif
+    GET_GOT     rbx
+%endif
     ; end prolog
 
     ; read from left and write out
@@ -606,9 +609,9 @@
     mov         rdi,        arg(0) ;dst;
     movsxd      rcx,        dword ptr arg(1) ;dst_stride
 %ifidn %1, ssse3
-    lea         rbx,        [rax*3]
     lea         rdx,        [rcx*3]
     movdqa      xmm2,       [GLOBAL(dc_00001111)]
+    lea         rbx,        [rax*3]
 %endif
     dec         rsi
 %ifidn %1, mmx2
@@ -656,7 +659,10 @@
 
     ; begin epilog
 %ifidn %1, ssse3
+    RESTORE_GOT
+%ifndef GET_GOT_SAVE_ARG
     pop         rbx
+%endif
 %endif
     pop         rdi
     pop         rsi
--- a/vpx_ports/x86_abi_support.asm
+++ b/vpx_ports/x86_abi_support.asm
@@ -147,6 +147,7 @@
 %if ABI_IS_32BIT
   %if CONFIG_PIC=1
   %ifidn __OUTPUT_FORMAT__,elf32
+    %define GET_GOT_SAVE_ARG 1
     %define WRT_PLT wrt ..plt
     %macro GET_GOT 1
       extern _GLOBAL_OFFSET_TABLE_
@@ -165,6 +166,7 @@
       %define RESTORE_GOT pop %1
     %endmacro
   %elifidn __OUTPUT_FORMAT__,macho32
+    %define GET_GOT_SAVE_ARG 1
     %macro GET_GOT 1
       push %1
       call %%get_got