diff options
| author | Ada Christine <adachristine18@gmail.com> | 2024-04-06 15:37:04 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2024-04-06 15:37:04 +0000 |
| commit | 912a4c7169e171a40b52d88c0ac82445855b979b (patch) | |
| tree | 91ffb02a8f2ef7c6503f04c3c59d6e482df782ea /service/arch/x86_64/rtld_link.S | |
| parent | 7fd8c908b9dafa85957bb6e6ce3f51d4dfa7c4dc (diff) | |
more abstract build
Diffstat (limited to 'service/arch/x86_64/rtld_link.S')
| -rw-r--r-- | service/arch/x86_64/rtld_link.S | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/service/arch/x86_64/rtld_link.S b/service/arch/x86_64/rtld_link.S new file mode 100644 index 0000000..7300a18 --- /dev/null +++ b/service/arch/x86_64/rtld_link.S @@ -0,0 +1,36 @@ +.section .text + +.extern kc_dynamic_link + +.hidden _rtld_link +.global _rtld_link +.type _rtld_link, @function +_rtld_link: + push %rbp + mov %rsp, %rbp + push %r9 + push %r8 + push %rcx + push %rdx + push %rsi + push %rdi + mov 8(%rbp), %rdi + mov 16(%rbp), %rsi + push %rbp + mov %rsp, %rbp + and $-0x10, %rsp + call kc_dynamic_link + mov %rbp, %rsp + pop %rbp + pop %rdi + pop %rsi + pop %rdx + pop %rcx + pop %r8 + pop %r9 + mov %rbp, %rsp + pop %rbp + add $0x10, %rsp + jmp *(%rax) +.size _rtld_link, . - _rtld_link + |
