From 24f324552ac14b4c2176a8b5edc8ffe4d970c226 Mon Sep 17 00:00:00 2001 From: "Justin C. Miller" Date: Sun, 13 Mar 2022 17:54:27 -0700 Subject: [PATCH] [kernel] Get rid of fake stack frame in isr_prelude The isr_prelude (and its IRQ equivalent) had been pushing RIP and RBP in order to create a fake stack frame. This was in an effor to make GDB display tracebacks more reliably, but GDB has other reasons for being finnicky about stack frames, so this was just wasted. This commit gets rid of it to make looking at the stack clearer. --- src/kernel/interrupts.s | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/kernel/interrupts.s b/src/kernel/interrupts.s index b2d1a1c..67eae7a 100644 --- a/src/kernel/interrupts.s +++ b/src/kernel/interrupts.s @@ -13,13 +13,6 @@ isr_handler_prelude: check_swap_gs mov rdi, rsp - mov rsi, rsp - - mov rax, [rsp + REGS.rip] - push rax - - push rbp - mov rbp, rsp call isr_handler jmp isr_handler_return @@ -38,21 +31,12 @@ irq_handler_prelude: mov rdi, rsp mov rsi, rsp - mov rax, [rsp + REGS.rip] - push rax - - push rbp - mov rbp, rsp - call irq_handler ; fall through to isr_handler_return .end: global isr_handler_return:function (isr_handler_return.end - isr_handler_return) isr_handler_return: - pop rbp - pop rax ; get rid of the manufactured stack frame - check_swap_gs pop_all