[Zion] Add a shim Floating Point Exception handler.
This commit is contained in:
parent
0b8e2d8268
commit
2a984a93ec
|
@ -130,6 +130,11 @@ extern "C" void interrupt_page_fault(InterruptFrame* frame) {
|
||||||
panic("PF");
|
panic("PF");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" void isr_fpe_fault();
|
||||||
|
extern "C" void interrupt_fpe_fault(InterruptFrame* frame) {
|
||||||
|
panic("Floating point exception");
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" void isr_timer();
|
extern "C" void isr_timer();
|
||||||
extern "C" void interrupt_timer(InterruptFrame*) {
|
extern "C" void interrupt_timer(InterruptFrame*) {
|
||||||
gApicTimer->Calibrate();
|
gApicTimer->Calibrate();
|
||||||
|
@ -178,8 +183,9 @@ extern "C" void interrupt_pci4(InterruptFrame*) {
|
||||||
|
|
||||||
void InitIdt() {
|
void InitIdt() {
|
||||||
gIdt[0] = CreateDescriptor(isr_divide_by_zero);
|
gIdt[0] = CreateDescriptor(isr_divide_by_zero);
|
||||||
gIdt[13] = CreateDescriptor(isr_protection_fault);
|
gIdt[0xD] = CreateDescriptor(isr_protection_fault);
|
||||||
gIdt[14] = CreateDescriptor(isr_page_fault);
|
gIdt[0xE] = CreateDescriptor(isr_page_fault);
|
||||||
|
gIdt[0x13] = CreateDescriptor(isr_fpe_fault);
|
||||||
|
|
||||||
gIdt[0x20] = CreateDescriptor(isr_timer);
|
gIdt[0x20] = CreateDescriptor(isr_timer);
|
||||||
gIdt[0x21] = CreateDescriptor(isr_apic_timer);
|
gIdt[0x21] = CreateDescriptor(isr_apic_timer);
|
||||||
|
|
|
@ -58,6 +58,7 @@ isr_\name:
|
||||||
isr_handler divide_by_zero
|
isr_handler divide_by_zero
|
||||||
isr_handler protection_fault,1
|
isr_handler protection_fault,1
|
||||||
isr_handler page_fault,1
|
isr_handler page_fault,1
|
||||||
|
isr_handler fpe_fault
|
||||||
|
|
||||||
isr_handler timer
|
isr_handler timer
|
||||||
isr_handler apic_timer
|
isr_handler apic_timer
|
||||||
|
|
Loading…
Reference in New Issue