summaryrefslogtreecommitdiff
path: root/lib/entry_x86_64.S
diff options
context:
space:
mode:
authorAda Christine <adachristine18@gmail.com>2021-12-19 01:16:51 +0000
committerAda Christine <adachristine18@gmail.com>2021-12-19 01:16:51 +0000
commitbff63a4337eb3388617d230970c5eb2684d6a215 (patch)
treef40891f45918b23dac0f31888142136434c7fc8c /lib/entry_x86_64.S
parentd5f485a4f6801f58cbb2bc9d8e80c955c79ff044 (diff)
i don't know what i'm doing anymore
Diffstat (limited to 'lib/entry_x86_64.S')
-rw-r--r--lib/entry_x86_64.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/entry_x86_64.S b/lib/entry_x86_64.S
new file mode 100644
index 0000000..231953a
--- /dev/null
+++ b/lib/entry_x86_64.S
@@ -0,0 +1,18 @@
+.section .text.start
+.extern kc_reloc
+.extern kc_main
+.extern _DYNAMIC
+.extern kc_image_base
+
+.global kc_entry
+.type kc_entry, @function
+kc_entry:
+ push %rdi
+ lea _DYNAMIC(%rip), %rdi
+ lea kc_image_base(%rip), %rsi
+ call kc_reloc
+ pop %rdi
+ call kc_main
+ ret
+.size kc_entry, . - kc_entry
+