kernel32: Align stack in get_proc_address_wrapper().
Fixes crash on start in Nier Automata after switching kernel32 to PE. Signed-off-by: Paul Gofman <pgofman@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6abf518ece
commit
94f22b56a8
|
@ -320,18 +320,18 @@ __ASM_GLOBAL_FUNC( get_proc_address_wrapper,
|
|||
"movq %rsp,%rbp\n\t"
|
||||
__ASM_SEH(".seh_setframe %rbp,0\n\t")
|
||||
__ASM_CFI(".cfi_def_cfa_register %rbp\n\t")
|
||||
"subq $0x40,%rsp\n\t"
|
||||
__ASM_SEH(".seh_stackalloc 0x40\n\t")
|
||||
__ASM_SEH(".seh_endprologue\n\t")
|
||||
"movaps %xmm0,-0x10(%rbp)\n\t"
|
||||
"movaps %xmm1,-0x20(%rbp)\n\t"
|
||||
"movaps %xmm2,-0x30(%rbp)\n\t"
|
||||
"movaps %xmm3,-0x40(%rbp)\n\t"
|
||||
"subq $0x60,%rsp\n\t"
|
||||
"andq $~15,%rsp\n\t"
|
||||
"movaps %xmm0,0x20(%rsp)\n\t"
|
||||
"movaps %xmm1,0x30(%rsp)\n\t"
|
||||
"movaps %xmm2,0x40(%rsp)\n\t"
|
||||
"movaps %xmm3,0x50(%rsp)\n\t"
|
||||
"call " __ASM_NAME("get_proc_address") "\n\t"
|
||||
"movaps -0x40(%rbp), %xmm3\n\t"
|
||||
"movaps -0x30(%rbp), %xmm2\n\t"
|
||||
"movaps -0x20(%rbp), %xmm1\n\t"
|
||||
"movaps -0x10(%rbp), %xmm0\n\t"
|
||||
"movaps 0x50(%rsp), %xmm3\n\t"
|
||||
"movaps 0x40(%rsp), %xmm2\n\t"
|
||||
"movaps 0x30(%rsp), %xmm1\n\t"
|
||||
"movaps 0x20(%rsp), %xmm0\n\t"
|
||||
"leaq 0(%rbp),%rsp\n\t"
|
||||
__ASM_CFI(".cfi_def_cfa_register %rsp\n\t")
|
||||
"popq %rbp\n\t"
|
||||
|
|
Loading…
Reference in New Issue