aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/boot/entry64.s
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2025-12-03 14:02:07 +0100
committerFelix Morgner <felix.morgner@ost.ch>2025-12-03 14:02:07 +0100
commita08847ded5fba25859e7a3ad06ae3fed342d4d6a (patch)
tree607addb6a707fc39b39eb69779467841fc6d7356 /arch/x86_64/src/boot/entry64.s
parent9331afdcbbe95bc1bd79d657f0d7c5b91a19a375 (diff)
downloadteachos-a08847ded5fba25859e7a3ad06ae3fed342d4d6a.tar.xz
teachos-a08847ded5fba25859e7a3ad06ae3fed342d4d6a.zip
x86_64/boot: move stack to higher half
Diffstat (limited to 'arch/x86_64/src/boot/entry64.s')
-rw-r--r--arch/x86_64/src/boot/entry64.s9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86_64/src/boot/entry64.s b/arch/x86_64/src/boot/entry64.s
index 636e4cd..2932354 100644
--- a/arch/x86_64/src/boot/entry64.s
+++ b/arch/x86_64/src/boot/entry64.s
@@ -11,6 +11,12 @@
.global bootstrap_information
bootstrap_information: .skip 16
+.align 16
+.global stack_top
+stack_bottom: .skip 1 << 20
+stack_top:
+stack_size = stack_top - stack_bottom
+
.section .boot_text, "ax", @progbits
.code64
@@ -23,6 +29,9 @@ _entry64:
mov %rax, %fs
mov %rax, %gs
+ mov $stack_top, %rsp
+ mov %rsp, %rbp
+
mov multiboot_information_pointer, %rax
mov vga_buffer_pointer, %rdx
sub $0xb8000, %rdx