gem5
|
Namespaces | |
Kernel | |
Typedefs | |
typedef uint32_t | TrapType |
typedef uint32_t | FaultPriority |
typedef uint64_t | IntReg |
typedef uint64_t | MiscReg |
typedef float | FloatReg |
typedef uint32_t | FloatRegBits |
typedef uint8_t | CCReg |
typedef uint16_t | RegIndex |
typedef uint32_t | MachInst |
typedef uint64_t | ExtMachInst |
typedef GenericISA::DelaySlotUPCState < MachInst > | PCState |
Functions | |
bool | asiIsBlock (ASI asi) |
bool | asiIsPrimary (ASI asi) |
bool | asiIsSecondary (ASI asi) |
bool | asiIsNucleus (ASI asi) |
bool | asiIsAsIfUser (ASI asi) |
bool | asiIsIO (ASI asi) |
bool | asiIsReal (ASI asi) |
bool | asiIsLittle (ASI asi) |
bool | asiIsTwin (ASI asi) |
bool | asiIsPartialStore (ASI asi) |
bool | asiIsFloatingLoad (ASI asi) |
bool | asiIsNoFault (ASI asi) |
bool | asiIsScratchPad (ASI asi) |
bool | asiIsCmt (ASI asi) |
bool | asiIsQueue (ASI asi) |
bool | asiIsInterrupt (ASI asi) |
bool | asiIsMmu (ASI asi) |
bool | asiIsUnPriv (ASI asi) |
bool | asiIsPriv (ASI asi) |
bool | asiIsHPriv (ASI asi) |
bool | asiIsReg (ASI asi) |
bool | asiIsSparcError (ASI asi) |
bool | asiIsDtlb (ASI) |
void | enterREDState (ThreadContext *tc) |
This causes the thread context to enter RED state. More... | |
void | doREDFault (ThreadContext *tc, TrapType tt) |
This sets everything up for a RED state trap except for actually jumping to the handler. More... | |
void | doNormalFault (ThreadContext *tc, TrapType tt, bool gotoHpriv) |
This sets everything up for a normal trap except for actually jumping to the handler. More... | |
void | getREDVector (MiscReg TT, Addr &PC, Addr &NPC) |
void | getHyperVector (ThreadContext *tc, Addr &PC, Addr &NPC, MiscReg TT) |
void | getPrivVector (ThreadContext *tc, Addr &PC, Addr &NPC, MiscReg TT, MiscReg TL) |
static PSTATE | buildPstateMask () |
StaticInstPtr | decodeInst (ExtMachInst) |
SyscallReturn | getresuidFunc (SyscallDesc *desc, int num, Process *p, ThreadContext *tc) |
static SyscallReturn | unameFunc (SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc) |
Target uname() handler. More... | |
template<class XC > | |
void | handleLockedSnoop (XC *xc, PacketPtr pkt, Addr cacheBlockMask) |
template<class XC > | |
void | handleLockedRead (XC *xc, Request *req) |
template<class XC > | |
void | handleLockedSnoopHit (XC *xc) |
template<class XC > | |
bool | handleLockedWrite (XC *xc, Request *req, Addr cacheBlockMask) |
BitUnion64 (HPSTATE) Bitfield< 0 > tlz | |
EndBitUnion (HPSTATE) BitUnion16(PSTATE) Bitfield< 1 > ie | |
EndBitUnion (PSTATE) struct STS | |
Cycles | handleIprRead (ThreadContext *xc, Packet *pkt) |
Cycles | handleIprWrite (ThreadContext *xc, Packet *pkt) |
template<class TC > | |
unsigned | getVirtProcNum (TC *tc) |
template<class TC > | |
unsigned | getTargetThread (TC *tc) |
uint64_t | getArgument (ThreadContext *tc, int &number, uint16_t size, bool fp) |
void | copyMiscRegs (ThreadContext *src, ThreadContext *dest) |
void | copyRegs (ThreadContext *src, ThreadContext *dest) |
void | skipFunction (ThreadContext *tc) |
void | initCPU (ThreadContext *tc, int cpuId) |
PCState | buildRetPC (const PCState &curPC, const PCState &callPC) |
static bool | inUserMode (ThreadContext *tc) |
template<class TC > | |
void | zeroRegisters (TC *tc) |
Function to insure ISA semantics about 0 registers. More... | |
void | startupCPU (ThreadContext *tc, int cpuId) |
void | advancePC (PCState &pc, const StaticInstPtr &inst) |
uint64_t | getExecutingAsid (ThreadContext *tc) |
Addr | vtophys (Addr vaddr) |
Addr | vtophys (ThreadContext *tc, Addr addr) |
Variables | |
const int | numFillInsts = 32 |
const int | numSpillInsts = 32 |
const MachInst | fillHandler64 [numFillInsts] |
const MachInst | fillHandler32 [numFillInsts] |
const MachInst | spillHandler64 [numSpillInsts] |
const MachInst | spillHandler32 [numSpillInsts] |
static const PSTATE | PstateMask = buildPstateMask() |
const MachInst | NoopMachInst = 0x01000000 |
const Addr | SegKPMEnd = ULL(0xfffffffc00000000) |
const Addr | SegKPMBase = ULL(0xfffffac000000000) |
const Addr | PageShift = 13 |
const Addr | PageBytes = ULL(1) << PageShift |
const Addr | StartVAddrHole = ULL(0x0000800000000000) |
const Addr | EndVAddrHole = ULL(0xFFFF7FFFFFFFFFFF) |
const Addr | VAddrAMask = ULL(0xFFFFFFFF) |
const Addr | PAddrImplMask = ULL(0x000000FFFFFFFFFF) |
const Addr | BytesInPageMask = ULL(0x1FFF) |
const bool | HasUnalignedMemAcc = false |
const bool | CurThreadInfoImplemented = false |
const int | CurThreadInfoReg = -1 |
Bitfield< 2 > | hpriv |
Bitfield< 5 > | red |
Bitfield< 10 > | ibe |
Bitfield< 11 > | id |
Bitfield< 2 > | priv |
Bitfield< 3 > | am |
Bitfield< 4 > | pef |
Bitfield< 7, 6 > | mm |
Bitfield< 8 > | tle |
Bitfield< 9 > | cle |
Bitfield< 10 > | pid0 |
Bitfield< 11 > | pid1 |
const int | NumMiscRegs = MISCREG_NUMMISCREGS |
const int | ZeroReg = 0 |
const int | ReturnAddressReg = 31 |
const int | ReturnValueReg = 8 |
const int | StackPointerReg = 14 |
const int | FramePointerReg = 30 |
const int | SyscallPseudoReturnReg = 9 |
const int | NumIntArchRegs = 32 |
const int | NumIntRegs = (MaxGL + 1) * 8 + NWindows * 16 + NumMicroIntRegs |
const int | NumCCRegs = 0 |
const int | TotalNumRegs = NumIntRegs + NumFloatRegs + NumMiscRegs |
const int | MaxPTL = 2 |
const int | MaxTL = 6 |
const int | MaxGL = 3 |
const int | MaxPGL = 2 |
const int | NWindows = 8 |
const int | NumMicroIntRegs = 9 |
const int | NumFloatRegs = 64 |
const int | NumFloatArchRegs = NumFloatRegs |
typedef uint8_t SparcISA::CCReg |
Definition at line 53 of file registers.hh.
typedef uint64_t SparcISA::ExtMachInst |
typedef uint32_t SparcISA::FaultPriority |
typedef float SparcISA::FloatReg |
Definition at line 49 of file registers.hh.
typedef uint32_t SparcISA::FloatRegBits |
Definition at line 50 of file registers.hh.
typedef uint64_t SparcISA::IntReg |
Definition at line 47 of file registers.hh.
typedef uint32_t SparcISA::MachInst |
typedef uint64_t SparcISA::MiscReg |
Definition at line 48 of file registers.hh.
typedef uint16_t SparcISA::RegIndex |
Definition at line 62 of file registers.hh.
typedef uint32_t SparcISA::TrapType |
enum SparcISA::ASI |
Enumerator | |
---|---|
FP_Reg_Base | |
CC_Reg_Base | |
Misc_Reg_Base | |
Max_Reg_Index |
Definition at line 82 of file registers.hh.
Enumerator | |
---|---|
IT_TRAP_LEVEL_ZERO | |
IT_HINTP | |
IT_INT_VEC | |
IT_CPU_MONDO | |
IT_DEV_MONDO | |
IT_RES_ERROR | |
IT_SOFT_INT | |
NumInterruptTypes |
Definition at line 70 of file isa_traits.hh.
Definition at line 40 of file miscregs.hh.
|
inline |
Definition at line 89 of file utility.hh.
References StaticInst::advancePC().
bool SparcISA::asiIsAsIfUser | ( | ASI | asi | ) |
Definition at line 118 of file asi.cc.
References ASI_AIUP, ASI_AIUP_L, ASI_AIUS, ASI_AIUS_L, ASI_BLK_AIUP, ASI_BLK_AIUP_L, ASI_BLK_AIUS, ASI_BLK_AIUS_L, ASI_LDTX_AIUP, ASI_LDTX_AIUP_L, ASI_LDTX_AIUS, and ASI_LDTX_AIUS_L.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsBlock | ( | ASI | asi | ) |
Definition at line 38 of file asi.cc.
References ASI_BLK_AIUP, ASI_BLK_AIUP_L, ASI_BLK_AIUS, ASI_BLK_AIUS_L, ASI_BLK_P, ASI_BLK_PL, ASI_BLK_S, and ASI_BLK_SL.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsCmt | ( | ASI | asi | ) |
Definition at line 249 of file asi.cc.
References ASI_CMT_PER_STRAND, and ASI_CMT_SHARED.
Referenced by asiIsReg(), and SparcISA::TLB::translateData().
bool SparcISA::asiIsDtlb | ( | ASI | ) |
bool SparcISA::asiIsFloatingLoad | ( | ASI | asi | ) |
Definition at line 220 of file asi.cc.
References ASI_FL16_P, ASI_FL16_PL, ASI_FL16_S, ASI_FL16_SL, ASI_FL8_P, ASI_FL8_PL, ASI_FL8_S, and ASI_FL8_SL.
bool SparcISA::asiIsHPriv | ( | ASI | asi | ) |
Definition at line 298 of file asi.cc.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsInterrupt | ( | ASI | asi | ) |
Definition at line 262 of file asi.cc.
References ASI_SWVR_INTR_RECEIVE, ASI_SWVR_UDB_INTR_R, and ASI_SWVR_UDB_INTR_W.
Referenced by asiIsReg(), and SparcISA::TLB::translateData().
bool SparcISA::asiIsIO | ( | ASI | asi | ) |
Definition at line 135 of file asi.cc.
References ASI_REAL_IO, and ASI_REAL_IO_L.
bool SparcISA::asiIsLittle | ( | ASI | asi | ) |
Definition at line 153 of file asi.cc.
References ASI_AIUP_L, ASI_AIUS_L, ASI_BLK_AIUP_L, ASI_BLK_AIUS_L, ASI_BLK_PL, ASI_BLK_SL, ASI_FL16_PL, ASI_FL16_SL, ASI_FL8_PL, ASI_FL8_SL, ASI_LDTX_AIUP_L, ASI_LDTX_AIUS_L, ASI_LDTX_NL, ASI_LDTX_PL, ASI_LDTX_REAL_L, ASI_LDTX_SL, ASI_LTX_L, ASI_NL, ASI_PL, ASI_PNFL, ASI_PST16_PL, ASI_PST16_SL, ASI_PST32_PL, ASI_PST32_SL, ASI_PST8_PL, ASI_PST8_SL, ASI_REAL_IO_L, ASI_REAL_L, ASI_SL, and ASI_SNFL.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsMmu | ( | ASI | asi | ) |
Definition at line 270 of file asi.cc.
References ASI_DMMU_CTXT_NONZERO_TSB_BASE_PS0, ASI_DMMU_CTXT_ZERO_TSB_BASE_PS0, ASI_IMMU, ASI_IMMU_CTXT_NONZERO_CONFIG, ASI_IMMU_CTXT_ZERO_CONFIG, ASI_IMMU_TSB_PS1_PTR_REG, ASI_ITLB_DATA_IN_REG, ASI_LSU_CONTROL_REG, ASI_MMU, and ASI_TLB_INVALIDATE_ALL.
Referenced by asiIsReg(), and SparcISA::TLB::translateData().
bool SparcISA::asiIsNoFault | ( | ASI | asi | ) |
bool SparcISA::asiIsNucleus | ( | ASI | asi | ) |
Definition at line 109 of file asi.cc.
References ASI_LDTX_N, ASI_LDTX_NL, ASI_N, and ASI_NL.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsPartialStore | ( | ASI | asi | ) |
Definition at line 203 of file asi.cc.
References ASI_PST16_P, ASI_PST16_PL, ASI_PST16_S, ASI_PST16_SL, ASI_PST32_P, ASI_PST32_PL, ASI_PST32_S, ASI_PST32_SL, ASI_PST8_P, ASI_PST8_PL, ASI_PST8_S, and ASI_PST8_SL.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsPrimary | ( | ASI | asi | ) |
Definition at line 51 of file asi.cc.
References ASI_AIUP, ASI_AIUP_L, ASI_BLK_AIUP, ASI_BLK_AIUP_L, ASI_BLK_P, ASI_BLK_PL, ASI_FL16_P, ASI_FL16_PL, ASI_FL8_P, ASI_FL8_PL, ASI_LDTX_AIUP, ASI_LDTX_AIUP_L, ASI_LDTX_P, ASI_LDTX_PL, ASI_P, ASI_PL, ASI_PNF, ASI_PNFL, ASI_PST16_P, ASI_PST16_PL, ASI_PST32_P, ASI_PST32_PL, ASI_PST8_P, and ASI_PST8_PL.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsQueue | ( | ASI | asi | ) |
Definition at line 256 of file asi.cc.
References ASI_QUEUE.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsReal | ( | ASI | asi | ) |
Definition at line 142 of file asi.cc.
References ASI_LDTX_REAL, ASI_LDTX_REAL_L, ASI_REAL, ASI_REAL_IO, ASI_REAL_IO_L, and ASI_REAL_L.
Referenced by SparcISA::FastDataAccessMMUMiss::invoke(), and SparcISA::TLB::translateData().
bool SparcISA::asiIsReg | ( | ASI | asi | ) |
Definition at line 304 of file asi.cc.
References asiIsCmt(), asiIsInterrupt(), asiIsMmu(), asiIsScratchPad(), and asiIsSparcError().
bool SparcISA::asiIsScratchPad | ( | ASI | asi | ) |
Definition at line 242 of file asi.cc.
References ASI_HYP_SCRATCHPAD, and ASI_SCRATCHPAD.
Referenced by asiIsReg(), and SparcISA::TLB::translateData().
bool SparcISA::asiIsSecondary | ( | ASI | asi | ) |
Definition at line 80 of file asi.cc.
References ASI_AIUS, ASI_AIUS_L, ASI_BLK_AIUS, ASI_BLK_AIUS_L, ASI_BLK_S, ASI_BLK_SL, ASI_FL16_S, ASI_FL16_SL, ASI_FL8_S, ASI_FL8_SL, ASI_LDTX_AIUS, ASI_LDTX_AIUS_L, ASI_LDTX_S, ASI_LDTX_SL, ASI_PST16_S, ASI_PST16_SL, ASI_PST32_S, ASI_PST32_SL, ASI_PST8_S, ASI_PST8_SL, ASI_S, ASI_SL, ASI_SNF, and ASI_SNFL.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsSparcError | ( | ASI | asi | ) |
Definition at line 312 of file asi.cc.
References ASI_SPARC_ERROR_EN_REG, and ASI_SPARC_ERROR_STATUS_REG.
Referenced by asiIsReg(), and SparcISA::TLB::translateData().
bool SparcISA::asiIsTwin | ( | ASI | asi | ) |
Definition at line 188 of file asi.cc.
References ASI_LDTX_AIUP, ASI_LDTX_AIUP_L, ASI_LDTX_N, ASI_LDTX_NL, ASI_LDTX_P, ASI_LDTX_PL, ASI_LDTX_S, ASI_LDTX_SL, and ASI_QUEUE.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsUnPriv | ( | ASI | asi | ) |
Definition at line 285 of file asi.cc.
Referenced by SparcISA::TLB::translateData().
SparcISA::BitUnion64 | ( | HPSTATE | ) |
|
static |
Definition at line 47 of file isa.cc.
References ArmISA::mask.
|
inline |
Definition at line 47 of file utility.hh.
References GenericISA::SimplePCState< MachInst >::npc(), GenericISA::SimplePCState< MachInst >::pc(), and GenericISA::DelaySlotUPCState< MachInst >::uEnd().
void SparcISA::copyMiscRegs | ( | ThreadContext * | src, |
ThreadContext * | dest | ||
) |
Definition at line 68 of file utility.cc.
References ArmISA::i, MaxTL, MISCREG_ASI, MISCREG_CWP, MISCREG_FPRS, MISCREG_FSR, MISCREG_GL, MISCREG_HINTP, MISCREG_HPSTATE, MISCREG_HSTICK_CMPR, MISCREG_HTBA, MISCREG_MMU_LSU_CTRL, MISCREG_MMU_P_CONTEXT, MISCREG_MMU_PART_ID, MISCREG_MMU_S_CONTEXT, MISCREG_PIL, MISCREG_PSTATE, MISCREG_QUEUE_CPU_MONDO_HEAD, MISCREG_QUEUE_CPU_MONDO_TAIL, MISCREG_QUEUE_DEV_MONDO_HEAD, MISCREG_QUEUE_DEV_MONDO_TAIL, MISCREG_QUEUE_NRES_ERROR_HEAD, MISCREG_QUEUE_NRES_ERROR_TAIL, MISCREG_QUEUE_RES_ERROR_HEAD, MISCREG_QUEUE_RES_ERROR_TAIL, MISCREG_SCRATCHPAD_R0, MISCREG_SCRATCHPAD_R1, MISCREG_SCRATCHPAD_R2, MISCREG_SCRATCHPAD_R3, MISCREG_SCRATCHPAD_R4, MISCREG_SCRATCHPAD_R5, MISCREG_SCRATCHPAD_R6, MISCREG_SCRATCHPAD_R7, MISCREG_SOFTINT, MISCREG_STICK, MISCREG_STICK_CMPR, MISCREG_STRAND_STS_REG, MISCREG_TBA, MISCREG_TICK, MISCREG_TICK_CMPR, MISCREG_TL, MISCREG_TNPC, MISCREG_TPC, MISCREG_TSTATE, MISCREG_TT, ThreadContext::readMiscRegNoEffect(), ThreadContext::setMiscReg(), ThreadContext::setMiscRegNoEffect(), and MipsISA::tl.
Referenced by copyRegs().
void SparcISA::copyRegs | ( | ThreadContext * | src, |
ThreadContext * | dest | ||
) |
Definition at line 204 of file utility.cc.
References copyMiscRegs(), ArmISA::i, MaxGL, MISCREG_CWP, MISCREG_GL, NumCCRegs, NumFloatArchRegs, NumIntArchRegs, NumMicroIntRegs, NWindows, ThreadContext::pcState(), ThreadContext::readFloatRegBits(), ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), ThreadContext::setFloatRegBits(), ThreadContext::setIntReg(), ThreadContext::setMiscReg(), and X86ISA::x.
StaticInstPtr SparcISA::decodeInst | ( | ExtMachInst | ) |
void SparcISA::doNormalFault | ( | ThreadContext * | tc, |
TrapType | tt, | ||
bool | gotoHpriv | ||
) |
This sets everything up for a normal trap except for actually jumping to the handler.
Definition at line 375 of file faults.cc.
References ArmISA::mask, MaxGL, MaxPGL, MISCREG_ASI, MISCREG_CWP, MISCREG_GL, MISCREG_HPSTATE, MISCREG_HTSTATE, MISCREG_PSTATE, MISCREG_TL, MISCREG_TNPC, MISCREG_TPC, MISCREG_TSTATE, MISCREG_TT, GenericISA::SimplePCState< MachInst >::npc(), AlphaISA::NumIntArchRegs, NWindows, pc, GenericISA::SimplePCState< MachInst >::pc(), ThreadContext::pcState(), ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), replaceBits(), ThreadContext::setMiscReg(), and ThreadContext::setMiscRegNoEffect().
Referenced by SparcISA::SparcFaultBase::invoke(), SparcISA::SpillNNormal::invoke(), and SparcISA::FillNNormal::invoke().
void SparcISA::doREDFault | ( | ThreadContext * | tc, |
TrapType | tt | ||
) |
This sets everything up for a RED state trap except for actually jumping to the handler.
Definition at line 296 of file faults.cc.
References ArmISA::mask, MaxGL, MISCREG_ASI, MISCREG_CWP, MISCREG_GL, MISCREG_HPSTATE, MISCREG_HTSTATE, MISCREG_PSTATE, MISCREG_TL, MISCREG_TNPC, MISCREG_TPC, MISCREG_TSTATE, MISCREG_TT, GenericISA::SimplePCState< MachInst >::npc(), AlphaISA::NumIntArchRegs, NWindows, pc, GenericISA::SimplePCState< MachInst >::pc(), ThreadContext::pcState(), priv, ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), replaceBits(), ThreadContext::setMiscReg(), and ThreadContext::setMiscRegNoEffect().
Referenced by SparcISA::SparcFaultBase::invoke().
SparcISA::EndBitUnion | ( | HPSTATE | ) |
SparcISA::EndBitUnion | ( | PSTATE | ) |
Definition at line 137 of file miscregs.hh.
void SparcISA::enterREDState | ( | ThreadContext * | tc | ) |
This causes the thread context to enter RED state.
This causes the side effects which go with entering RED state because of a trap.
Definition at line 275 of file faults.cc.
References MISCREG_HPSTATE, MISCREG_PSTATE, ThreadContext::readMiscRegNoEffect(), and ThreadContext::setMiscReg().
Referenced by SparcISA::SparcFaultBase::invoke(), and SparcISA::PowerOnReset::invoke().
uint64_t SparcISA::getArgument | ( | ThreadContext * | tc, |
int & | number, | ||
uint16_t | size, | ||
bool | fp | ||
) |
Definition at line 48 of file utility.cc.
References FullSystem, ThreadContext::getVirtProxy(), ArmISA::NumArgumentRegs, panic, PortProxy::read(), ThreadContext::readIntReg(), ArmISA::sp, and StackPointerReg.
|
inline |
Definition at line 95 of file utility.hh.
References MISCREG_MMU_P_CONTEXT, and ThreadContext::readMiscRegNoEffect().
void SparcISA::getHyperVector | ( | ThreadContext * | tc, |
Addr & | PC, | ||
Addr & | NPC, | ||
MiscReg | TT | ||
) |
Definition at line 475 of file faults.cc.
References ArmISA::mask, MISCREG_HTBA, and ThreadContext::readMiscRegNoEffect().
Referenced by SparcISA::SparcFaultBase::invoke().
void SparcISA::getPrivVector | ( | ThreadContext * | tc, |
Addr & | PC, | ||
Addr & | NPC, | ||
MiscReg | TT, | ||
MiscReg | TL | ||
) |
Definition at line 483 of file faults.cc.
References ArmISA::mask, MISCREG_TBA, and ThreadContext::readMiscRegNoEffect().
Referenced by SparcISA::SparcFaultBase::invoke().
Definition at line 466 of file faults.cc.
References ULL.
Referenced by SparcISA::SparcFaultBase::invoke(), and SparcISA::PowerOnReset::invoke().
SyscallReturn SparcISA::getresuidFunc | ( | SyscallDesc * | desc, |
int | num, | ||
Process * | p, | ||
ThreadContext * | tc | ||
) |
Definition at line 61 of file syscalls.cc.
References BufferArg::bufferPtr(), BaseBufferArg::copyOut(), ThreadContext::getMemProxy(), Process::getSyscallArg(), BigEndianGuest::htog(), id, and MipsISA::index.
|
inline |
|
inline |
|
inline |
Definition at line 49 of file mmapped_ipr.hh.
References ThreadContext::getDTBPtr(), GenericISA::handleGenericIprRead(), and GenericISA::isGenericIprAccess().
|
inline |
Definition at line 58 of file mmapped_ipr.hh.
References ThreadContext::getDTBPtr(), GenericISA::handleGenericIprWrite(), and GenericISA::isGenericIprAccess().
|
inline |
Definition at line 53 of file locked_mem.hh.
|
inline |
Definition at line 47 of file locked_mem.hh.
|
inline |
Definition at line 59 of file locked_mem.hh.
|
inline |
Definition at line 66 of file locked_mem.hh.
void SparcISA::initCPU | ( | ThreadContext * | tc, |
int | cpuId | ||
) |
Definition at line 258 of file utility.cc.
|
inlinestatic |
Definition at line 58 of file utility.hh.
References MISCREG_HPSTATE, MISCREG_PSTATE, and ThreadContext::readMiscRegNoEffect().
void SparcISA::skipFunction | ( | ThreadContext * | tc | ) |
Definition at line 249 of file utility.cc.
References ThreadContext::pcState(), ThreadContext::readIntReg(), and ReturnAddressReg.
|
inline |
Definition at line 75 of file utility.hh.
References ThreadContext::activate(), and FullSystem.
|
static |
Target uname() handler.
Definition at line 42 of file syscalls.cc.
References ThreadContext::getMemProxy(), Process::getSyscallArg(), MipsISA::index, and name().
Definition at line 48 of file vtophys.cc.
References panic.
|
inline |
Definition at line 61 of file vtophys.cc.
References addr, betoh(), bits(), DPRINTF, ThreadContext::getDTBPtr(), ThreadContext::getITBPtr(), ThreadContext::getPhysProxy(), SparcISA::TLB::GetTsbPtr(), hpriv, SparcISA::TLB::lookup(), MISCREG_TLB_DATA, panic, SparcISA::PageTableEntry::populate(), SparcISA::TlbEntry::pte, PortProxy::read(), ThreadContext::readMiscRegNoEffect(), MipsISA::tbe, SparcISA::PageTableEntry::translate(), SparcISA::TteTag::va(), VAddrAMask, SparcISA::TteTag::valid(), and X86ISA::x.
void SparcISA::zeroRegisters | ( | TC * | tc | ) |
Function to insure ISA semantics about 0 registers.
tc | The thread context. |
Bitfield<3> SparcISA::am |
Definition at line 130 of file miscregs.hh.
Referenced by LinuxArmSystem::initState().
Definition at line 68 of file isa_traits.hh.
Bitfield<9> SparcISA::cle |
Definition at line 134 of file miscregs.hh.
const bool SparcISA::CurThreadInfoImplemented = false |
Definition at line 85 of file isa_traits.hh.
const int SparcISA::CurThreadInfoReg = -1 |
Definition at line 86 of file isa_traits.hh.
Definition at line 65 of file isa_traits.hh.
Referenced by SparcISA::TLB::validVirtualAddress().
const MachInst SparcISA::fillHandler32[numFillInsts] |
Definition at line 81 of file handlers.hh.
Referenced by Sparc32Process::argsInit().
const MachInst SparcISA::fillHandler64[numFillInsts] |
Definition at line 45 of file handlers.hh.
Referenced by Sparc64Process::argsInit().
const int SparcISA::FramePointerReg = 30 |
Definition at line 70 of file registers.hh.
const bool SparcISA::HasUnalignedMemAcc = false |
Definition at line 83 of file isa_traits.hh.
Bitfield<2> SparcISA::hpriv |
Definition at line 121 of file miscregs.hh.
Referenced by SparcISA::FastDataAccessMMUMiss::invoke(), SparcISA::TLB::translateData(), SparcISA::TLB::translateInst(), and vtophys().
Bitfield<10> SparcISA::ibe |
Definition at line 123 of file miscregs.hh.
Bitfield<11> SparcISA::id |
Definition at line 124 of file miscregs.hh.
Referenced by Profiler::addAddressTraceSample(), ArmISA::PMU::addEventProbe(), ArmV8KvmCPU::dump(), ArmKvmCPU::dumpKvmStateMisc(), flit::flit(), ArmISA::PMU::getCounter(), BaseKvmCPU::getOneReg(), getresuidFunc(), ArmISA::PMU::handleEvent(), IDToInt(), LSQUnit< Impl >::init(), InputUnit::InputUnit(), intToID(), OutputUnit::OutputUnit(), OutVcState::OutVcState(), TrafficGen::parseConfig(), RubyPort::MemSlavePort::recvTimingReq(), System::registerThreadContext(), Minor::Fetch1::FetchRequest::reportData(), ThreadState::setContextId(), Network::setFromNetQueue(), BaseKvmCPU::setOneReg(), ThreadState::setThreadId(), Network::setToNetQueue(), Request::taskId(), BaseXBar::updatePortCache(), and VirtualChannel::VirtualChannel().
const int SparcISA::MaxGL = 3 |
Definition at line 39 of file sparc_traits.hh.
Referenced by copyRegs(), doNormalFault(), doREDFault(), and SparcISA::PowerOnReset::invoke().
const int SparcISA::MaxPGL = 2 |
Definition at line 40 of file sparc_traits.hh.
Referenced by doNormalFault().
const int SparcISA::MaxPTL = 2 |
Definition at line 37 of file sparc_traits.hh.
Referenced by SparcISA::SparcFaultBase::invoke().
const int SparcISA::MaxTL = 6 |
Definition at line 38 of file sparc_traits.hh.
Referenced by copyMiscRegs(), SparcISA::SparcFaultBase::invoke(), SparcISA::PowerOnReset::invoke(), SparcISA::ISA::readFSReg(), SparcISA::ISA::serialize(), and SparcISA::ISA::unserialize().
Bitfield<7, 6> SparcISA::mm |
Definition at line 132 of file miscregs.hh.
Referenced by DumpStatsPCEvent::process(), and ElfObject::tryFile().
const MachInst SparcISA::NoopMachInst = 0x01000000 |
Definition at line 51 of file isa_traits.hh.
const int SparcISA::NumCCRegs = 0 |
Definition at line 77 of file registers.hh.
Referenced by copyRegs().
const int SparcISA::numFillInsts = 32 |
Definition at line 42 of file handlers.hh.
Referenced by SparcProcess::argsInit(), Sparc32Process::argsInit(), and Sparc64Process::argsInit().
const int SparcISA::NumFloatArchRegs = NumFloatRegs |
Definition at line 51 of file sparc_traits.hh.
Referenced by copyRegs().
const int SparcISA::NumFloatRegs = 64 |
Definition at line 50 of file sparc_traits.hh.
const int SparcISA::NumIntArchRegs = 32 |
Definition at line 75 of file registers.hh.
Referenced by Trace::SparcNativeTrace::check(), copyRegs(), SparcISA::RemoteGDB::SPARCGdbRegCache::getRegs(), and SparcISA::RemoteGDB::SPARC64GdbRegCache::getRegs().
const int SparcISA::NumIntRegs = (MaxGL + 1) * 8 + NWindows * 16 + NumMicroIntRegs |
Definition at line 76 of file registers.hh.
Referenced by SparcISA::ISA::flattenIntIndex(), SparcISA::ISA::installGlobals(), and SparcISA::ISA::installWindow().
const int SparcISA::NumMicroIntRegs = 9 |
Definition at line 45 of file sparc_traits.hh.
Referenced by copyRegs(), and SparcISA::ISA::reloadRegMap().
const int SparcISA::NumMiscRegs = MISCREG_NUMMISCREGS |
Definition at line 158 of file miscregs.hh.
Referenced by getMiscRegName().
const int SparcISA::numSpillInsts = 32 |
Definition at line 43 of file handlers.hh.
Referenced by Sparc32Process::argsInit(), and Sparc64Process::argsInit().
const int SparcISA::NWindows = 8 |
Definition at line 43 of file sparc_traits.hh.
Referenced by cloneFunc(), copyRegs(), doNormalFault(), doREDFault(), Sparc32Process::flushWindows(), Sparc64Process::flushWindows(), SparcProcess::initState(), SparcISA::ISA::readFSReg(), SparcISA::ISA::reloadRegMap(), and SparcISA::ISA::setMiscReg().
Definition at line 67 of file isa_traits.hh.
Referenced by SparcISA::TLB::translateData(), and SparcISA::TLB::translateInst().
Definition at line 59 of file isa_traits.hh.
Referenced by SparcProcess::argsInit(), Sparc32Process::Sparc32Process(), and Sparc64Process::Sparc64Process().
const Addr SparcISA::PageShift = 13 |
Definition at line 58 of file isa_traits.hh.
Bitfield<4> SparcISA::pef |
Definition at line 131 of file miscregs.hh.
Bitfield<10> SparcISA::pid0 |
Definition at line 135 of file miscregs.hh.
Bitfield<11> SparcISA::pid1 |
Definition at line 136 of file miscregs.hh.
Bitfield<2> SparcISA::priv |
Definition at line 129 of file miscregs.hh.
Referenced by doREDFault(), PacketFifoEntry::serialize(), SparcISA::TLB::translateData(), SparcISA::TLB::translateInst(), and PacketFifoEntry::unserialize().
|
static |
Definition at line 61 of file isa.cc.
Referenced by SparcISA::ISA::setMiscReg(), and SparcISA::ISA::setMiscRegNoEffect().
Bitfield<5> SparcISA::red |
Definition at line 122 of file miscregs.hh.
Referenced by SparcISA::FastDataAccessMMUMiss::invoke(), main(), SparcISA::TLB::translateData(), and SparcISA::TLB::translateInst().
const int SparcISA::ReturnAddressReg = 31 |
Definition at line 67 of file registers.hh.
Referenced by skipFunction().
const int SparcISA::ReturnValueReg = 8 |
Definition at line 68 of file registers.hh.
Definition at line 56 of file isa_traits.hh.
Definition at line 55 of file isa_traits.hh.
const MachInst SparcISA::spillHandler32[numSpillInsts] |
Definition at line 153 of file handlers.hh.
Referenced by Sparc32Process::argsInit().
const MachInst SparcISA::spillHandler64[numSpillInsts] |
Definition at line 117 of file handlers.hh.
Referenced by Sparc64Process::argsInit().
const int SparcISA::StackPointerReg = 14 |
Definition at line 69 of file registers.hh.
Referenced by getArgument().
Definition at line 64 of file isa_traits.hh.
Referenced by SparcISA::TLB::validVirtualAddress().
const int SparcISA::SyscallPseudoReturnReg = 9 |
Definition at line 73 of file registers.hh.
Bitfield<8> SparcISA::tle |
Definition at line 133 of file miscregs.hh.
const int SparcISA::TotalNumRegs = NumIntRegs + NumFloatRegs + NumMiscRegs |
Definition at line 79 of file registers.hh.
Definition at line 66 of file isa_traits.hh.
Referenced by SparcISA::TLB::translateData(), SparcISA::TLB::translateInst(), and vtophys().
const int SparcISA::ZeroReg = 0 |
Definition at line 65 of file registers.hh.