summaryrefslogtreecommitdiff
path: root/lib/mlibc/options/rtdl/aarch64
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mlibc/options/rtdl/aarch64')
-rw-r--r--lib/mlibc/options/rtdl/aarch64/elf.hpp37
-rw-r--r--lib/mlibc/options/rtdl/aarch64/entry.S11
-rw-r--r--lib/mlibc/options/rtdl/aarch64/runtime.S62
3 files changed, 0 insertions, 110 deletions
diff --git a/lib/mlibc/options/rtdl/aarch64/elf.hpp b/lib/mlibc/options/rtdl/aarch64/elf.hpp
deleted file mode 100644
index 802d1a2..0000000
--- a/lib/mlibc/options/rtdl/aarch64/elf.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-
-#include <elf.h>
-
-#define ELF_CLASS ELFCLASS64
-#define ELF_MACHINE EM_AARCH64
-
-using elf_ehdr = Elf64_Ehdr;
-using elf_phdr = Elf64_Phdr;
-using elf_dyn = Elf64_Dyn;
-using elf_rel = Elf64_Rel;
-using elf_rela = Elf64_Rela;
-using elf_relr = Elf64_Relr;
-using elf_sym = Elf64_Sym;
-using elf_addr = Elf64_Addr;
-
-using elf_info = Elf64_Xword;
-using elf_addend = Elf64_Sxword;
-
-#define ELF_R_SYM ELF64_R_SYM
-#define ELF_R_TYPE ELF64_R_TYPE
-#define ELF_ST_BIND ELF64_ST_BIND
-
-#define R_NONE R_AARCH64_NONE
-#define R_JUMP_SLOT R_AARCH64_JUMP_SLOT
-#define R_ABSOLUTE R_AARCH64_ABS64
-#define R_GLOB_DAT R_AARCH64_GLOB_DAT
-#define R_RELATIVE R_AARCH64_RELATIVE
-#define R_IRELATIVE R_AARCH64_IRELATIVE
-// #define R_OFFSET
-#define R_COPY R_AARCH64_COPY
-#define R_TLS_DTPMOD R_AARCH64_TLS_DTPMOD
-#define R_TLS_DTPREL R_AARCH64_TLS_DTPREL
-#define R_TLS_TPREL R_AARCH64_TLS_TPREL
-#define R_TLSDESC R_AARCH64_TLSDESC
-
-#define TP_TCB_OFFSET (16)
diff --git a/lib/mlibc/options/rtdl/aarch64/entry.S b/lib/mlibc/options/rtdl/aarch64/entry.S
deleted file mode 100644
index b22af53..0000000
--- a/lib/mlibc/options/rtdl/aarch64/entry.S
+++ /dev/null
@@ -1,11 +0,0 @@
-
-.global _start
-_start:
- bl relocateSelf
-
- mov x0, sp
- bl interpreterMain
-
- br x0
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/options/rtdl/aarch64/runtime.S b/lib/mlibc/options/rtdl/aarch64/runtime.S
deleted file mode 100644
index c3e2cff..0000000
--- a/lib/mlibc/options/rtdl/aarch64/runtime.S
+++ /dev/null
@@ -1,62 +0,0 @@
-
-.global __mlibcTlsdescStatic
-.hidden __mlibcTlsdescStatic
-.type __mlibcTlsdescStatic,@function
-__mlibcTlsdescStatic:
- ldr x0, [x0, #8]
- ret
-
-// This function depends on the Tcb layout, since it pulls out the dtv pointer
-// out of the thread control block
-.global __mlibcTlsdescDynamic
-.hidden __mlibcTlsdescDynamic
-.type __mlibcTlsdescDynamic,@function
-__mlibcTlsdescDynamic:
- stp x1, x2, [sp, #-16]!
- ldr x0, [x0, #8]
- ldp x1, x2, [x0] // tlsIndex, addend
- mrs x0, tpidr_el0 // tp
- ldr x0, [x0, #-104] // tp->dtvPointers
- ldr x0, [x0, x1, lsl 3] // [tlsIndex]
- add x0, x0, x2 // + addend
- mrs x1, tpidr_el0 // tp
- sub x0, x0, x1 // result - tp
- ldp x1, x2, [sp], #16
- ret
-
-.global pltRelocateStub
-pltRelocateStub:
- // we need to save / restore all registers than can hold function arguments
- // we do not need to save callee-saved registers as they will not be trashed by lazyRelocate
- // TODO: save floating point argument registers
-
- stp x0, x1, [sp, #-16]!
-
- // pointer to PLT entry
- ldr x1, [sp, #24]
- ldr x0, [x16]
- sub x1, x1, x0
- asr x0, x0, #3
-
- // pointer GOT
- sub x0, x16, #8 // &PLTGOT[1]
-
- stp x2, x3, [sp, #-16]!
- stp x4, x5, [sp, #-16]!
- stp x6, x7, [sp, #-16]!
- stp x8, x30, [sp, #-16]!
-
- bl lazyRelocate
- mov x9, x0
-
- ldp x8, x30, [sp], #16
- ldp x6, x7, [sp], #16
- ldp x4, x5, [sp], #16
- ldp x2, x1, [sp], #16
-
- ldp x0, x1, [sp], #16
- add sp, sp, #16
- br x9
-
-.section .note.GNU-stack,"",%progbits
-