From 9b3dd99abc763f5e2039933eda510ec62d395f8a Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Tue, 29 Nov 2022 16:09:32 +0100 Subject: pushing all regs in irq_handler --- kernel/src/cpu/irq_stub.S | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 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 f8a05b6..ee02d3e 100644 --- a/kernel/src/cpu/irq_stub.S +++ b/kernel/src/cpu/irq_stub.S @@ -2,6 +2,7 @@ .macro pushall push %rax + push %rbx push %rcx push %rdx push %rsi @@ -10,11 +11,32 @@ push %r9 push %r10 push %r11 - pushfq + push %r12 + push %r13 + push %r14 + push %r15 + mov %ds, %ax + push %rax + mov %es, %ax + push %rax + mov %ss, %ax + push %rax + mov $0x10, %ax + mov %ax, %ds + mov %ax, %es + mov 0x80(%rsp), %rax .endm .macro popall - popfq + pop %rax + pop %rax + mov %ax, %es + pop %rax + mov %ax, %ds + pop %r15 + pop %r14 + pop %r13 + pop %r12 pop %r11 pop %r10 pop %r9 @@ -23,6 +45,7 @@ pop %rsi pop %rdx pop %rcx + pop %rbx pop %rax .endm @@ -41,7 +64,7 @@ isr\number: .global isr\number isr\number: pushall - mov 0x50(%rsp), %rdi + mov 0x88(%rsp), %rdi cld mov %rsp, panic_rsp call isr\number\()_handler -- cgit v1.2.3