gem5 v24.0.0.0
|
#include <faults.hh>
Protected Member Functions | |
RiscvFault (FaultName n, FaultType ft, ExceptionCode c) | |
FaultName | name () const override |
bool | isInterrupt () const |
bool | isNonMaskableInterrupt () const |
ExceptionCode | exception () const |
virtual RegVal | trap_value () const |
virtual void | invokeSE (ThreadContext *tc, const StaticInstPtr &inst) |
void | invoke (ThreadContext *tc, const StaticInstPtr &inst) override |
Protected Attributes | |
const FaultName | _name |
const FaultType | _fault_type |
ExceptionCode | _code |
Additional Inherited Members | |
Public Member Functions inherited from gem5::FaultBase | |
virtual | ~FaultBase () |
|
inlineprotected |
|
inlineprotected |
|
overrideprotectedvirtual |
Reimplemented from gem5::FaultBase.
Definition at line 60 of file faults.cc.
References _code, gem5::X86ISA::addr, gem5::PCStateBase::as(), gem5::bits(), gem5::RiscvISA::CAUSE_INTERRUPT_MASKS, gem5::RiscvISA::ISA::clearLoadReservation(), gem5::ThreadContext::contextId(), DPRINTFS, exception(), gem5::FullSystem, gem5::ThreadContext::getCpuPtr(), gem5::ThreadContext::getIsaPtr(), gem5::PCStateBase::instAddr(), invokeSE(), isInterrupt(), isNonMaskableInterrupt(), gem5::RiscvISA::MISCREG_ISA, gem5::RiscvISA::MISCREG_MCAUSE, gem5::RiscvISA::MISCREG_MEDELEG, gem5::RiscvISA::MISCREG_MEPC, gem5::RiscvISA::MISCREG_MIDELEG, gem5::RiscvISA::MISCREG_MTVAL, gem5::RiscvISA::MISCREG_MTVEC, gem5::RiscvISA::MISCREG_NMIE, gem5::RiscvISA::MISCREG_NMIVEC, gem5::RiscvISA::MISCREG_PRV, gem5::RiscvISA::MISCREG_SCAUSE, gem5::RiscvISA::MISCREG_SEDELEG, gem5::RiscvISA::MISCREG_SEPC, gem5::RiscvISA::MISCREG_SIDELEG, gem5::RiscvISA::MISCREG_STATUS, gem5::RiscvISA::MISCREG_STVAL, gem5::RiscvISA::MISCREG_STVEC, gem5::RiscvISA::MISCREG_UCAUSE, gem5::RiscvISA::MISCREG_UEPC, gem5::RiscvISA::MISCREG_UTVAL, gem5::RiscvISA::MISCREG_UTVEC, name(), panic, gem5::ThreadContext::pcState(), gem5::RiscvISA::PRV_M, gem5::RiscvISA::PRV_S, gem5::RiscvISA::PRV_U, gem5::ThreadContext::readMiscReg(), gem5::ThreadContext::readMiscRegNoEffect(), gem5::ThreadContext::setMiscReg(), gem5::ArmISA::status, trap_value(), and warn_if.
|
protectedvirtual |
Reimplemented in gem5::RiscvISA::BreakpointFault, gem5::RiscvISA::IllegalFrmFault, gem5::RiscvISA::IllegalInstFault, gem5::RiscvISA::SyscallFault, gem5::RiscvISA::UnimplementedFault, and gem5::RiscvISA::UnknownInstFault.
Definition at line 54 of file faults.cc.
References name(), panic, and gem5::ThreadContext::pcState().
Referenced by invoke().
|
inlineprotected |
Definition at line 171 of file faults.hh.
References _fault_type, and gem5::RiscvISA::INTERRUPT.
Referenced by invoke().
|
inlineprotected |
Definition at line 172 of file faults.hh.
References _fault_type, and gem5::RiscvISA::NON_MASKABLE_INTERRUPT.
Referenced by invoke().
|
inlineoverrideprotectedvirtual |
Implements gem5::FaultBase.
Definition at line 170 of file faults.hh.
References _name.
Referenced by invoke(), and invokeSE().
|
inlineprotectedvirtual |
Reimplemented in gem5::RiscvISA::AddressFault, gem5::RiscvISA::BreakpointFault, and gem5::RiscvISA::InstFault.
Definition at line 177 of file faults.hh.
Referenced by invoke().
|
protected |
Definition at line 164 of file faults.hh.
Referenced by exception(), invoke(), and gem5::RiscvISA::SyscallFault::SyscallFault().
|
protected |
Definition at line 163 of file faults.hh.
Referenced by isInterrupt(), and isNonMaskableInterrupt().
|
protected |