Created
May 12, 2010 04:27
-
-
Save ice799/398209 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
_dl_runtime_resolve: | |
subq $56,%rsp | |
cfi_adjust_cfa_offset(72) # Incorporate PLT | |
movq %rax,(%rsp) # Preserve registers otherwise clobbered. | |
movq %rcx, 8(%rsp) | |
movq %rdx, 16(%rsp) | |
movq %rsi, 24(%rsp) | |
movq %rdi, 32(%rsp) | |
movq %r8, 40(%rsp) | |
movq %r9, 48(%rsp) | |
movq 64(%rsp), %rsi # Copy args pushed by PLT in register. | |
movq %rsi, %r11 # Multiply by 24 | |
addq %r11, %rsi | |
addq %r11, %rsi | |
shlq $3, %rsi | |
movq 56(%rsp), %rdi # %rdi: link_map, %rsi: reloc_offset | |
call _dl_fixup # Call resolver. | |
movq %rax, %r11 # Save return value | |
movq 48(%rsp), %r9 # Get register content back. | |
movq 40(%rsp), %r8 | |
movq 32(%rsp), %rdi | |
movq 24(%rsp), %rsi | |
movq 16(%rsp), %rdx | |
movq 8(%rsp), %rcx | |
movq (%rsp), %rax | |
addq $72, %rsp # Adjust stack(PLT did 2 pushes) | |
cfi_adjust_cfa_offset(-72) | |
jmp *%r11 # Jump to function address. | |
cfi_endproc | |
.size _dl_runtime_resolve, .-_dl_runtime_resolve |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment