Go to the documentation of this file.
38 #include "debug/MiscRegs.hh"
39 #include "debug/Timer.hh"
40 #include "params/SparcISA.hh"
67 const SparcISAParams *
124 memset(
tpc, 0,
sizeof(
tpc));
127 memset(
tt, 0,
sizeof(
tt));
167 panic(
"Tick comparison event active when clearing the ISA object.\n");
192 return (uint64_t)
hpstate.hpriv |
194 (uint64_t)
pstate.priv << 2 |
195 (uint64_t)
pstate.am << 3 |
198 bits((uint64_t)
tl,2,0) << 16 |
217 panic(
"PCR not implemented\n");
219 panic(
"PIC not implemented\n");
241 panic(
"Priviliged access to tick registers not implemented\n");
327 panic(
"Miscellaneous register %d not implemented\n", miscReg);
343 DPRINTF(Timer,
"Instruction Count when TICK read: %#X stick=%#X\n",
352 panic(
"Performance Instrumentation not impl\n");
355 panic(
"Can read from softint clr/set\n");
399 panic(
"PCR not implemented\n");
401 panic(
"PIC not implemented\n");
432 panic(
"Priviliged access to tick regesiters not implemented\n");
491 DPRINTF(MiscRegs,
"FSR written with: %#x\n",
fsr);
556 panic(
"Miscellaneous register %d not implemented\n", miscReg);
678 Tick tick_cmp = 0, stick_cmp = 0, hstick_cmp = 0;
742 Tick tick_cmp = 0, stick_cmp = 0, hstick_cmp = 0;
764 SparcISAParams::create()
bool scheduled() const
Determine if the current event is scheduled.
@ MISCREG_QUEUE_CPU_MONDO_TAIL
static const int NumWindowedRegs
#define UNSERIALIZE_SCALAR(scalar)
STickCompareEvent * sTickCompare
EventWrapper< ISA, &ISA::processSTickCompare > STickCompareEvent
static const PSTATE PstateMask
uint64_t Tick
Tick count type.
void postInterrupt(ThreadID tid, int int_num, int index)
@ MISCREG_FSR
Floating Point Status Register.
const Params * params() const
@ MISCREG_QUEUE_DEV_MONDO_HEAD
@ MISCREG_TPC
Privilged Registers.
T mbits(T val, int first, int last)
Mask off the given bits in place like bits() but without shifting.
Tick when() const
Get the time that the event is scheduled.
void setFSReg(int miscReg, RegVal val)
@ MISCREG_QUEUE_DEV_MONDO_TAIL
HPSTATE hpstate
Hyperprivileged Registers.
RegVal readMiscRegNoEffect(int miscReg) const
void installGlobals(int gl, int offset)
uint64_t fsr
Floating point misc registers.
void schedule(Event &event, Tick when)
void setMiscRegNoEffect(int miscReg, RegVal val)
RegVal readMiscReg(int miscReg)
static PSTATE buildPstateMask()
void serialize(CheckpointOut &cp) const override
Serialize an object.
@ MISCREG_QUEUE_NRES_ERROR_TAIL
void installWindow(int cwp, int offset)
uint16_t priContext
MMU Internal Registers.
static const int TotalWindowed
void clearInterrupt(ThreadID tid, int int_num, int index)
@ MISCREG_QUEUE_CPU_MONDO_HEAD
#define SERIALIZE_ARRAY(member, size)
@ MISCREG_QUEUE_RES_ERROR_HEAD
void setMiscReg(int miscReg, RegVal val)
static const int TotalGlobals
#define SERIALIZE_SCALAR(scalar)
static const int RegsPerWindow
@ MISCREG_SCRATCHPAD_R0
Scratchpad regiscers.
@ MISCREG_HPSTATE
Hyper privileged registers.
@ MISCREG_ASI
Ancillary State Registers.
#define UNSERIALIZE_ARRAY(member, size)
const SimObjectParams * _params
Cached copy of the object parameters.
@ MISCREG_QUEUE_NRES_ERROR_HEAD
@ MISCREG_QUEUE_RES_ERROR_TAIL
std::ostream CheckpointOut
virtual TheISA::Decoder * getDecoderPtr()=0
HSTickCompareEvent * hSTickCompare
void unserialize(CheckpointIn &cp) override
Unserialize an object.
TickCompareEvent * tickCompare
@ MISCREG_MMU_P_CONTEXT
MMU Internal Registers.
EventWrapper< ISA, &ISA::processTickCompare > TickCompareEvent
RegVal readFSReg(int miscReg)
EventWrapper< ISA, &ISA::processHSTickCompare > HSTickCompareEvent
virtual BaseCPU * getCpuPtr()=0
#define ULL(N)
uint64_t constant
RegIndex intRegMap[TotalInstIntRegs]
#define panic(...)
This implements a cprintf based panic() function.
static const int NumGlobalRegs
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Generated on Wed Sep 30 2020 14:01:59 for gem5 by doxygen 1.8.17