From 40eecaecc552945f72a2b90f4122bf929960671c Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Sun, 26 Feb 2023 06:54:25 +0100 Subject: using one isr_stub for everything --- kernel/src/cpu/irq_stub.S | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'kernel/src/cpu/irq_stub.S') diff --git a/kernel/src/cpu/irq_stub.S b/kernel/src/cpu/irq_stub.S index 33d87e1..a80b721 100644 --- a/kernel/src/cpu/irq_stub.S +++ b/kernel/src/cpu/irq_stub.S @@ -2,13 +2,16 @@ #include "x86_64_regs.S" -.macro isrstub +.macro isrstub number push_caller_saved + push_callee_saved /* get error code from stack */ - mov 0x50(%rsp), %rsi + mov ERROR_OFF(%rsp), %rsi mov %rsp, panic_rsp + mov $\number, %rdi cld call isr_def_handler + pop_callee_saved pop_caller_saved add $8, %rsp iretq @@ -18,27 +21,20 @@ .global isr\number isr\number: push $0 - mov $\number, %rdi - isrstub + isrstub \number .endm .macro isr_error number .global isr\number isr\number: - mov $\number, %rdi - isrstub + isrstub \number .endm .macro irq number .global irq\number irq\number: - push_caller_saved - mov $\number, %rdi - mov %rsp, panic_rsp - cld - call irq_def_handler - pop_caller_saved - iretq + push $0 + isrstub (\number + 0x20) .endm isr_no_error 0 -- cgit v1.2.3