From ddd68a03738fcf643944eccfd461d5fd6af7ecdd Mon Sep 17 00:00:00 2001 From: Marin Ivanov Date: Wed, 1 May 2024 02:20:50 +0300 Subject: fix: setting up stack --- src/main.zig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main.zig b/src/main.zig index 1f7facd..dedcb65 100644 --- a/src/main.zig +++ b/src/main.zig @@ -17,12 +17,18 @@ export const multiboot align(4) linksection(".multiboot") = MultibootHeader{ .checksum = -(MAGIC + FLAGS), }; -export var stack_bytes: [16 * 1024]u8 align(16) linksection(".bss") = undefined; -const stack_bytes_slice = stack_bytes[0..]; +export var stack: [16 * 1024]u8 align(16) linksection(".bss") = undefined; +const stack_bytes_slice = stack[0..]; export fn _start() callconv(.Naked) noreturn { // @call(.{ .stack = stack_bytes_slice }, kmain, .{}); - asm volatile ("jmp kmain"); + asm volatile ( + \\ mov %[stk], %rsp + \\ mov %rsp, %rbp + : + : [stk] "{rcx}" (@intFromPtr(&stack) + @sizeOf(@TypeOf(stack))), + ); + asm volatile ("call kmain"); while (true) {} } -- cgit v1.2.3