|
gem5 [DEVELOP-FOR-25.0]
|
#include <faults.hh>
Protected Member Functions | |
| RiscvFault (FaultName n, FaultType ft, ExceptionCode c) | |
| FaultName | name () const override |
| bool | isInterrupt () const |
| bool | isNonMaskableInterrupt () const |
| bool | isResumableNonMaskableInterrupt (ISA *isa) 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 |
Definition at line 166 of file faults.hh.
References _code, _fault_type, _name, gem5::RiscvISA::c, and gem5::ArmISA::n.
Referenced by gem5::RiscvISA::AddressFault::AddressFault(), gem5::RiscvISA::BreakpointFault::BreakpointFault(), gem5::RiscvISA::InstFault::InstFault(), gem5::RiscvISA::InterruptFault::InterruptFault(), gem5::RiscvISA::NonMaskableInterruptFault::NonMaskableInterruptFault(), and gem5::RiscvISA::SyscallFault::SyscallFault().
|
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::ThreadContext::contextId(), DPRINTFS, exception(), gem5::FullSystem, gem5::ThreadContext::getCpuPtr(), gem5::ThreadContext::getIsaPtr(), invokeSE(), isInterrupt(), isNonMaskableInterrupt(), isResumableNonMaskableInterrupt(), gem5::RiscvISA::MISCREG_ISA, gem5::RiscvISA::MISCREG_MCAUSE, gem5::RiscvISA::MISCREG_MEDELEG, gem5::RiscvISA::MISCREG_MEPC, gem5::RiscvISA::MISCREG_MIDELEG, gem5::RiscvISA::MISCREG_MNCAUSE, gem5::RiscvISA::MISCREG_MNEPC, gem5::RiscvISA::MISCREG_MNSTATUS, 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(), and isResumableNonMaskableInterrupt().
|
inlineprotected |
Definition at line 176 of file faults.hh.
References gem5::RiscvISA::ISA::enableSmrnmi(), and isNonMaskableInterrupt().
Referenced by invoke().
|
inlineoverrideprotectedvirtual |
Implements gem5::FaultBase.
Definition at line 170 of file faults.hh.
References _name.
Referenced by invoke(), invokeSE(), and gem5::RiscvISA::UnimplementedFault::UnimplementedFault().
|
inlineprotectedvirtual |
Reimplemented in gem5::RiscvISA::AddressFault, gem5::RiscvISA::BreakpointFault, and gem5::RiscvISA::InstFault.
Definition at line 181 of file faults.hh.
Referenced by invoke().
|
protected |
Definition at line 164 of file faults.hh.
Referenced by exception(), invoke(), RiscvFault(), and gem5::RiscvISA::SyscallFault::SyscallFault().
|
protected |
Definition at line 163 of file faults.hh.
Referenced by isInterrupt(), isNonMaskableInterrupt(), and RiscvFault().
|
protected |
Definition at line 162 of file faults.hh.
Referenced by name(), and RiscvFault().