diff --git a/kernel/include/interrupts.hpp b/kernel/include/interrupts.hpp index ccc6c6d0..c5f24d9b 100644 --- a/kernel/include/interrupts.hpp +++ b/kernel/include/interrupts.hpp @@ -26,6 +26,7 @@ struct fault_regs { } __attribute__((packed)); struct syscall_regs { + uint64_t __align; uint64_t rax; uint64_t rbx; uint64_t rcx; diff --git a/kernel/src/common.s b/kernel/src/common.s index a775c0c1..d8d9c85b 100644 --- a/kernel/src/common.s +++ b/kernel/src/common.s @@ -37,9 +37,11 @@ push rcx push rbx push rax + push rax .endm .macro restore_context + pop rax pop rax pop rbx pop rcx