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