X86: Make the logical destination and destination format work.
This commit is contained in:
parent
ed23a4970b
commit
e9c481ea4a
1 changed files with 4 additions and 8 deletions
|
@ -106,6 +106,8 @@ void MiscRegFile::clear()
|
|||
{
|
||||
// Blank everything. 0 might not be an appropriate value for some things.
|
||||
memset(regVal, 0, NumMiscRegs * sizeof(MiscReg));
|
||||
//Set the local apic DFR to the flat model.
|
||||
regVal[MISCREG_APIC_DESTINATION_FORMAT] = (MiscReg)(-1);
|
||||
}
|
||||
|
||||
MiscReg MiscRegFile::readRegNoEffect(int miscReg)
|
||||
|
@ -151,12 +153,6 @@ MiscReg MiscRegFile::readReg(int miscReg, ThreadContext * tc)
|
|||
case MISCREG_APIC_EOI:
|
||||
panic("Local APIC EOI register unimplemented.\n");
|
||||
break;
|
||||
case MISCREG_APIC_LOGICAL_DESTINATION:
|
||||
panic("Local APIC Logical Destination register unimplemented.\n");
|
||||
break;
|
||||
case MISCREG_APIC_DESTINATION_FORMAT:
|
||||
panic("Local APIC Destination Format register unimplemented.\n");
|
||||
break;
|
||||
case MISCREG_APIC_ERROR_STATUS:
|
||||
regVal[MISCREG_APIC_INTERNAL_STATE] &= ~ULL(0x1);
|
||||
break;
|
||||
|
@ -237,10 +233,10 @@ void MiscRegFile::setReg(int miscReg,
|
|||
panic("Local APIC EOI register unimplemented.\n");
|
||||
break;
|
||||
case MISCREG_APIC_LOGICAL_DESTINATION:
|
||||
panic("Local APIC Logical Destination register unimplemented.\n");
|
||||
newVal = val & 0xFF000000;
|
||||
break;
|
||||
case MISCREG_APIC_DESTINATION_FORMAT:
|
||||
panic("Local APIC Destination Format register unimplemented.\n");
|
||||
newVal = val | 0x0FFFFFFF;
|
||||
break;
|
||||
case MISCREG_APIC_SPURIOUS_INTERRUPT_VECTOR:
|
||||
regVal[MISCREG_APIC_INTERNAL_STATE] &= ~ULL(1 << 1);
|
||||
|
|
Loading…
Reference in a new issue