* sysdeps/x86_64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):

Add CFI directives.
This commit is contained in:
Andreas Jaeger 2003-06-15 19:40:29 +00:00
parent 05c49e6f55
commit 2b4500480e
2 changed files with 23 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2003-06-15 Andreas Jaeger <aj@suse.de>
* sysdeps/x86_64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
Add CFI directives.
2003-06-15 Guido Guenther <agx@sigxcpu.org>
* sysdeps/unix/sysv/linux/mips/Makefile: Add missing endif and

View File

@ -217,13 +217,15 @@ _dl_runtime_profile:\n\
" CFI_STARTPROC "\n\
_dl_runtime_resolve:\n\
_dl_runtime_profile:\n\
pushq %rax # Preserve registers otherwise clobbered.\n\
pushq %rcx\n\
pushq %rdx\n\
pushq %rsi\n\
pushq %rdi\n\
pushq %r8\n\
pushq %r9\n\
subq $56,%rsp\n\
" CFI_ADJUST_CFA_OFFSET(72)" # Incorporate PLT\n\
movq %rax,(%rsp) # Preserve registers otherwise clobbered.\n\
movq %rcx,8(%rsp)\n\
movq %rdx,16(%rsp)\n\
movq %rsi,24(%rsp)\n\
movq %rdi,32(%rsp)\n\
movq %r8,40(%rsp)\n\
movq %r9,48(%rsp)\n\
movq 64(%rsp), %rsi # Copy args pushed by PLT in register.\n\
movq %rsi,%r11 # Multiply by 24\n\
addq %r11,%rsi\n\
@ -232,14 +234,15 @@ _dl_runtime_profile:\n\
movq 56(%rsp), %rdi # %rdi: link_map, %rsi: reloc_offset\n\
call fixup # Call resolver.\n\
movq %rax, %r11 # Save return value\n\
popq %r9 # Get register content back.\n\
popq %r8\n\
popq %rdi\n\
popq %rsi\n\
popq %rdx\n\
popq %rcx\n\
popq %rax\n\
addq $16,%rsp # Adjust stack\n\
movq 48(%rsp),%r9 # Get register content back.\n\
movq 40(%rsp),%r8\n\
movq 32(%rsp),%rdi\n\
movq 24(%rsp),%rsi\n\
movq 16(%rsp),%rdx\n\
movq 8(%rsp),%rcx\n\
movq (%rsp),%rax\n\
addq $72,%rsp # Adjust stack\n\
" CFI_ADJUST_CFA_OFFSET(-72)"\n\
jmp *%r11 # Jump to function address.\n\
" CFI_ENDPROC "\n\
.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\