Alexandre Julliard : kernel32: Add .seh annotations for x86_64.

Alexandre Julliard julliard at winehq.org
Wed Aug 21 14:39:32 CDT 2019


Module: wine
Branch: master
Commit: 3ca42e0a9795e271558472e43fda09a93853634c
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=3ca42e0a9795e271558472e43fda09a93853634c

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Aug 21 11:28:59 2019 +0200

kernel32: Add .seh annotations for x86_64.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/module.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c
index acfc365..24fb9e3 100644
--- a/dlls/kernel32/module.c
+++ b/dlls/kernel32/module.c
@@ -980,11 +980,15 @@ extern FARPROC get_proc_address_wrapper( HMODULE module, LPCSTR function );
 
 __ASM_GLOBAL_FUNC( get_proc_address_wrapper,
                    "pushq %rbp\n\t"
+                   __ASM_SEH(".seh_pushreg %rbp\n\t")
                    __ASM_CFI(".cfi_adjust_cfa_offset 8\n\t")
                    __ASM_CFI(".cfi_rel_offset %rbp,0\n\t")
                    "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"
@@ -994,7 +998,7 @@ __ASM_GLOBAL_FUNC( get_proc_address_wrapper,
                    "movaps -0x30(%rbp), %xmm2\n\t"
                    "movaps -0x20(%rbp), %xmm1\n\t"
                    "movaps -0x10(%rbp), %xmm0\n\t"
-                   "movq %rbp,%rsp\n\t"
+                   "leaq 0(%rbp),%rsp\n\t"
                    __ASM_CFI(".cfi_def_cfa_register %rsp\n\t")
                    "popq %rbp\n\t"
                    __ASM_CFI(".cfi_adjust_cfa_offset -8\n\t")




More information about the wine-cvs mailing list