40 #include "debug/Faults.hh"
75 "NMI overwriting M-mode trap handler state");
133 panic(
"Unknown privilege mode %d.", prv);
139 uint64_t _cause =
_code;
141 _cause |= (1L << 63);
188 panic(
"Unknown instruction 0x%08x at pc %s", rsi->machInst,
196 panic(
"Illegal instruction 0x%08x at pc %s: %s", rsi->machInst,
209 panic(
"Illegal floating-point rounding mode 0x%x at pc %s.",
#define DPRINTFS(x, s,...)
Addr instAddr() const
Returns the memory address of the instruction this PC points to.
T * get() const
Directly access the pointer itself without taking a reference.
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invoke(ThreadContext *tc, const StaticInstPtr &inst=nullStaticInstPtr) override
virtual void invokeSE(ThreadContext *tc, const StaticInstPtr &inst)
void invoke(ThreadContext *tc, const StaticInstPtr &inst) override
FaultName name() const override
bool isNonMaskableInterrupt() const
virtual RegVal trap_value() const
Base class for all RISC-V static instructions.
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
const std::string instName
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
void invokeSE(ThreadContext *tc, const StaticInstPtr &inst) override
virtual void advancePC(PCStateBase &pc_state) const =0
Workload * workload
OS kernel.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual RegVal readMiscReg(RegIndex misc_reg)=0
virtual void setMiscReg(RegIndex misc_reg, RegVal val)=0
virtual const PCStateBase & pcState() const =0
virtual System * getSystemPtr()=0
virtual BaseCPU * getCpuPtr()=0
virtual void syscall(ThreadContext *tc)
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
constexpr T mbits(T val, unsigned first, unsigned last)
Mask off the given bits in place like bits() but without shifting.
#define panic(...)
This implements a cprintf based panic() function.
#define warn_if(cond,...)
Conditional warning macro that checks the supplied condition and only prints a warning if the conditi...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
void schedRelBreak(Tick delta)
Cause the simulator to execute a breakpoint relative to the current tick.