Go to the documentation of this file.
42 #include "debug/MatRegs.hh"
43 #include "debug/Timer.hh"
44 #include "params/SparcISA.hh"
242 for (
int y = 1; y < 8; y++) {
251 for (
int y = 16; y < 32; y++) {
332 memset(
tpc, 0,
sizeof(
tpc));
335 memset(
tt, 0,
sizeof(
tt));
375 panic(
"Tick comparison event active when clearing the ISA object.\n");
400 return (uint64_t)
hpstate.hpriv |
402 (uint64_t)
pstate.priv << 2 |
403 (uint64_t)
pstate.am << 3 |
406 bits((uint64_t)
tl,2,0) << 16 |
425 panic(
"PCR not implemented\n");
427 panic(
"PIC not implemented\n");
449 panic(
"Priviliged access to tick registers not implemented\n");
535 panic(
"Miscellaneous register %d not implemented\n", idx);
551 DPRINTF(Timer,
"Instruction Count when TICK read: %#X stick=%#X\n",
560 panic(
"Performance Instrumentation not impl\n");
563 panic(
"Can read from softint clr/set\n");
607 panic(
"PCR not implemented\n");
609 panic(
"PIC not implemented\n");
640 panic(
"Priviliged access to tick regesiters not implemented\n");
699 DPRINTF(MiscRegs,
"FSR written with: %#x\n",
fsr);
764 panic(
"Miscellaneous register %d not implemented\n", idx);
886 Tick tick_cmp = 0, stick_cmp = 0, hstick_cmp = 0;
950 Tick tick_cmp = 0, stick_cmp = 0, hstick_cmp = 0;
@ MISCREG_ASI
Ancillary State Registers.
constexpr RegClass miscRegClass(MiscRegClass, MiscRegClassName, NumMiscRegs, debug::MiscRegs)
static const int TotalWindowed
uint64_t fsr
Floating point misc registers.
Tick when() const
Get the time that the event is scheduled.
void installWindow(int cwp, int offset)
constexpr RegClass intRegClass
#define UNSERIALIZE_SCALAR(scalar)
@ VecElemClass
Vector Register Native Elem lane.
constexpr char VecRegClassName[]
void setFSReg(int miscReg, RegVal val)
virtual RegVal getReg(const RegId ®) const
@ MISCREG_QUEUE_DEV_MONDO_HEAD
@ CCRegClass
Condition-code register.
virtual const PCStateBase & pcState() const =0
constexpr char VecPredRegClassName[]
HSTickCompareEvent * hSTickCompare
@ MISCREG_QUEUE_NRES_ERROR_HEAD
RegVal readFSReg(int miscReg)
void schedule(Event &event, Tick when)
void serialize(CheckpointOut &cp) const override
Serialize an object.
constexpr T mbits(T val, unsigned first, unsigned last)
Mask off the given bits in place like bits() but without shifting.
void copyRegsFrom(ThreadContext *src) override
@ MISCREG_HPSTATE
Hyper privileged registers.
void installGlobals(int gl, int offset)
constexpr uint64_t mask(unsigned nbits)
Generate a 64-bit mask of 'nbits' 1s, right justified.
static const int NumGlobalRegs
void unserialize(CheckpointIn &cp) override
Unserialize an object.
MemberEventWrapper<&ISA::processHSTickCompare > HSTickCompareEvent
RegVal readMiscRegNoEffect(RegIndex idx) const override
ThreadContext is the external interface to all thread state for anything outside of the CPU.
@ MatRegClass
Matrix Register.
static const int RegsPerWindow
virtual InstDecoder * getDecoderPtr()=0
uint64_t Tick
Tick count type.
@ MISCREG_QUEUE_DEV_MONDO_TAIL
RegVal readMiscReg(RegIndex idx) override
void clearInterrupt(ThreadID tid, int int_num, int index)
static void copyMiscRegs(ThreadContext *src, ThreadContext *dest)
@ MISCREG_QUEUE_CPU_MONDO_TAIL
constexpr char MatRegClassName[]
TickCompareEvent * tickCompare
@ MISCREG_QUEUE_RES_ERROR_HEAD
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
#define SERIALIZE_ARRAY(member, size)
HPSTATE hpstate
Hyperprivileged Registers.
virtual RegVal readMiscRegNoEffect(RegIndex misc_reg) const =0
constexpr char VecElemClassName[]
void postInterrupt(ThreadID tid, int int_num, int index)
#define SERIALIZE_SCALAR(scalar)
uint16_t priContext
MMU Internal Registers.
constexpr char CCRegClassName[]
constexpr RegClass vecRegClass
constexpr RegClass flatIntRegClass
static const int TotalGlobals
@ MISCREG_QUEUE_CPU_MONDO_HEAD
@ MISCREG_QUEUE_NRES_ERROR_TAIL
MemberEventWrapper<&ISA::processTickCompare > TickCompareEvent
constexpr RegClass vecElemClass
#define UNSERIALIZE_ARRAY(member, size)
@ MISCREG_FSR
Floating Point Status Register.
virtual void setMiscReg(RegIndex misc_reg, RegVal val)=0
void setMiscRegNoEffect(RegIndex idx, RegVal val) override
std::ostream CheckpointOut
virtual BaseCPU * getCpuPtr()=0
static const int NumWindowedRegs
void setMiscReg(RegIndex idx, RegVal val) override
@ VecRegClass
Vector Register.
RegIndex intRegMap[TotalInstIntRegs]
constexpr RegClass vecPredRegClass
constexpr RegClass floatRegClass(FloatRegClass, FloatRegClassName, float_reg::NumRegs, debug::FloatRegs)
@ MISCREG_TPC
Privilged Registers.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
MemberEventWrapper<&ISA::processSTickCompare > STickCompareEvent
constexpr RegClass matRegClass
STickCompareEvent * sTickCompare
static const PSTATE PstateMask
static PSTATE buildPstateMask()
constexpr RegClass ccRegClass
@ MISCREG_MMU_P_CONTEXT
MMU Internal Registers.
bool scheduled() const
Determine if the current event is scheduled.
@ MISCREG_SCRATCHPAD_R0
Scratchpad regiscers.
Register ID: describe an architectural register with its class and index.
#define panic(...)
This implements a cprintf based panic() function.
virtual void setMiscRegNoEffect(RegIndex misc_reg, RegVal val)=0
@ MISCREG_QUEUE_RES_ERROR_TAIL
virtual void setReg(const RegId ®, RegVal val)
Generated on Sun Jul 30 2023 01:56:46 for gem5 by doxygen 1.8.17