diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2025-07-24 13:52:42 +0000 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2025-07-24 13:52:42 +0000 |
| commit | ef907825e861b63726952bb34b425a98f34ed412 (patch) | |
| tree | a2dc43bbc9362942f740652b990ee582880f2e3d /arch/x86_64/src/boot/entry64.s | |
| parent | 187788deaf81a0ef6709aea8f3c4d906f1669762 (diff) | |
| download | teachos-ef907825e861b63726952bb34b425a98f34ed412.tar.xz teachos-ef907825e861b63726952bb34b425a98f34ed412.zip | |
x86_64: provide a clean slate on entry to long mode
Diffstat (limited to 'arch/x86_64/src/boot/entry64.s')
| -rw-r--r-- | arch/x86_64/src/boot/entry64.s | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/x86_64/src/boot/entry64.s b/arch/x86_64/src/boot/entry64.s index 110ced8..c5df5db 100644 --- a/arch/x86_64/src/boot/entry64.s +++ b/arch/x86_64/src/boot/entry64.s @@ -10,10 +10,20 @@ _entry64: mov %rax, %fs mov %rax, %gs - xor %rax, %rax - call invoke_global_constructors + xor %rax, %rax + mov %rax, %rbp + mov %rax, %rdx + mov %rax, %rsi + + mov $stack_size, %rcx + shr $3, %rcx + lea (stack_bottom), %rdi + rep stosq + + mov %rax, %rdi + call main 1: |
