Unify trap handler naming and remove unused kernel mode stack setup
Some checks failed
Builds / ExectOS (amd64, release) (push) Failing after 40s
Builds / ExectOS (amd64, debug) (push) Successful in 34s
Builds / ExectOS (i686, debug) (push) Successful in 32s
Builds / ExectOS (i686, release) (push) Successful in 39s

This commit is contained in:
2026-04-08 19:52:55 +02:00
parent f1476912f3
commit 4f65773aa9
2 changed files with 8 additions and 17 deletions

View File

@@ -119,11 +119,11 @@ Ar\Type\Vector:
mov %al, KTRAP_FRAME_PreviousMode(%rbp) mov %al, KTRAP_FRAME_PreviousMode(%rbp)
/* Skip swapgs as the interrupt originated from kernel mode */ /* Skip swapgs as the interrupt originated from kernel mode */
jz UserMode\Type\Vector jz Dispatch\Type\Vector
swapgs swapgs
UserMode\Type\Vector: Dispatch\Type\Vector:
/* Set up trap frame pointer for the dispatcher and clear the direction flag */ /* Set up trap frame pointer for the dispatcher and clear the direction flag */
mov %rsp, %rcx mov %rsp, %rcx
cld cld
@@ -150,11 +150,11 @@ UserMode\Type\Vector:
/* Test previous mode and swapgs if needed */ /* Test previous mode and swapgs if needed */
testb $1, KTRAP_FRAME_PreviousMode(%rbp) testb $1, KTRAP_FRAME_PreviousMode(%rbp)
jz KernelModeReturn\Type\Vector jz RestoreState\Type\Vector
cli cli
swapgs swapgs
KernelModeReturn\Type\Vector: RestoreState\Type\Vector:
/* Restore XMM registers */ /* Restore XMM registers */
movdqa KTRAP_FRAME_Xmm0(%rbp), %xmm0 movdqa KTRAP_FRAME_Xmm0(%rbp), %xmm0
movdqa KTRAP_FRAME_Xmm1(%rbp), %xmm1 movdqa KTRAP_FRAME_Xmm1(%rbp), %xmm1

View File

@@ -115,7 +115,7 @@ _Ar\Type\Vector\()Start:
mov KTRAP_FRAME_SegCs(%ebp), %ax mov KTRAP_FRAME_SegCs(%ebp), %ax
and $3, %al and $3, %al
mov %al, KTRAP_FRAME_PreviousMode(%ebp) mov %al, KTRAP_FRAME_PreviousMode(%ebp)
jz KernelMode\Type\Vector jz Dispatch\Type\Vector
/* Load Kernel PB selector into FS */ /* Load Kernel PB selector into FS */
mov $KGDT_R0_PB, %ax mov $KGDT_R0_PB, %ax
@@ -126,16 +126,7 @@ _Ar\Type\Vector\()Start:
mov %ax, %ds mov %ax, %ds
mov %ax, %es mov %ax, %es
jmp UserMode\Type\Vector Dispatch\Type\Vector:
KernelMode\Type\Vector:
/* Save kernel stack pointer (SS:ESP) */
movl %ss, %eax
mov %eax, KTRAP_FRAME_SegSs(%ebp)
lea KTRAP_FRAME_Esp(%ebp), %eax
mov %eax, KTRAP_FRAME_Esp(%ebp)
UserMode\Type\Vector:
/* Push Frame Pointer and clear direction flag */ /* Push Frame Pointer and clear direction flag */
push %esp push %esp
cld cld
@@ -153,10 +144,10 @@ UserMode\Type\Vector:
/* Test previous mode and disable interrupts before user mode return */ /* Test previous mode and disable interrupts before user mode return */
testb $1, KTRAP_FRAME_PreviousMode(%ebp) testb $1, KTRAP_FRAME_PreviousMode(%ebp)
jz KernelModeReturn\Type\Vector jz RestoreState\Type\Vector
cli cli
KernelModeReturn\Type\Vector: RestoreState\Type\Vector:
/* Restore segment selectors */ /* Restore segment selectors */
mov KTRAP_FRAME_SegDs(%ebp), %ds mov KTRAP_FRAME_SegDs(%ebp), %ds
mov KTRAP_FRAME_SegEs(%ebp), %es mov KTRAP_FRAME_SegEs(%ebp), %es