Commit 322ea7ff authored by Yunqing Wang's avatar Yunqing Wang

Fix the win32 crash when GET_GOT is not defined

This patch continues to fix the win32 crash issue:
https://bugs.chromium.org/p/webm/issues/detail?id=1105

Johann's patch is here:
https://chromium-review.googlesource.com/#/c/316446/2

Change-Id: I7fe191c717e40df8602e229371321efb0d689375
parent 7f79a83f
......@@ -119,6 +119,7 @@
%if ABI_IS_32BIT
%if CONFIG_PIC=1
%ifidn __OUTPUT_FORMAT__,elf32
%define GET_GOT_DEFINED 1
%define GET_GOT_SAVE_ARG 1
%define WRT_PLT wrt ..plt
%macro GET_GOT 1
......@@ -138,6 +139,7 @@
%define RESTORE_GOT pop %1
%endmacro
%elifidn __OUTPUT_FORMAT__,macho32
%define GET_GOT_DEFINED 1
%define GET_GOT_SAVE_ARG 1
%macro GET_GOT 1
push %1
......@@ -149,6 +151,8 @@
%undef RESTORE_GOT
%define RESTORE_GOT pop %1
%endmacro
%else
%define GET_GOT_DEFINED 0
%endif
%endif
......
......@@ -123,7 +123,10 @@ SECTION .text
%define sec_str sec_stridemp
; Store bilin_filter and pw_8 location in stack
GET_GOT eax
%if GET_GOT_DEFINED == 1
GET_GOT eax
add esp, 4 ; restore esp
%endif
lea ecx, [GLOBAL(bilin_filter_m)]
mov g_bilin_filterm, ecx
......@@ -131,7 +134,6 @@ SECTION .text
lea ecx, [GLOBAL(pw_8)]
mov g_pw_8m, ecx
RESTORE_GOT ; restore esp
LOAD_IF_USED 0, 1 ; load eax, ecx back
%else
cglobal highbd_sub_pixel_variance%1xh, 7, 7, 13, src, src_stride, \
......@@ -140,7 +142,10 @@ SECTION .text
%define block_height heightd
; Store bilin_filter and pw_8 location in stack
GET_GOT eax
%if GET_GOT_DEFINED == 1
GET_GOT eax
add esp, 4 ; restore esp
%endif
lea ecx, [GLOBAL(bilin_filter_m)]
mov g_bilin_filterm, ecx
......@@ -148,7 +153,6 @@ SECTION .text
lea ecx, [GLOBAL(pw_8)]
mov g_pw_8m, ecx
RESTORE_GOT ; restore esp
LOAD_IF_USED 0, 1 ; load eax, ecx back
%endif
%else
......
......@@ -139,7 +139,10 @@ SECTION .text
%define sec_str sec_stridemp
;Store bilin_filter and pw_8 location in stack
GET_GOT eax
%if GET_GOT_DEFINED == 1
GET_GOT eax
add esp, 4 ; restore esp
%endif
lea ecx, [GLOBAL(bilin_filter_m)]
mov g_bilin_filterm, ecx
......@@ -147,7 +150,6 @@ SECTION .text
lea ecx, [GLOBAL(pw_8)]
mov g_pw_8m, ecx
RESTORE_GOT ; restore esp
LOAD_IF_USED 0, 1 ; load eax, ecx back
%else
cglobal sub_pixel_variance%1xh, 7, 7, 13, src, src_stride, x_offset, \
......@@ -156,7 +158,10 @@ SECTION .text
%define block_height heightd
;Store bilin_filter and pw_8 location in stack
GET_GOT eax
%if GET_GOT_DEFINED == 1
GET_GOT eax
add esp, 4 ; restore esp
%endif
lea ecx, [GLOBAL(bilin_filter_m)]
mov g_bilin_filterm, ecx
......@@ -164,7 +169,6 @@ SECTION .text
lea ecx, [GLOBAL(pw_8)]
mov g_pw_8m, ecx
RESTORE_GOT ; restore esp
LOAD_IF_USED 0, 1 ; load eax, ecx back
%endif
%else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment