diff --git a/src/arch/x86_64/interrupt/template.rs b/src/arch/x86_64/interrupt/template.rs index 64020cc..0c639d9 100644 --- a/src/arch/x86_64/interrupt/template.rs +++ b/src/arch/x86_64/interrupt/template.rs @@ -342,7 +342,8 @@ macro_rules! interrupt_switch { // Get reference to stack variables let rsp: usize; - asm!("" : "={rsp}"(rsp) : : : "intel", "volatile"); + asm!("mov rbp, rsp" : "={rsp}"(rsp) : : : "intel", "volatile"); + // "mov rbp, rsp" <-- Fix a lot of bugs! // Call inner rust function let rsp = inner(&mut *(rsp as *mut InterruptStackP));