ref: 5380a2215e49f88d4db5e13997055717faec8d1c
parent: 9b8f82779d7029df39017307c65a0d0f2c958fdf
parent: b4f70084cc64b8304005a385cb0a670431aced20
author: John Koleszar <jkoleszar@google.com>
date: Fri Jul 1 20:05:10 EDT 2011
Merge remote branch 'internal/upstream' into HEAD
--- 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