mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
kernel/idt: Fix ExceptionHandlerStub setting fs & gs to 0
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
b471645743
commit
95a8d6fb6f
@ -139,10 +139,14 @@ namespace InterruptDescriptorTable
|
||||
"pushq %r14\n"
|
||||
"pushq %r15\n"
|
||||
|
||||
"movq %ds, %rax\n pushq %rax\n"
|
||||
"movq %es, %rax\n pushq %rax\n"
|
||||
"movq %fs, %rax\n pushq %rax\n"
|
||||
"movq %gs, %rax\n pushq %rax\n"
|
||||
// "movq %ds, %rax\n pushq %rax\n"
|
||||
// "movq %es, %rax\n pushq %rax\n"
|
||||
// "movq %fs, %rax\n pushq %rax\n"
|
||||
// "movq %gs, %rax\n pushq %rax\n"
|
||||
"pushq %rax\n"
|
||||
"pushq %rax\n"
|
||||
"pushq %rax\n"
|
||||
"pushq %rax\n"
|
||||
|
||||
"movq %dr7, %rax\n pushq %rax\n"
|
||||
"movq %dr6, %rax\n pushq %rax\n"
|
||||
@ -173,10 +177,14 @@ namespace InterruptDescriptorTable
|
||||
"popq %rax\n movq %rax, %dr6\n"
|
||||
"popq %rax\n movq %rax, %dr7\n"
|
||||
|
||||
"popq %rax\n movq %rax, %gs\n"
|
||||
"popq %rax\n movq %rax, %fs\n"
|
||||
"popq %rax\n movq %rax, %es\n"
|
||||
"popq %rax\n movq %rax, %ds\n"
|
||||
"popq %rax\n"
|
||||
"popq %rax\n"
|
||||
"popq %rax\n"
|
||||
"popq %rax\n"
|
||||
// "popq %rax\n movq %rax, %gs\n"
|
||||
// "popq %rax\n movq %rax, %fs\n"
|
||||
// "popq %rax\n movq %rax, %es\n"
|
||||
// "popq %rax\n movq %rax, %ds\n"
|
||||
|
||||
"popq %r15\n"
|
||||
"popq %r14\n"
|
||||
@ -273,13 +281,13 @@ namespace InterruptDescriptorTable
|
||||
/* TODO: Add advanced check so we won't update the cr3 when not needed */
|
||||
|
||||
"movq %cr3, %rax\n pushq %rax\n" /* Push opt */
|
||||
"pushq %rax\n" /* Push ppt */
|
||||
"pushq %rax\n" /* Push ppt */
|
||||
|
||||
"movq %rsp, %rdi\n"
|
||||
"call SchedulerInterruptHandler\n"
|
||||
|
||||
"popq %rax\n movq %rax, %cr3\n" /* Restore to ppt */
|
||||
"popq %rax\n" /* Pop opt */
|
||||
"popq %rax\n" /* Pop opt */
|
||||
|
||||
"popq %r15\n"
|
||||
"popq %r14\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user