gem5
v20.1.0.0
|
Classes | |
class | BlockMem |
class | BlockMemImm |
class | BlockMemImmMicro |
class | BlockMemMicro |
class | Branch |
Base class for branch operations. More... | |
class | BranchDisp |
Base class for branch operations with an immediate displacement. More... | |
class | BranchImm13 |
Base class for branches that use an immediate and a register to compute their displacements. More... | |
class | BranchNBits |
Base class for branches with n bit displacements. More... | |
class | BranchSplit |
Base class for 16bit split displacements. More... | |
class | CleanWindow |
class | CpuMondo |
class | DataAccessError |
class | DataAccessException |
class | DataAccessProtection |
class | DataInvalidTSBEntry |
class | DataRealTranslationMiss |
class | Decoder |
class | DevMondo |
class | DivisionByZero |
class | EnumeratedFault |
class | ExternallyInitiatedReset |
class | FailUnimplemented |
Static instruction class for unimplemented instructions that cause simulator termination. More... | |
class | FastDataAccessMMUMiss |
class | FastDataAccessProtection |
class | FastInstructionAccessMMUMiss |
class | FillNNormal |
class | FillNOther |
class | FpDisabled |
class | FpExceptionIEEE754 |
class | FpExceptionOther |
class | FpUnimpl |
class | FsWorkload |
class | HstickMatch |
class | IllegalInstruction |
class | InstructionAccessError |
class | InstructionAccessException |
class | InstructionBreakpoint |
class | InstructionInvalidTSBEntry |
class | InstructionRealTranslationMiss |
class | InternalProcessorError |
class | InterruptLevelN |
class | Interrupts |
class | InterruptVector |
class | IntOp |
Base class for integer operations. More... | |
class | IntOpImm |
Base class for immediate integer operations. More... | |
class | IntOpImm10 |
Base class for 10 bit immediate integer operations. More... | |
class | IntOpImm11 |
Base class for 11 bit immediate integer operations. More... | |
class | IntOpImm13 |
Base class for 13 bit immediate integer operations. More... | |
class | ISA |
class | LDDFMemAddressNotAligned |
class | LDQFMemAddressNotAligned |
class | Mem |
Base class for memory operations. More... | |
class | MemAddressNotAligned |
class | MemImm |
Class for memory operations which use an immediate offset. More... | |
class | Nop |
Nop class. More... | |
class | PageTableEntry |
class | PAWatchpoint |
class | PowerOnReset |
class | Priv |
Base class for privelege mode operations. More... | |
class | PrivilegedAction |
class | PrivilegedOpcode |
class | PrivImm |
Base class for privelege mode operations with immediates. More... | |
class | PrivReg |
class | RdPriv |
class | REDStateException |
class | RemoteGDB |
class | ResumableError |
class | SetHi |
Base class for sethi. More... | |
class | SoftwareInitiatedReset |
class | Sparc32LinuxProcess |
A process with emulated SPARC/Linux syscalls. More... | |
class | Sparc64LinuxProcess |
A process with emulated 32 bit SPARC/Linux syscalls. More... | |
class | SparcDelayedMicroInst |
class | SparcFault |
class | SparcFaultBase |
class | SparcLinuxProcess |
class | SparcMacroInst |
class | SparcMicroInst |
class | SparcSolarisProcess |
A process with emulated SPARC/Solaris syscalls. More... | |
class | SparcStaticInst |
Base class for all SPARC static instructions. More... | |
class | SpillNNormal |
class | SpillNOther |
class | StackTrace |
class | STDFMemAddressNotAligned |
class | StoreError |
class | STQFMemAddressNotAligned |
class | TagOverflow |
class | TLB |
struct | TlbEntry |
class | TlbMap |
struct | TlbRange |
class | Trap |
Base class for trap instructions, or instructions that always fault. More... | |
class | TrapInstruction |
class | TrapLevelZero |
class | TteTag |
class | Unknown |
Class for Unknown/Illegal instructions. More... | |
class | VAWatchpoint |
class | VecDisabled |
class | WarnUnimplemented |
Base class for unimplemented instructions that cause a warning to be printed (but do not terminate simulation). More... | |
class | WatchDogReset |
class | WrPriv |
class | WrPrivImm |
Typedefs | |
typedef uint32_t | TrapType |
typedef uint32_t | FaultPriority |
using | VecElem = ::DummyVecElem |
using | VecReg = ::DummyVecReg |
using | ConstVecReg = ::DummyConstVecReg |
using | VecRegContainer = ::DummyVecRegContainer |
using | VecPredReg = ::DummyVecPredReg |
using | ConstVecPredReg = ::DummyConstVecPredReg |
using | VecPredRegContainer = ::DummyVecPredRegContainer |
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 (RegVal TT, Addr &PC, Addr &NPC) |
void | getHyperVector (ThreadContext *tc, Addr &PC, Addr &NPC, RegVal TT) |
void | getPrivVector (ThreadContext *tc, Addr &PC, Addr &NPC, RegVal TT, RegVal TL) |
static PSTATE | buildPstateMask () |
SyscallReturn | getresuidFunc (SyscallDesc *desc, ThreadContext *tc, Addr ruid, Addr euid, Addr suid) |
static SyscallReturn | unameFunc (SyscallDesc *desc, ThreadContext *tc, VPtr< Linux::utsname > name) |
Target uname() handler. More... | |
BitUnion64 (HPSTATE) Bitfield< 0 > tlz | |
EndBitUnion (HPSTATE) BitUnion16(PSTATE) Bitfield< 1 > ie | |
EndBitUnion (PSTATE) BitUnion8(CCR) SubBitUnion(xcc | |
EndSubBitUnion (xcc) SubBitUnion(icc | |
EndSubBitUnion (icc) EndBitUnion(CCR) struct STS | |
uint64_t | getArgument (ThreadContext *tc, int &number, uint16_t size, bool fp) |
void | copyMiscRegs (ThreadContext *src, ThreadContext *dest) |
void | copyRegs (ThreadContext *src, ThreadContext *dest) |
PCState | buildRetPC (const PCState &curPC, const PCState &callPC) |
static bool | inUserMode (ThreadContext *tc) |
void | advancePC (PCState &pc, const StaticInstPtr &inst) |
uint64_t | getExecutingAsid (ThreadContext *tc) |
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] |
const char * | CondTestAbbrev [] |
static const PSTATE | PstateMask = buildPstateMask() |
const ByteOrder | GuestByteOrder = ByteOrder::big |
const Addr | PageShift = 13 |
const Addr | PageBytes = ULL(1) << PageShift |
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 |
Bitfield< 7 > | n |
Bitfield< 6 > | z |
Bitfield< 5 > | v |
Bitfield< 4 > | c |
const int | NumMiscRegs = MISCREG_NUMMISCREGS |
constexpr unsigned | NumVecElemPerVecReg = ::DummyNumVecElemPerVecReg |
constexpr size_t | VecRegSizeBytes = ::DummyVecRegSizeBytes |
constexpr size_t | VecPredRegSizeBits = ::DummyVecPredRegSizeBits |
constexpr bool | VecPredRegHasPackedRepr = ::DummyVecPredRegHasPackedRepr |
const int | ZeroReg = 0 |
const int | ReturnAddressReg = INTREG_I7 |
const int | ReturnValueReg = INTREG_O0 |
const int | StackPointerReg = INTREG_O6 |
const int | FramePointerReg = INTREG_I6 |
const int | SyscallPseudoReturnReg = INTREG_O1 |
const int | NumIntRegs = (MaxGL + 1) * 8 + NWindows * 16 + NumMicroIntRegs |
const int | NumVecRegs = 1 |
const int | NumVecPredRegs = 1 |
const int | NumCCRegs = 0 |
const int | NumFloatRegs = 64 |
const int | NumFloatArchRegs = NumFloatRegs |
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 Addr | StartVAddrHole = ULL(0x0000800000000000) |
const Addr | EndVAddrHole = ULL(0xFFFF7FFFFFFFFFFF) |
const Addr | VAddrAMask = ULL(0xFFFFFFFF) |
const Addr | PAddrImplMask = ULL(0x000000FFFFFFFFFF) |
using SparcISA::ConstVecPredReg = typedef ::DummyConstVecPredReg |
Definition at line 56 of file registers.hh.
using SparcISA::ConstVecReg = typedef ::DummyConstVecReg |
Definition at line 49 of file registers.hh.
typedef uint64_t SparcISA::ExtMachInst |
typedef uint32_t SparcISA::FaultPriority |
typedef uint32_t SparcISA::MachInst |
typedef uint32_t SparcISA::TrapType |
using SparcISA::VecElem = typedef ::DummyVecElem |
Definition at line 47 of file registers.hh.
using SparcISA::VecPredReg = typedef ::DummyVecPredReg |
Definition at line 55 of file registers.hh.
using SparcISA::VecPredRegContainer = typedef ::DummyVecPredRegContainer |
Definition at line 57 of file registers.hh.
using SparcISA::VecReg = typedef ::DummyVecReg |
Definition at line 48 of file registers.hh.
using SparcISA::VecRegContainer = typedef ::DummyVecRegContainer |
Definition at line 50 of file registers.hh.
anonymous enum |
Definition at line 62 of file registers.hh.
enum SparcISA::ASI |
enum SparcISA::CondTest |
Enumerator | |
---|---|
Always | |
Never | |
NotEqual | |
Equal | |
Greater | |
LessOrEqual | |
GreaterOrEqual | |
Less | |
GreaterUnsigned | |
LessOrEqualUnsigned | |
CarryClear | |
CarrySet | |
Positive | |
Negative | |
OverflowClear | |
OverflowSet |
Definition at line 42 of file static_inst.hh.
enum SparcISA::FpCondTest |
Definition at line 64 of file static_inst.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 44 of file interrupts.hh.
Definition at line 37 of file miscregs.hh.
|
inline |
Definition at line 68 of file utility.hh.
References StaticInst::advancePC(), and MipsISA::pc.
bool SparcISA::asiIsAsIfUser | ( | ASI | asi | ) |
Definition at line 115 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 35 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 246 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 217 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 295 of file asi.cc.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsInterrupt | ( | ASI | asi | ) |
Definition at line 259 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 132 of file asi.cc.
References ASI_REAL_IO, and ASI_REAL_IO_L.
bool SparcISA::asiIsLittle | ( | ASI | asi | ) |
Definition at line 150 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 267 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 106 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 200 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 48 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 253 of file asi.cc.
References ASI_QUEUE.
Referenced by SparcISA::TLB::translateData().
bool SparcISA::asiIsReal | ( | ASI | asi | ) |
Definition at line 139 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 301 of file asi.cc.
References asiIsCmt(), asiIsInterrupt(), asiIsMmu(), asiIsScratchPad(), and asiIsSparcError().
bool SparcISA::asiIsScratchPad | ( | ASI | asi | ) |
Definition at line 239 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 77 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 309 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 185 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 282 of file asi.cc.
Referenced by SparcISA::TLB::translateData().
SparcISA::BitUnion64 | ( | HPSTATE | ) |
|
static |
Definition at line 46 of file isa.cc.
References ArmISA::mask.
Definition at line 45 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 64 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 200 of file utility.cc.
References copyMiscRegs(), ArmISA::i, MaxGL, MISCREG_CWP, MISCREG_GL, NumCCRegs, NumFloatArchRegs, NumIntArchRegs, NumMicroIntRegs, NWindows, ThreadContext::pcState(), ThreadContext::readFloatReg(), ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), ThreadContext::setFloatReg(), ThreadContext::setIntReg(), ThreadContext::setMiscReg(), and RiscvISA::x.
Referenced by SparcLinux::archClone().
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 379 of file faults.cc.
References INTREG_CANSAVE, INTREG_CCR, 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, NWindows, MipsISA::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 300 of file faults.cc.
References INTREG_CANSAVE, INTREG_CCR, 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, NWindows, MipsISA::pc, ThreadContext::pcState(), priv, ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), replaceBits(), ThreadContext::setMiscReg(), and ThreadContext::setMiscRegNoEffect().
Referenced by SparcISA::SparcFaultBase::invoke().
SparcISA::EndBitUnion | ( | HPSTATE | ) |
Referenced by SparcISA::SparcStaticInst::passesCondition().
SparcISA::EndBitUnion | ( | PSTATE | ) |
SparcISA::EndSubBitUnion | ( | icc | ) |
Definition at line 148 of file miscregs.hh.
SparcISA::EndSubBitUnion | ( | xcc | ) |
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 279 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 44 of file utility.cc.
References FullSystem, ThreadContext::getVirtProxy(), ArmISA::NumArgumentRegs, panic, PortProxy::read(), ThreadContext::readIntReg(), ArmISA::sp, and StackPointerReg.
|
inline |
Definition at line 74 of file utility.hh.
References MISCREG_MMU_P_CONTEXT, and ThreadContext::readMiscRegNoEffect().
void SparcISA::getHyperVector | ( | ThreadContext * | tc, |
Addr & | PC, | ||
Addr & | NPC, | ||
RegVal | TT | ||
) |
Definition at line 479 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, | ||
RegVal | TT, | ||
RegVal | TL | ||
) |
Definition at line 487 of file faults.cc.
References ArmISA::mask, MISCREG_TBA, and ThreadContext::readMiscRegNoEffect().
Referenced by SparcISA::SparcFaultBase::invoke().
Definition at line 470 of file faults.cc.
References ULL.
Referenced by SparcISA::FsWorkload::getEntry(), SparcISA::SparcFaultBase::invoke(), and SparcISA::PowerOnReset::invoke().
SyscallReturn SparcISA::getresuidFunc | ( | SyscallDesc * | desc, |
ThreadContext * | tc, | ||
Addr | ruid, | ||
Addr | euid, | ||
Addr | suid | ||
) |
Definition at line 55 of file syscalls.cc.
References BufferArg::bufferPtr(), BaseBufferArg::copyOut(), ThreadContext::getVirtProxy(), and htobe().
|
inlinestatic |
Definition at line 56 of file utility.hh.
References MISCREG_HPSTATE, MISCREG_PSTATE, and ThreadContext::readMiscRegNoEffect().
|
static |
Target uname() handler.
Definition at line 40 of file syscalls.cc.
References ThreadContext::getProcessPtr(), and name().
Bitfield<3> SparcISA::am |
Definition at line 127 of file miscregs.hh.
Referenced by MultiperspectivePerceptron::GHIST::hash(), ArmISA::FsLinux::initState(), SC_MODULE(), and SparcISA::TLB::validVirtualAddress().
Bitfield< 0 > SparcISA::c |
Definition at line 141 of file miscregs.hh.
Referenced by SparcISA::SparcStaticInst::passesCondition().
Bitfield<9> SparcISA::cle |
Definition at line 131 of file miscregs.hh.
const char * SparcISA::CondTestAbbrev |
Definition at line 35 of file static_inst.cc.
Definition at line 46 of file tlb.hh.
Referenced by SparcISA::TLB::validVirtualAddress().
const MachInst SparcISA::fillHandler32[numFillInsts] |
Definition at line 79 of file handlers.hh.
Referenced by Sparc32Process::argsInit().
const MachInst SparcISA::fillHandler64[numFillInsts] |
Definition at line 43 of file handlers.hh.
Referenced by Sparc64Process::argsInit().
const int SparcISA::FramePointerReg = INTREG_I6 |
Definition at line 96 of file registers.hh.
Referenced by SparcISA::SparcStaticInst::printReg().
const ByteOrder SparcISA::GuestByteOrder = ByteOrder::big |
Definition at line 37 of file isa_traits.hh.
Bitfield<2> SparcISA::hpriv |
Definition at line 118 of file miscregs.hh.
Referenced by SparcISA::FastDataAccessMMUMiss::invoke(), SparcISA::TLB::translateData(), SparcISA::TLB::translateFunctional(), and SparcISA::TLB::translateInst().
Bitfield<10> SparcISA::ibe |
Definition at line 120 of file miscregs.hh.
Bitfield<11> SparcISA::id |
Definition at line 121 of file miscregs.hh.
const int SparcISA::MaxGL = 3 |
Definition at line 37 of file sparc_traits.hh.
Referenced by copyRegs(), doNormalFault(), doREDFault(), and SparcISA::PowerOnReset::invoke().
const int SparcISA::MaxPGL = 2 |
Definition at line 38 of file sparc_traits.hh.
Referenced by doNormalFault().
const int SparcISA::MaxPTL = 2 |
Definition at line 35 of file sparc_traits.hh.
Referenced by SparcISA::SparcFaultBase::invoke().
const int SparcISA::MaxTL = 6 |
Definition at line 36 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 129 of file miscregs.hh.
Referenced by QTIsaac< ALPHA >::isaac().
Bitfield< 3 > SparcISA::n |
Definition at line 137 of file miscregs.hh.
Referenced by SparcISA::SparcStaticInst::passesCondition().
const int SparcISA::NumCCRegs = 0 |
Definition at line 106 of file registers.hh.
Referenced by copyRegs().
const int SparcISA::numFillInsts = 32 |
Definition at line 40 of file handlers.hh.
Referenced by SparcProcess::argsInit(), Sparc32Process::argsInit(), and Sparc64Process::argsInit().
const int SparcISA::NumFloatArchRegs = NumFloatRegs |
Definition at line 109 of file registers.hh.
Referenced by copyRegs().
const int SparcISA::NumFloatRegs = 64 |
Definition at line 108 of file registers.hh.
const int SparcISA::NumIntRegs = (MaxGL + 1) * 8 + NWindows * 16 + NumMicroIntRegs |
Definition at line 101 of file registers.hh.
Referenced by SparcISA::ISA::flattenIntIndex(), SparcISA::ISA::installGlobals(), and SparcISA::ISA::installWindow().
const int SparcISA::NumMiscRegs = MISCREG_NUMMISCREGS |
Definition at line 170 of file miscregs.hh.
Referenced by getMiscRegName().
const int SparcISA::numSpillInsts = 32 |
Definition at line 41 of file handlers.hh.
Referenced by Sparc32Process::argsInit(), and Sparc64Process::argsInit().
|
constexpr |
Definition at line 51 of file registers.hh.
const int SparcISA::NumVecPredRegs = 1 |
Definition at line 104 of file registers.hh.
const int SparcISA::NumVecRegs = 1 |
Definition at line 102 of file registers.hh.
const int SparcISA::NWindows = 8 |
Definition at line 41 of file sparc_traits.hh.
Referenced by SparcLinux::archClone(), copyRegs(), doNormalFault(), doREDFault(), Sparc32Process::flushWindows(), Sparc64Process::flushWindows(), SparcProcess::initState(), SparcISA::ISA::readFSReg(), SparcISA::ISA::reloadRegMap(), and SparcISA::ISA::setMiscReg().
Definition at line 48 of file tlb.hh.
Referenced by SparcISA::TLB::translateData(), and SparcISA::TLB::translateInst().
Definition at line 40 of file isa_traits.hh.
Referenced by SparcProcess::argsInit(), Sparc32Process::Sparc32Process(), and Sparc64Process::Sparc64Process().
const Addr SparcISA::PageShift = 13 |
Definition at line 39 of file isa_traits.hh.
Bitfield<4> SparcISA::pef |
Definition at line 128 of file miscregs.hh.
Bitfield<10> SparcISA::pid0 |
Definition at line 132 of file miscregs.hh.
Bitfield<11> SparcISA::pid1 |
Definition at line 133 of file miscregs.hh.
Bitfield<2> SparcISA::priv |
Definition at line 126 of file miscregs.hh.
Referenced by doREDFault(), PacketFifoEntry::serialize(), SparcISA::TLB::translateData(), SparcISA::TLB::translateInst(), and PacketFifoEntry::unserialize().
|
static |
Definition at line 60 of file isa.cc.
Referenced by SparcISA::ISA::setMiscReg(), and SparcISA::ISA::setMiscRegNoEffect().
Bitfield<5> SparcISA::red |
Definition at line 119 of file miscregs.hh.
Referenced by SparcISA::FastDataAccessMMUMiss::invoke(), TEST(), SparcISA::TLB::translateData(), and SparcISA::TLB::translateInst().
const int SparcISA::ReturnAddressReg = INTREG_I7 |
Definition at line 93 of file registers.hh.
const int SparcISA::ReturnValueReg = INTREG_O0 |
Definition at line 94 of file registers.hh.
const MachInst SparcISA::spillHandler32[numSpillInsts] |
Definition at line 151 of file handlers.hh.
Referenced by Sparc32Process::argsInit().
const MachInst SparcISA::spillHandler64[numSpillInsts] |
Definition at line 115 of file handlers.hh.
Referenced by Sparc64Process::argsInit().
const int SparcISA::StackPointerReg = INTREG_O6 |
Definition at line 95 of file registers.hh.
Referenced by SparcLinux::archClone(), getArgument(), and SparcISA::SparcStaticInst::printReg().
Definition at line 45 of file tlb.hh.
Referenced by SparcISA::TLB::validVirtualAddress().
const int SparcISA::SyscallPseudoReturnReg = INTREG_O1 |
Definition at line 99 of file registers.hh.
Bitfield<8> SparcISA::tle |
Definition at line 130 of file miscregs.hh.
const int SparcISA::TotalNumRegs = NumIntRegs + NumFloatRegs + NumMiscRegs |
Definition at line 111 of file registers.hh.
Bitfield< 1 > SparcISA::v |
Definition at line 140 of file miscregs.hh.
Referenced by SparcISA::SparcStaticInst::passesCondition().
Definition at line 47 of file tlb.hh.
Referenced by SparcISA::TLB::translateData(), SparcISA::TLB::translateFunctional(), and SparcISA::TLB::translateInst().
|
constexpr |
Definition at line 59 of file registers.hh.
|
constexpr |
Definition at line 58 of file registers.hh.
|
constexpr |
Definition at line 52 of file registers.hh.
Bitfield< 2 > SparcISA::z |
Definition at line 139 of file miscregs.hh.
Referenced by SparcISA::SparcStaticInst::passesCondition().
const int SparcISA::ZeroReg = 0 |
Definition at line 90 of file registers.hh.