Commit ca4451fa authored by Alexandre Julliard's avatar Alexandre Julliard

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

parent b9fd2c8d
...@@ -342,30 +342,40 @@ __ASM_GLOBAL_FUNC( call_entry_point, ...@@ -342,30 +342,40 @@ __ASM_GLOBAL_FUNC( call_entry_point,
"\tret" ) "\tret" )
#else #else
__ASM_GLOBAL_FUNC( call_entry_point, __ASM_GLOBAL_FUNC( call_entry_point,
"\tpushq %rbp\n" "pushq %rbp\n\t"
"\tmovq %rsp,%rbp\n" ".cfi_adjust_cfa_offset 8\n\t"
"\tpushq %rsi\n" ".cfi_rel_offset %rbp,0\n\t"
"\tpushq %rdi\n" "movq %rsp,%rbp\n\t"
"\tmovq %rcx,%rax\n" ".cfi_def_cfa_register %rbp\n\t"
"\tmovq $4,%rcx\n" "pushq %rsi\n\t"
"\tcmp %rcx,%rdx\n" ".cfi_rel_offset %rsi,-8\n\t"
"\tcmovgq %rdx,%rcx\n" "pushq %rdi\n\t"
"\tleaq 0(,%rcx,8),%rdx\n" ".cfi_rel_offset %rdi,-16\n\t"
"\tsubq %rdx,%rsp\n" "movq %rcx,%rax\n\t"
"\tandq $~15,%rsp\n" "movq $4,%rcx\n\t"
"\tmovq %rsp,%rdi\n" "cmp %rcx,%rdx\n\t"
"\tmovq %r8,%rsi\n" "cmovgq %rdx,%rcx\n\t"
"\trep; movsq\n" "leaq 0(,%rcx,8),%rdx\n\t"
"\tmovq 0(%rsp),%rcx\n" "subq %rdx,%rsp\n\t"
"\tmovq 8(%rsp),%rdx\n" "andq $~15,%rsp\n\t"
"\tmovq 16(%rsp),%r8\n" "movq %rsp,%rdi\n\t"
"\tmovq 24(%rsp),%r9\n" "movq %r8,%rsi\n\t"
"\tcallq *%rax\n" "rep; movsq\n\t"
"\tleaq -16(%rbp),%rsp\n" "movq 0(%rsp),%rcx\n\t"
"\tpopq %rdi\n" "movq 8(%rsp),%rdx\n\t"
"\tpopq %rsi\n" "movq 16(%rsp),%r8\n\t"
"\tpopq %rbp\n" "movq 24(%rsp),%r9\n\t"
"\tret\n" ) "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 #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment