]> granicus.if.org Git - libvpx/commitdiff
set up Global Offset Table in recon
authorJohann <johannkoenig@google.com>
Tue, 10 May 2011 19:58:56 +0000 (15:58 -0400)
committerJohann <johannkoenig@google.com>
Tue, 10 May 2011 19:58:56 +0000 (15:58 -0400)
global values were being referenced, but the GOT was not being set up.
as the GOT is only required for PIC, this issue wasn't caught in the
default configuration.

Change-Id: I8006e53776139362a76f2c80cf9d0f8458602b2f
http://code.google.com/p/webm/issues/detail?id=328

vp8/common/x86/recon_sse2.asm

index 97dc4f6866583e89a67efcacbdaaeb4113291d5d..86c421a9a86525689772c89319025ca740bc5064 100644 (file)
@@ -315,6 +315,7 @@ sym(vp8_intra_pred_uv_dctop_mmx2):
     push        rbp
     mov         rbp, rsp
     SHADOW_ARGS_TO_STACK 4
+    GET_GOT     rbx
     push        rsi
     push        rdi
     ; end prolog
@@ -351,6 +352,7 @@ sym(vp8_intra_pred_uv_dctop_mmx2):
     ; begin epilog
     pop         rdi
     pop         rsi
+    RESTORE_GOT
     UNSHADOW_ARGS
     pop         rbp
     ret
@@ -431,6 +433,7 @@ sym(vp8_intra_pred_uv_dc128_mmx):
     push        rbp
     mov         rbp, rsp
     SHADOW_ARGS_TO_STACK 4
+    GET_GOT     rbx
     ; end prolog
 
     ; write out
@@ -450,6 +453,7 @@ sym(vp8_intra_pred_uv_dc128_mmx):
     movq [rax+rcx  ],       mm1
 
     ; begin epilog
+    RESTORE_GOT
     UNSHADOW_ARGS
     pop         rbp
     ret
@@ -466,6 +470,7 @@ sym(vp8_intra_pred_uv_tm_%1):
     push        rbp
     mov         rbp, rsp
     SHADOW_ARGS_TO_STACK 4
+    GET_GOT     rbx
     push        rsi
     push        rdi
     ; end prolog
@@ -525,6 +530,7 @@ vp8_intra_pred_uv_tm_%1_loop:
     ; begin epilog
     pop         rdi
     pop         rsi
+    RESTORE_GOT
     UNSHADOW_ARGS
     pop         rbp
     ret