ntdll: Add unwind annotations to the call_entry_point function for x86_64.
This commit is contained in:
parent
b9fd2c8d4c
commit
ca4451fa13
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue