Alexandre Julliard : ntdll: Add unwind annotations to the call_entry_point function for x86_64.

Alexandre Julliard julliard at winehq.org
Tue Jun 16 09:09:39 CDT 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Jun 16 14:26:34 2009 +0200

ntdll: Add unwind annotations to the call_entry_point function for x86_64.

---

 dlls/ntdll/relay.c |   58 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/dlls/ntdll/relay.c b/dlls/ntdll/relay.c
index 6eeb453..0f74c41 100644
--- a/dlls/ntdll/relay.c
+++ b/dlls/ntdll/relay.c
@@ -342,30 +342,40 @@ __ASM_GLOBAL_FUNC( call_entry_point,
                    "\tret" )
 #else
 __ASM_GLOBAL_FUNC( call_entry_point,
-                   "\tpushq %rbp\n"
-                   "\tmovq %rsp,%rbp\n"
-                   "\tpushq %rsi\n"
-                   "\tpushq %rdi\n"
-                   "\tmovq %rcx,%rax\n"
-                   "\tmovq $4,%rcx\n"
-                   "\tcmp %rcx,%rdx\n"
-                   "\tcmovgq %rdx,%rcx\n"
-                   "\tleaq 0(,%rcx,8),%rdx\n"
-                   "\tsubq %rdx,%rsp\n"
-                   "\tandq $~15,%rsp\n"
-                   "\tmovq %rsp,%rdi\n"
-                   "\tmovq %r8,%rsi\n"
-                   "\trep; movsq\n"
-                   "\tmovq 0(%rsp),%rcx\n"
-                   "\tmovq 8(%rsp),%rdx\n"
-                   "\tmovq 16(%rsp),%r8\n"
-                   "\tmovq 24(%rsp),%r9\n"
-                   "\tcallq *%rax\n"
-                   "\tleaq -16(%rbp),%rsp\n"
-                   "\tpopq %rdi\n"
-                   "\tpopq %rsi\n"
-                   "\tpopq %rbp\n"
-                   "\tret\n" )
+                   "pushq %rbp\n\t"
+                   ".cfi_adjust_cfa_offset 8\n\t"
+                   ".cfi_rel_offset %rbp,0\n\t"
+                   "movq %rsp,%rbp\n\t"
+                   ".cfi_def_cfa_register %rbp\n\t"
+                   "pushq %rsi\n\t"
+                   ".cfi_rel_offset %rsi,-8\n\t"
+                   "pushq %rdi\n\t"
+                   ".cfi_rel_offset %rdi,-16\n\t"
+                   "movq %rcx,%rax\n\t"
+                   "movq $4,%rcx\n\t"
+                   "cmp %rcx,%rdx\n\t"
+                   "cmovgq %rdx,%rcx\n\t"
+                   "leaq 0(,%rcx,8),%rdx\n\t"
+                   "subq %rdx,%rsp\n\t"
+                   "andq $~15,%rsp\n\t"
+                   "movq %rsp,%rdi\n\t"
+                   "movq %r8,%rsi\n\t"
+                   "rep; movsq\n\t"
+                   "movq 0(%rsp),%rcx\n\t"
+                   "movq 8(%rsp),%rdx\n\t"
+                   "movq 16(%rsp),%r8\n\t"
+                   "movq 24(%rsp),%r9\n\t"
+                   "callq *%rax\n\t"
+                   "leaq -16(%rbp),%rsp\n\t"
+                   "popq %rdi\n\t"
+                   ".cfi_same_value %rdi\n\t"
+                   "popq %rsi\n\t"
+                   ".cfi_same_value %rsi\n\t"
+                   ".cfi_def_cfa_register %rsp\n\t"
+                   "popq %rbp\n\t"
+                   ".cfi_adjust_cfa_offset -8\n\t"
+                   ".cfi_same_value %rbp\n\t"
+                   "ret")
 #endif
 
 




More information about the wine-cvs mailing list