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
This commit is contained in:
parent
7f79a83f17
commit
322ea7ff5b
4
third_party/x86inc/x86inc.asm
vendored
4
third_party/x86inc/x86inc.asm
vendored
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user