diff --git a/src/main.rs b/src/main.rs index 03c69478..c1b3b2ce 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,7 +44,7 @@ global_asm!(include_str!("video_mode/vga_320x200.s")); global_asm!(include_str!("video_mode/vga_text_80x25.s")); unsafe fn context_switch(boot_info: VirtAddr, entry_point: VirtAddr, stack_pointer: VirtAddr) -> ! { - asm!("jmp $1; ${:private}.spin.${:uid}: jmp ${:private}.spin.${:uid}" :: + asm!("call $1; ${:private}.spin.${:uid}: jmp ${:private}.spin.${:uid}" :: "{rsp}"(stack_pointer), "r"(entry_point), "{rdi}"(boot_info) :: "intel"); ::core::hint::unreachable_unchecked() }