gem5
v20.1.0.0
|
#include <faults.hh>
Classes | |
struct | FaultVals |
Public Types | |
enum | PrivilegeLevel { U, User = U, P, Privileged = P, H, Hyperprivileged = H, NumLevels, SH = -1, ShouldntHappen = SH } |
using | PrivilegeLevelSpec = std::array< PrivilegeLevel, NumLevels > |
Public Member Functions | |
void | invoke (ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr) |
virtual TrapType | trapType ()=0 |
virtual FaultPriority | priority ()=0 |
virtual FaultStat & | countStat ()=0 |
virtual PrivilegeLevel | getNextLevel (PrivilegeLevel current)=0 |
Public Member Functions inherited from FaultBase | |
virtual FaultName | name () const =0 |
virtual | ~FaultBase () |
using SparcISA::SparcFaultBase::PrivilegeLevelSpec = std::array<PrivilegeLevel, NumLevels> |
|
pure virtual |
Implemented in SparcISA::SparcFault< T >, SparcISA::SparcFault< TagOverflow >, SparcISA::SparcFault< InstructionInvalidTSBEntry >, SparcISA::SparcFault< PrivilegedOpcode >, SparcISA::SparcFault< REDStateException >, SparcISA::SparcFault< HstickMatch >, SparcISA::SparcFault< InstructionBreakpoint >, SparcISA::SparcFault< VecDisabled >, SparcISA::SparcFault< StoreError >, SparcISA::SparcFault< FpDisabled >, SparcISA::SparcFault< DataRealTranslationMiss >, SparcISA::SparcFault< PrivilegedAction >, SparcISA::SparcFault< FpExceptionIEEE754 >, SparcISA::SparcFault< InterruptLevelN >, SparcISA::SparcFault< MemAddressNotAligned >, SparcISA::SparcFault< InstructionAccessException >, SparcISA::SparcFault< InstructionRealTranslationMiss >, SparcISA::SparcFault< FastInstructionAccessMMUMiss >, SparcISA::SparcFault< ExternallyInitiatedReset >, SparcISA::SparcFault< TrapInstruction >, SparcISA::SparcFault< DevMondo >, SparcISA::SparcFault< STDFMemAddressNotAligned >, SparcISA::SparcFault< CleanWindow >, SparcISA::SparcFault< LDQFMemAddressNotAligned >, SparcISA::SparcFault< FastDataAccessProtection >, SparcISA::SparcFault< DivisionByZero >, SparcISA::SparcFault< SpillNNormal >, SparcISA::SparcFault< DataAccessError >, SparcISA::SparcFault< IllegalInstruction >, SparcISA::SparcFault< SoftwareInitiatedReset >, SparcISA::SparcFault< DataInvalidTSBEntry >, SparcISA::SparcFault< InstructionAccessError >, SparcISA::SparcFault< FpExceptionOther >, SparcISA::SparcFault< PowerOnReset >, SparcISA::SparcFault< FillNOther >, SparcISA::SparcFault< DataAccessProtection >, SparcISA::SparcFault< InternalProcessorError >, SparcISA::SparcFault< ResumableError >, SparcISA::SparcFault< PAWatchpoint >, SparcISA::SparcFault< InterruptVector >, SparcISA::SparcFault< TrapLevelZero >, SparcISA::SparcFault< SpillNOther >, SparcISA::SparcFault< DataAccessException >, SparcISA::SparcFault< FillNNormal >, SparcISA::SparcFault< FastDataAccessMMUMiss >, SparcISA::SparcFault< VAWatchpoint >, SparcISA::SparcFault< WatchDogReset >, SparcISA::SparcFault< STQFMemAddressNotAligned >, SparcISA::SparcFault< LDDFMemAddressNotAligned >, and SparcISA::SparcFault< CpuMondo >.
|
pure virtual |
Implemented in SparcISA::SparcFault< T >, SparcISA::SparcFault< TagOverflow >, SparcISA::SparcFault< InstructionInvalidTSBEntry >, SparcISA::SparcFault< PrivilegedOpcode >, SparcISA::SparcFault< REDStateException >, SparcISA::SparcFault< HstickMatch >, SparcISA::SparcFault< InstructionBreakpoint >, SparcISA::SparcFault< VecDisabled >, SparcISA::SparcFault< StoreError >, SparcISA::SparcFault< FpDisabled >, SparcISA::SparcFault< DataRealTranslationMiss >, SparcISA::SparcFault< PrivilegedAction >, SparcISA::SparcFault< FpExceptionIEEE754 >, SparcISA::SparcFault< InterruptLevelN >, SparcISA::SparcFault< MemAddressNotAligned >, SparcISA::SparcFault< InstructionAccessException >, SparcISA::SparcFault< InstructionRealTranslationMiss >, SparcISA::SparcFault< FastInstructionAccessMMUMiss >, SparcISA::SparcFault< ExternallyInitiatedReset >, SparcISA::SparcFault< TrapInstruction >, SparcISA::SparcFault< DevMondo >, SparcISA::SparcFault< STDFMemAddressNotAligned >, SparcISA::SparcFault< CleanWindow >, SparcISA::SparcFault< LDQFMemAddressNotAligned >, SparcISA::SparcFault< FastDataAccessProtection >, SparcISA::SparcFault< DivisionByZero >, SparcISA::SparcFault< SpillNNormal >, SparcISA::SparcFault< DataAccessError >, SparcISA::SparcFault< IllegalInstruction >, SparcISA::SparcFault< SoftwareInitiatedReset >, SparcISA::SparcFault< DataInvalidTSBEntry >, SparcISA::SparcFault< InstructionAccessError >, SparcISA::SparcFault< FpExceptionOther >, SparcISA::SparcFault< PowerOnReset >, SparcISA::SparcFault< FillNOther >, SparcISA::SparcFault< DataAccessProtection >, SparcISA::SparcFault< InternalProcessorError >, SparcISA::SparcFault< ResumableError >, SparcISA::SparcFault< PAWatchpoint >, SparcISA::SparcFault< InterruptVector >, SparcISA::SparcFault< TrapLevelZero >, SparcISA::SparcFault< SpillNOther >, SparcISA::SparcFault< DataAccessException >, SparcISA::SparcFault< FillNNormal >, SparcISA::SparcFault< FastDataAccessMMUMiss >, SparcISA::SparcFault< VAWatchpoint >, SparcISA::SparcFault< WatchDogReset >, SparcISA::SparcFault< STQFMemAddressNotAligned >, SparcISA::SparcFault< LDDFMemAddressNotAligned >, and SparcISA::SparcFault< CpuMondo >.
|
virtual |
Reimplemented from FaultBase.
Reimplemented in SparcISA::TrapInstruction, SparcISA::FillNNormal, SparcISA::SpillNNormal, SparcISA::FastDataAccessMMUMiss, SparcISA::FastInstructionAccessMMUMiss, and SparcISA::PowerOnReset.
Definition at line 497 of file faults.cc.
References SparcISA::doNormalFault(), SparcISA::doREDFault(), SparcISA::enterREDState(), FullSystem, SparcISA::getHyperVector(), SparcISA::getPrivVector(), SparcISA::getREDVector(), FaultBase::invoke(), X86ISA::level, SparcISA::MaxPTL, SparcISA::MaxTL, SparcISA::MISCREG_HPSTATE, SparcISA::MISCREG_PSTATE, SparcISA::MISCREG_TL, SparcISA::MISCREG_TT, panic, MipsISA::pc, ThreadContext::pcState(), ThreadContext::readMiscRegNoEffect(), and MipsISA::tl.
Referenced by Iob::generateIpi().
|
pure virtual |
Implemented in SparcISA::InterruptLevelN, SparcISA::SparcFault< T >, SparcISA::SparcFault< TagOverflow >, SparcISA::SparcFault< InstructionInvalidTSBEntry >, SparcISA::SparcFault< PrivilegedOpcode >, SparcISA::SparcFault< REDStateException >, SparcISA::SparcFault< HstickMatch >, SparcISA::SparcFault< InstructionBreakpoint >, SparcISA::SparcFault< VecDisabled >, SparcISA::SparcFault< StoreError >, SparcISA::SparcFault< FpDisabled >, SparcISA::SparcFault< DataRealTranslationMiss >, SparcISA::SparcFault< PrivilegedAction >, SparcISA::SparcFault< FpExceptionIEEE754 >, SparcISA::SparcFault< InterruptLevelN >, SparcISA::SparcFault< MemAddressNotAligned >, SparcISA::SparcFault< InstructionAccessException >, SparcISA::SparcFault< InstructionRealTranslationMiss >, SparcISA::SparcFault< FastInstructionAccessMMUMiss >, SparcISA::SparcFault< ExternallyInitiatedReset >, SparcISA::SparcFault< TrapInstruction >, SparcISA::SparcFault< DevMondo >, SparcISA::SparcFault< STDFMemAddressNotAligned >, SparcISA::SparcFault< CleanWindow >, SparcISA::SparcFault< LDQFMemAddressNotAligned >, SparcISA::SparcFault< FastDataAccessProtection >, SparcISA::SparcFault< DivisionByZero >, SparcISA::SparcFault< SpillNNormal >, SparcISA::SparcFault< DataAccessError >, SparcISA::SparcFault< IllegalInstruction >, SparcISA::SparcFault< SoftwareInitiatedReset >, SparcISA::SparcFault< DataInvalidTSBEntry >, SparcISA::SparcFault< InstructionAccessError >, SparcISA::SparcFault< FpExceptionOther >, SparcISA::SparcFault< PowerOnReset >, SparcISA::SparcFault< FillNOther >, SparcISA::SparcFault< DataAccessProtection >, SparcISA::SparcFault< InternalProcessorError >, SparcISA::SparcFault< ResumableError >, SparcISA::SparcFault< PAWatchpoint >, SparcISA::SparcFault< InterruptVector >, SparcISA::SparcFault< TrapLevelZero >, SparcISA::SparcFault< SpillNOther >, SparcISA::SparcFault< DataAccessException >, SparcISA::SparcFault< FillNNormal >, SparcISA::SparcFault< FastDataAccessMMUMiss >, SparcISA::SparcFault< VAWatchpoint >, SparcISA::SparcFault< WatchDogReset >, SparcISA::SparcFault< STQFMemAddressNotAligned >, SparcISA::SparcFault< LDDFMemAddressNotAligned >, and SparcISA::SparcFault< CpuMondo >.
|
pure virtual |
Implemented in SparcISA::EnumeratedFault< T >, SparcISA::EnumeratedFault< InterruptLevelN >, SparcISA::EnumeratedFault< TrapInstruction >, SparcISA::EnumeratedFault< SpillNNormal >, SparcISA::EnumeratedFault< FillNOther >, SparcISA::EnumeratedFault< SpillNOther >, SparcISA::EnumeratedFault< FillNNormal >, SparcISA::SparcFault< T >, SparcISA::SparcFault< TagOverflow >, SparcISA::SparcFault< InstructionInvalidTSBEntry >, SparcISA::SparcFault< PrivilegedOpcode >, SparcISA::SparcFault< REDStateException >, SparcISA::SparcFault< HstickMatch >, SparcISA::SparcFault< InstructionBreakpoint >, SparcISA::SparcFault< VecDisabled >, SparcISA::SparcFault< StoreError >, SparcISA::SparcFault< FpDisabled >, SparcISA::SparcFault< DataRealTranslationMiss >, SparcISA::SparcFault< PrivilegedAction >, SparcISA::SparcFault< FpExceptionIEEE754 >, SparcISA::SparcFault< InterruptLevelN >, SparcISA::SparcFault< MemAddressNotAligned >, SparcISA::SparcFault< InstructionAccessException >, SparcISA::SparcFault< InstructionRealTranslationMiss >, SparcISA::SparcFault< FastInstructionAccessMMUMiss >, SparcISA::SparcFault< ExternallyInitiatedReset >, SparcISA::SparcFault< TrapInstruction >, SparcISA::SparcFault< DevMondo >, SparcISA::SparcFault< STDFMemAddressNotAligned >, SparcISA::SparcFault< CleanWindow >, SparcISA::SparcFault< LDQFMemAddressNotAligned >, SparcISA::SparcFault< FastDataAccessProtection >, SparcISA::SparcFault< DivisionByZero >, SparcISA::SparcFault< SpillNNormal >, SparcISA::SparcFault< DataAccessError >, SparcISA::SparcFault< IllegalInstruction >, SparcISA::SparcFault< SoftwareInitiatedReset >, SparcISA::SparcFault< DataInvalidTSBEntry >, SparcISA::SparcFault< InstructionAccessError >, SparcISA::SparcFault< FpExceptionOther >, SparcISA::SparcFault< PowerOnReset >, SparcISA::SparcFault< FillNOther >, SparcISA::SparcFault< DataAccessProtection >, SparcISA::SparcFault< InternalProcessorError >, SparcISA::SparcFault< ResumableError >, SparcISA::SparcFault< PAWatchpoint >, SparcISA::SparcFault< InterruptVector >, SparcISA::SparcFault< TrapLevelZero >, SparcISA::SparcFault< SpillNOther >, SparcISA::SparcFault< DataAccessException >, SparcISA::SparcFault< FillNNormal >, SparcISA::SparcFault< FastDataAccessMMUMiss >, SparcISA::SparcFault< VAWatchpoint >, SparcISA::SparcFault< WatchDogReset >, SparcISA::SparcFault< STQFMemAddressNotAligned >, SparcISA::SparcFault< LDDFMemAddressNotAligned >, and SparcISA::SparcFault< CpuMondo >.