summaryrefslogtreecommitdiff
path: root/kc/entry_x86_64.S
diff options
context:
space:
mode:
Diffstat (limited to 'kc/entry_x86_64.S')
-rw-r--r--kc/entry_x86_64.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/kc/entry_x86_64.S b/kc/entry_x86_64.S
index 8431044..c426335 100644
--- a/kc/entry_x86_64.S
+++ b/kc/entry_x86_64.S
@@ -6,14 +6,22 @@
.global kc_entry
.type kc_entry, @function
kc_entry:
+ push %rbp
push %rdi
push %rsi
+ mov %rsp, %rbp
+ and $-0x10, %rsp
lea kc_image_base(%rip), %rdi
lea _DYNAMIC(%rip), %rsi
call kc_dynamic_init
+ mov %rbp, %rsp
pop %rsi
pop %rdi
+ mov %rsp, %rbp
+ and $-0x10, %rsp
call kc_main
+ mov %rbp, %rsp
+ pop %rbp
ret
.size kc_entry, . - kc_entry