Alexandre Julliard : user32: Add call frame annotations in x86 assembly code.

Alexandre Julliard julliard at winehq.org
Thu Jun 25 08:13:57 CDT 2009


Module: wine
Branch: master
Commit: 39984d4824fa6e2ecf2960d06190eaab753d7789
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=39984d4824fa6e2ecf2960d06190eaab753d7789

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Jun 25 11:51:52 2009 +0200

user32: Add call frame annotations in x86 assembly code.

---

 dlls/user32/winproc.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/winproc.c b/dlls/user32/winproc.c
index 2a88329..91eeeb7 100644
--- a/dlls/user32/winproc.c
+++ b/dlls/user32/winproc.c
@@ -282,10 +282,16 @@ extern LRESULT WINPROC_wrapper( WNDPROC proc, HWND hwnd, UINT msg,
                                 WPARAM wParam, LPARAM lParam );
 __ASM_GLOBAL_FUNC( WINPROC_wrapper,
                    "pushl %ebp\n\t"
+                   __ASM_CFI(".cfi_adjust_cfa_offset 4\n\t")
+                   __ASM_CFI(".cfi_rel_offset %ebp,0\n\t")
                    "movl %esp,%ebp\n\t"
+                   __ASM_CFI(".cfi_def_cfa_register %ebp\n\t")
                    "pushl %edi\n\t"
+                   __ASM_CFI(".cfi_rel_offset %edi,-4\n\t")
                    "pushl %esi\n\t"
+                   __ASM_CFI(".cfi_rel_offset %esi,-8\n\t")
                    "pushl %ebx\n\t"
+                   __ASM_CFI(".cfi_rel_offset %ebx,-12\n\t")
                    "subl $12,%esp\n\t"
                    "pushl 24(%ebp)\n\t"
                    "pushl 20(%ebp)\n\t"
@@ -295,9 +301,14 @@ __ASM_GLOBAL_FUNC( WINPROC_wrapper,
                    "call *%eax\n\t"
                    "leal -12(%ebp),%esp\n\t"
                    "popl %ebx\n\t"
+                   __ASM_CFI(".cfi_same_value %ebx\n\t")
                    "popl %esi\n\t"
+                   __ASM_CFI(".cfi_same_value %esi\n\t")
                    "popl %edi\n\t"
+                   __ASM_CFI(".cfi_same_value %edi\n\t")
                    "leave\n\t"
+                   __ASM_CFI(".cfi_def_cfa %esp,4\n\t")
+                   __ASM_CFI(".cfi_same_value %ebp\n\t")
                    "ret" )
 #else
 static inline LRESULT WINPROC_wrapper( WNDPROC proc, HWND hwnd, UINT msg,




More information about the wine-cvs mailing list