Index: source/libvpx/vpx_ports/x86_abi_support.asm |
=================================================================== |
--- source/libvpx/vpx_ports/x86_abi_support.asm (revision 60257) |
+++ source/libvpx/vpx_ports/x86_abi_support.asm (working copy) |
@@ -1,5 +1,5 @@ |
; |
-; Copyright (c) 2010 The VP8 project authors. All Rights Reserved. |
+; Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
; |
; Use of this source code is governed by a BSD-style license |
; that can be found in the LICENSE file in the root of the source |
@@ -90,7 +90,7 @@ |
%macro ALIGN_STACK 2 |
mov %2, rsp |
and rsp, -%1 |
- sub rsp, %1 - REG_SZ_BYTES |
+ lea rsp, [rsp - (%1 - REG_SZ_BYTES)] |
push %2 |
%endmacro |
@@ -105,7 +105,6 @@ |
%idefine XMMWORD |
%idefine MMWORD |
- |
; PIC macros |
; |
%if ABI_IS_32BIT |
@@ -116,9 +115,13 @@ |
extern _GLOBAL_OFFSET_TABLE_ |
push %1 |
call %%get_got |
+ %%sub_offset: |
+ jmp %%exitGG |
%%get_got: |
- pop %1 |
- add %1, _GLOBAL_OFFSET_TABLE_ + $$ - %%get_got wrt ..gotpc |
+ mov %1, [esp] |
+ add %1, _GLOBAL_OFFSET_TABLE_ + $$ - %%sub_offset wrt ..gotpc |
+ ret |
+ %%exitGG: |
%undef GLOBAL |
%define GLOBAL + %1 wrt ..gotoff |
%undef RESTORE_GOT |
@@ -128,9 +131,13 @@ |
%macro GET_GOT 1 |
push %1 |
call %%get_got |
+ %%sub_offset: |
+ jmp %%exitGG |
%%get_got: |
- pop %1 |
- add %1, fake_got - %%get_got |
+ mov %1, [esp] |
+ add %1, fake_got - %%sub_offset |
+ ret |
+ %%exitGG: |
%undef GLOBAL |
%define GLOBAL + %1 - fake_got |
%undef RESTORE_GOT |