|
gem5
v21.1.0.2
|
#include <thread_context.hh>
Classes | |
| struct | BpInfo |
Public Types | |
| typedef std::map< std::string, iris::ResourceInfo > | ResourceMap |
| typedef std::vector< iris::ResourceId > | ResourceIds |
| typedef std::map< int, std::string > | IdxNameMap |
Public Types inherited from gem5::ThreadContext | |
| enum | Status { Active, Suspended, Halting, Halted } |
Public Member Functions | |
| ThreadContext (gem5::BaseCPU *cpu, int id, System *system, gem5::BaseMMU *mmu, gem5::BaseISA *isa, iris::IrisConnectionInterface *iris_if, const std::string &iris_path) | |
| virtual | ~ThreadContext () |
| virtual bool | translateAddress (Addr &paddr, Addr vaddr)=0 |
| bool | schedule (PCEvent *e) override |
| bool | remove (PCEvent *e) override |
| void | scheduleInstCountEvent (Event *event, Tick count) override |
| void | descheduleInstCountEvent (Event *event) override |
| Tick | getCurrentInstCount () override |
| gem5::BaseCPU * | getCpuPtr () override |
| int | cpuId () const override |
| uint32_t | socketId () const override |
| int | threadId () const override |
| void | setThreadId (int id) override |
| int | contextId () const override |
| void | setContextId (int id) override |
| BaseMMU * | getMMUPtr () override |
| CheckerCPU * | getCheckerCpuPtr () override |
| ArmISA::Decoder * | getDecoderPtr () override |
| System * | getSystemPtr () override |
| BaseISA * | getIsaPtr () override |
| PortProxy & | getVirtProxy () override |
| void | initMemProxies (gem5::ThreadContext *tc) override |
| Initialise the physical and virtual port proxies and tie them to the data port of the CPU. More... | |
| void | sendFunctional (PacketPtr pkt) override |
| Process * | getProcessPtr () override |
| void | setProcessPtr (Process *p) override |
| Status | status () const override |
| void | setStatus (Status new_status) override |
| void | activate () override |
| Set the status to Active. More... | |
| void | suspend () override |
| Set the status to Suspended. More... | |
| void | halt () override |
| Set the status to Halted. More... | |
| void | takeOverFrom (gem5::ThreadContext *old_context) override |
| void | regStats (const std::string &name) override |
| Tick | readLastActivate () override |
| Tick | readLastSuspend () override |
| void | copyArchRegs (gem5::ThreadContext *tc) override |
| void | clearArchRegs () override |
| RegVal | readIntReg (RegIndex reg_idx) const override |
| RegVal | readFloatReg (RegIndex reg_idx) const override |
| const ArmISA::VecRegContainer & | readVecReg (const RegId ®) const override |
| ArmISA::VecRegContainer & | getWritableVecReg (const RegId ®) override |
| const ArmISA::VecElem & | readVecElem (const RegId ®) const override |
| const ArmISA::VecPredRegContainer & | readVecPredReg (const RegId ®) const override |
| ArmISA::VecPredRegContainer & | getWritableVecPredReg (const RegId ®) override |
| RegVal | readCCReg (RegIndex reg_idx) const override |
| void | setIntReg (RegIndex reg_idx, RegVal val) override |
| void | setFloatReg (RegIndex reg_idx, RegVal val) override |
| void | setVecReg (const RegId ®, const ArmISA::VecRegContainer &val) override |
| void | setVecElem (const RegId ®, const ArmISA::VecElem &val) override |
| void | setVecPredReg (const RegId ®, const ArmISA::VecPredRegContainer &val) override |
| void | setCCReg (RegIndex reg_idx, RegVal val) override |
| void | pcStateNoRecord (const ArmISA::PCState &val) override |
| MicroPC | microPC () const override |
| ArmISA::PCState | pcState () const override |
| void | pcState (const ArmISA::PCState &val) override |
| Addr | instAddr () const override |
| Addr | nextInstAddr () const override |
| RegVal | readMiscRegNoEffect (RegIndex misc_reg) const override |
| RegVal | readMiscReg (RegIndex misc_reg) override |
| void | setMiscRegNoEffect (RegIndex misc_reg, const RegVal val) override |
| void | setMiscReg (RegIndex misc_reg, const RegVal val) override |
| RegId | flattenRegId (const RegId ®Id) const override |
| unsigned | readStCondFailures () const override |
| void | setStCondFailures (unsigned sc_failures) override |
| void | htmAbortTransaction (uint64_t htm_uid, HtmFailureFaultCause cause) override |
| BaseHTMCheckpointPtr & | getHtmCheckpointPtr () override |
| void | setHtmCheckpointPtr (BaseHTMCheckpointPtr cpt) override |
| RegVal | readIntRegFlat (RegIndex idx) const override |
| Flat register interfaces. More... | |
| void | setIntRegFlat (RegIndex idx, uint64_t val) override |
| RegVal | readFloatRegFlat (RegIndex idx) const override |
| void | setFloatRegFlat (RegIndex idx, RegVal val) override |
| const ArmISA::VecRegContainer & | readVecRegFlat (RegIndex idx) const override |
| ArmISA::VecRegContainer & | getWritableVecRegFlat (RegIndex idx) override |
| void | setVecRegFlat (RegIndex idx, const ArmISA::VecRegContainer &val) override |
| const ArmISA::VecElem & | readVecElemFlat (RegIndex idx, const ElemIndex &elemIdx) const override |
| void | setVecElemFlat (RegIndex idx, const ElemIndex &elemIdx, const ArmISA::VecElem &val) override |
| const ArmISA::VecPredRegContainer & | readVecPredRegFlat (RegIndex idx) const override |
| ArmISA::VecPredRegContainer & | getWritableVecPredRegFlat (RegIndex idx) override |
| void | setVecPredRegFlat (RegIndex idx, const ArmISA::VecPredRegContainer &val) override |
| RegVal | readCCRegFlat (RegIndex idx) const override |
| void | setCCRegFlat (RegIndex idx, RegVal val) override |
Public Member Functions inherited from gem5::ThreadContext | |
| bool | getUseForClone () |
| void | setUseForClone (bool new_val) |
| void | quiesce () |
| Quiesce thread context. More... | |
| void | quiesceTick (Tick resume) |
| Quiesce, suspend, and schedule activate at resume. More... | |
| virtual void | setVecPredReg (const RegId ®, const TheISA::VecPredRegContainer &val)=0 |
| void | setNPC (Addr val) |
| virtual int | exit () |
| virtual void | setVecPredRegFlat (RegIndex idx, const TheISA::VecPredRegContainer &val)=0 |
Protected Types | |
| using | BpId = uint64_t |
| using | BpInfoPtr = std::unique_ptr< BpInfo > |
| using | BpInfoMap = std::map< Addr, BpInfoPtr > |
| using | BpInfoIt = BpInfoMap::iterator |
Protected Member Functions | |
| virtual void | initFromIrisInstance (const ResourceMap &resources) |
| iris::ResourceId | extractResourceId (const ResourceMap &resources, const std::string &name) |
| void | extractResourceMap (ResourceIds &ids, const ResourceMap &resources, const IdxNameMap &idx_names) |
| void | maintainStepping () |
| BpInfoIt | getOrAllocBp (Addr pc) |
| void | installBp (BpInfoIt it) |
| void | uninstallBp (BpInfoIt it) |
| void | delBp (BpInfoIt it) |
| virtual const std::vector< iris::MemorySpaceId > & | getBpSpaceIds () const =0 |
| iris::IrisErrorCode | instanceRegistryChanged (uint64_t esId, const iris::IrisValueMap &fields, uint64_t time, uint64_t sInstId, bool syncEc, std::string &error_message_out) |
| iris::IrisErrorCode | phaseInitLeave (uint64_t esId, const iris::IrisValueMap &fields, uint64_t time, uint64_t sInstId, bool syncEc, std::string &error_message_out) |
| iris::IrisErrorCode | simulationTimeEvent (uint64_t esId, const iris::IrisValueMap &fields, uint64_t time, uint64_t sInstId, bool syncEc, std::string &error_message_out) |
| iris::IrisErrorCode | breakpointHit (uint64_t esId, const iris::IrisValueMap &fields, uint64_t time, uint64_t sInstId, bool syncEc, std::string &error_message_out) |
| iris::IrisErrorCode | semihostingEvent (uint64_t esId, const iris::IrisValueMap &fields, uint64_t time, uint64_t sInstId, bool syncEc, std::string &error_message_out) |
| iris::IrisCppAdapter & | call () const |
| iris::IrisCppAdapter & | noThrow () const |
| bool | translateAddress (Addr &paddr, iris::MemorySpaceId p_space, Addr vaddr, iris::MemorySpaceId v_space) |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::ThreadContext | |
| static void | compare (ThreadContext *one, ThreadContext *two) |
| function to compare two thread contexts (for debugging) More... | |
Public Attributes inherited from gem5::ThreadContext | |
| int | intResult = DefaultIntResult |
| double | floatResult = DefaultFloatResult |
| int | intOffset = 0 |
Static Public Attributes inherited from gem5::ThreadContext | |
| static const int | ints [] |
| static const double | floats [] |
| static const int | DefaultIntResult = 0 |
| static const double | DefaultFloatResult = 0.0 |
Definition at line 51 of file thread_context.hh.
|
protected |
Definition at line 112 of file thread_context.hh.
|
protected |
Definition at line 129 of file thread_context.hh.
|
protected |
Definition at line 128 of file thread_context.hh.
|
protected |
Definition at line 127 of file thread_context.hh.
| typedef std::map<int, std::string> gem5::Iris::ThreadContext::IdxNameMap |
Definition at line 57 of file thread_context.hh.
| typedef std::vector<iris::ResourceId> gem5::Iris::ThreadContext::ResourceIds |
Definition at line 56 of file thread_context.hh.
| typedef std::map<std::string, iris::ResourceInfo> gem5::Iris::ThreadContext::ResourceMap |
Definition at line 54 of file thread_context.hh.
| gem5::Iris::ThreadContext::ThreadContext | ( | gem5::BaseCPU * | cpu, |
| int | id, | ||
| System * | system, | ||
| gem5::BaseMMU * | mmu, | ||
| gem5::BaseISA * | isa, | ||
| iris::IrisConnectionInterface * | iris_if, | ||
| const std::string & | iris_path | ||
| ) |
Definition at line 310 of file thread_context.cc.
References _instId, breakpointEventStreamId, call(), client, enableAfterPseudoEvent, initEventStreamId, noThrow(), regEventStreamId, semihostingEventStreamId, gem5::EventBase::Sim_Exit_Pri, and timeEventStreamId.
|
virtual |
Reimplemented from gem5::ThreadContext.
Definition at line 377 of file thread_context.cc.
References call(), client, gem5::EventManager::deschedule(), enableAfterPseudoEvent, getCpuPtr(), initEventStreamId, regEventStreamId, gem5::Event::scheduled(), and timeEventStreamId.
|
inlineoverridevirtual |
Set the status to Active.
Implements gem5::ThreadContext.
Definition at line 236 of file thread_context.hh.
References gem5::ThreadContext::Active, and setStatus().
|
protected |
Definition at line 268 of file thread_context.cc.
References gem5::ArmISA::e, getOrAllocBp(), and gem5::MipsISA::pc.
|
inlineprotected |
Definition at line 165 of file thread_context.hh.
References client.
Referenced by getCurrentInstCount(), initFromIrisInstance(), installBp(), maintainStepping(), pcState(), phaseInitLeave(), readCCRegFlat(), gem5::fastmodel::CortexR52TC::readIntReg(), readIntReg(), readIntRegFlat(), readMiscRegNoEffect(), readVecPredReg(), readVecReg(), scheduleInstCountEvent(), semihostingEvent(), setCCRegFlat(), gem5::fastmodel::CortexR52TC::setIntReg(), setIntReg(), setIntRegFlat(), setMiscRegNoEffect(), setStatus(), simulationTimeEvent(), ThreadContext(), uninstallBp(), and ~ThreadContext().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 194 of file thread_context.hh.
References _contextId.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 188 of file thread_context.hh.
References _cpu, and gem5::BaseCPU::cpuId().
|
protected |
Definition at line 182 of file thread_context.cc.
References bps, panic_if, and uninstallBp().
Referenced by remove().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 465 of file thread_context.cc.
References comInstEventQueue, gem5::EventQueue::deschedule(), gem5::MipsISA::event, and maintainStepping().
|
protected |
Definition at line 97 of file thread_context.cc.
References name().
Referenced by extractResourceMap(), gem5::fastmodel::CortexR52TC::initFromIrisInstance(), and gem5::fastmodel::CortexA76TC::initFromIrisInstance().
|
protected |
Definition at line 104 of file thread_context.cc.
References extractResourceId(), gem5::ArmISA::ids, and name().
Referenced by gem5::fastmodel::CortexR52TC::initFromIrisInstance(), and gem5::fastmodel::CortexA76TC::initFromIrisInstance().
|
protectedpure virtual |
Implemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Referenced by installBp().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 203 of file thread_context.hh.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 187 of file thread_context.hh.
References _cpu.
Referenced by semihostingEvent(), sendFunctional(), setStatus(), and ~ThreadContext().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 472 of file thread_context.cc.
References _instId, call(), gem5::X86ISA::count, and panic_if.
Referenced by maintainStepping(), and scheduleInstCountEvent().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
protected |
Definition at line 149 of file thread_context.cc.
References bps, panic_if, and gem5::MipsISA::pc.
Referenced by breakpointHit(), remove(), and schedule().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 210 of file thread_context.hh.
References _cpu, and gem5::BaseCPU::system.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 218 of file thread_context.hh.
References virtProxy.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Set the status to Halted.
Implements gem5::ThreadContext.
Definition at line 238 of file thread_context.hh.
References gem5::ThreadContext::Halted, and setStatus().
|
inlineoverridevirtual |
|
protectedvirtual |
Reimplemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Definition at line 60 of file thread_context.cc.
References _instId, _status, gem5::ThreadContext::Active, bps, breakpointEventStreamId, call(), client, gem5::statistics::enabled(), installBp(), memorySpaces, semihostingEventStreamId, suspend(), gem5::ThreadContext::Suspended, and translations.
Referenced by phaseInitLeave().
|
overridevirtual |
Initialise the physical and virtual port proxies and tie them to the data port of the CPU.
tc ThreadContext for the virtual-to-physical translation
Implements gem5::ThreadContext.
Definition at line 481 of file thread_context.cc.
References gem5::FullSystem, gem5::SETranslatingPortProxy::NextPage, and virtProxy.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 560 of file thread_context.cc.
References pcState().
|
protected |
Definition at line 162 of file thread_context.cc.
References _instId, call(), getBpSpaceIds(), gem5::ArmISA::id, and gem5::MipsISA::pc.
Referenced by initFromIrisInstance(), and schedule().
|
protected |
Definition at line 194 of file thread_context.cc.
References _instId, _irisPath, gem5::MipsISA::event, gem5::ArmISA::id, name(), and panic.
|
protected |
Definition at line 120 of file thread_context.cc.
References _instId, call(), comInstEventQueue, gem5::EventQueue::empty(), getCurrentInstCount(), gem5::EventQueue::nextTick(), and gem5::EventQueue::serviceEvents().
Referenced by descheduleInstCountEvent(), scheduleInstCountEvent(), and simulationTimeEvent().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 344 of file thread_context.hh.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 566 of file thread_context.cc.
References pcState().
|
inlineprotected |
Definition at line 166 of file thread_context.hh.
References client.
Referenced by ThreadContext(), and translateAddress().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 522 of file thread_context.cc.
References _instId, gem5::X86ISA::addr, call(), gem5::ArmISA::itState(), gem5::ArmISA::MISCREG_CPSR, gem5::MipsISA::pc, pcRscId, and readMiscRegNoEffect().
Referenced by instAddr(), nextInstAddr(), and pcStateNoRecord().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 547 of file thread_context.cc.
References _instId, call(), gem5::ArmISA::MISCREG_CPSR, gem5::MipsISA::pc, pcRscId, readMiscRegNoEffect(), and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 343 of file thread_context.hh.
References pcState(), and gem5::X86ISA::val.
|
protected |
Definition at line 216 of file thread_context.cc.
References _instId, call(), initFromIrisInstance(), and name().
Implements gem5::ThreadContext.
Definition at line 305 of file thread_context.hh.
References readCCRegFlat().
Implements gem5::ThreadContext.
Definition at line 641 of file thread_context.cc.
References _instId, call(), and ccRegIds.
Referenced by readCCReg(), gem5::fastmodel::CortexA76TC::readCCRegFlat(), and gem5::fastmodel::CortexR52TC::readCCRegFlat().
Implements gem5::ThreadContext.
Definition at line 587 of file thread_context.cc.
References _instId, call(), intReg32Ids, intReg64Ids, gem5::ArmISA::MISCREG_CPSR, and readMiscRegNoEffect().
Referenced by semihostingEvent().
Flat register interfaces.
Some architectures have different registers visible in different modes. Such architectures "flatten" a register (see flattenRegId()) to map it into the gem5 register file. This interface provides a flat interface to the underlying register file, which allows for example serialization code to access all registers.
Implements gem5::ThreadContext.
Definition at line 616 of file thread_context.cc.
References _instId, call(), and flattenedIntIds.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 353 of file thread_context.hh.
References readMiscRegNoEffect().
Implements gem5::ThreadContext.
Definition at line 572 of file thread_context.cc.
References _instId, call(), and miscRegIds.
Referenced by pcState(), readIntReg(), gem5::fastmodel::CortexA76TC::readIntRegFlat(), readMiscReg(), gem5::fastmodel::CortexA76TC::setCCRegFlat(), setIntReg(), and gem5::fastmodel::CortexA76TC::setIntRegFlat().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 688 of file thread_context.cc.
References _instId, call(), gem5::RegId::index(), gem5::ArmISA::offset, gem5::X86ISA::reg, vecPredRegIds, and vecPredRegs.
Referenced by readVecPredRegFlat().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 717 of file thread_context.cc.
References readVecPredReg(), and gem5::VecPredRegClass.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 660 of file thread_context.cc.
References _instId, call(), gem5::RegId::index(), gem5::X86ISA::reg, vecRegIds, and vecRegs.
Referenced by readVecRegFlat().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 682 of file thread_context.cc.
References readVecReg(), and gem5::VecRegClass.
|
inlineoverridevirtual |
Reimplemented from gem5::ThreadContext.
Definition at line 246 of file thread_context.hh.
|
overridevirtual |
Implements gem5::PCEventScope.
Definition at line 412 of file thread_context.cc.
References delBp(), gem5::ArmISA::e, and getOrAllocBp().
|
overridevirtual |
Implements gem5::PCEventScope.
Definition at line 400 of file thread_context.cc.
References _instId, gem5::ArmISA::e, getOrAllocBp(), and installBp().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 454 of file thread_context.cc.
References call(), comInstEventQueue, gem5::X86ISA::count, gem5::MipsISA::event, getCurrentInstCount(), maintainStepping(), and gem5::EventQueue::schedule().
|
protected |
Definition at line 289 of file thread_context.cc.
References _instId, call(), gem5::ArmSystem::callSemihosting(), gem5::curTick(), enableAfterPseudoEvent, getCpuPtr(), readIntReg(), gem5::EventManager::schedule(), and gem5::Event::scheduled().
|
overridevirtual |
Reimplemented from gem5::ThreadContext.
Definition at line 493 of file thread_context.cc.
References getCpuPtr().
Implements gem5::ThreadContext.
Definition at line 338 of file thread_context.hh.
References setCCRegFlat(), and gem5::X86ISA::val.
Implements gem5::ThreadContext.
Definition at line 651 of file thread_context.cc.
References _instId, call(), ccRegIds, panic_if, and gem5::X86ISA::val.
Referenced by setCCReg(), gem5::fastmodel::CortexA76TC::setCCRegFlat(), and gem5::fastmodel::CortexR52TC::setCCRegFlat().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 195 of file thread_context.hh.
References _contextId, and gem5::ArmISA::id.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 600 of file thread_context.cc.
References _instId, call(), intReg32Ids, intReg64Ids, gem5::ArmISA::MISCREG_CPSR, readMiscRegNoEffect(), and gem5::X86ISA::val.
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 629 of file thread_context.cc.
References _instId, call(), flattenedIntIds, panic_if, and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 360 of file thread_context.hh.
References setMiscRegNoEffect(), and gem5::X86ISA::val.
Referenced by gem5::fastmodel::CortexA76TC::setIntRegFlat().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 580 of file thread_context.cc.
References _instId, call(), miscRegIds, and gem5::X86ISA::val.
Referenced by setMiscReg().
|
inlineoverridevirtual |
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 507 of file thread_context.cc.
References _instId, _status, gem5::ThreadContext::Active, call(), gem5::EventManager::deschedule(), enableAfterPseudoEvent, getCpuPtr(), and gem5::Event::scheduled().
Referenced by activate(), halt(), and suspend().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 192 of file thread_context.hh.
References _threadId, and gem5::ArmISA::id.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverride |
Definition at line 331 of file thread_context.hh.
References panic.
|
inlineoverride |
Definition at line 443 of file thread_context.hh.
References panic.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
protected |
Definition at line 246 of file thread_context.cc.
References call(), and maintainStepping().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 189 of file thread_context.hh.
References _cpu, and gem5::BaseCPU::socketId().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 501 of file thread_context.cc.
References _status.
|
inlineoverridevirtual |
Set the status to Suspended.
Implements gem5::ThreadContext.
Definition at line 237 of file thread_context.hh.
References setStatus(), and gem5::ThreadContext::Suspended.
Referenced by initFromIrisInstance().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 191 of file thread_context.hh.
References _threadId.
Implemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
|
protected |
Definition at line 424 of file thread_context.cc.
References _instId, noThrow(), panic, translations, gem5::MipsISA::vaddr, and warn.
|
protected |
Definition at line 174 of file thread_context.cc.
References _instId, and call().
Referenced by delBp().
|
protected |
Definition at line 62 of file thread_context.hh.
Referenced by contextId(), and setContextId().
|
protected |
Definition at line 60 of file thread_context.hh.
Referenced by cpuId(), getCpuPtr(), getSystemPtr(), and socketId().
|
protected |
Definition at line 68 of file thread_context.hh.
Referenced by getCurrentInstCount(), initFromIrisInstance(), installBp(), instanceRegistryChanged(), maintainStepping(), pcState(), phaseInitLeave(), readCCRegFlat(), gem5::fastmodel::CortexR52TC::readIntReg(), readIntReg(), readIntRegFlat(), readMiscRegNoEffect(), readVecPredReg(), readVecReg(), schedule(), semihostingEvent(), setCCRegFlat(), gem5::fastmodel::CortexR52TC::setIntReg(), setIntReg(), setIntRegFlat(), setMiscRegNoEffect(), setStatus(), ThreadContext(), translateAddress(), and uninstallBp().
|
protected |
Definition at line 67 of file thread_context.hh.
Referenced by instanceRegistryChanged().
|
protected |
Definition at line 65 of file thread_context.hh.
Referenced by getIsaPtr().
|
protected |
Definition at line 64 of file thread_context.hh.
Referenced by getMMUPtr().
Definition at line 75 of file thread_context.hh.
Referenced by initFromIrisInstance(), setStatus(), and status().
|
protected |
Definition at line 63 of file thread_context.hh.
|
protected |
Definition at line 61 of file thread_context.hh.
Referenced by setThreadId(), and threadId().
|
protected |
Definition at line 131 of file thread_context.hh.
Referenced by delBp(), getOrAllocBp(), and initFromIrisInstance().
|
protected |
Definition at line 161 of file thread_context.hh.
Referenced by initFromIrisInstance(), and ThreadContext().
|
protected |
Definition at line 90 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexR52TC::initFromIrisInstance(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), readCCRegFlat(), and setCCRegFlat().
|
mutableprotected |
Definition at line 164 of file thread_context.hh.
Referenced by call(), initFromIrisInstance(), noThrow(), ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 105 of file thread_context.hh.
Referenced by descheduleInstCountEvent(), maintainStepping(), and scheduleInstCountEvent().
|
protected |
Definition at line 76 of file thread_context.hh.
Referenced by semihostingEvent(), setStatus(), ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 89 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexA76TC::initFromIrisInstance(), readIntRegFlat(), and setIntRegFlat().
|
protected |
Definition at line 93 of file thread_context.hh.
|
protected |
Definition at line 159 of file thread_context.hh.
Referenced by ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 87 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexR52TC::initFromIrisInstance(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), gem5::fastmodel::CortexR52TC::readIntReg(), readIntReg(), gem5::fastmodel::CortexR52TC::setIntReg(), and setIntReg().
|
protected |
Definition at line 88 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexA76TC::initFromIrisInstance(), readIntReg(), and setIntReg().
|
protected |
Definition at line 98 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexA76TC::getBpSpaceIds(), gem5::fastmodel::CortexR52TC::getBpSpaceIds(), initFromIrisInstance(), gem5::fastmodel::CortexR52TC::translateAddress(), and gem5::fastmodel::CortexA76TC::translateAddress().
|
protected |
Definition at line 86 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexA76TC::initFromIrisInstance(), readMiscRegNoEffect(), and setMiscRegNoEffect().
|
protected |
Definition at line 92 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexR52TC::initFromIrisInstance(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), and pcState().
|
protected |
Definition at line 158 of file thread_context.hh.
Referenced by ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 162 of file thread_context.hh.
Referenced by initFromIrisInstance(), and ThreadContext().
|
protected |
Definition at line 160 of file thread_context.hh.
Referenced by ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 99 of file thread_context.hh.
Referenced by initFromIrisInstance(), and translateAddress().
|
protected |
Definition at line 96 of file thread_context.hh.
Referenced by readVecPredReg().
|
mutableprotected |
Definition at line 73 of file thread_context.hh.
Referenced by readVecPredReg().
|
protected |
Definition at line 95 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexA76TC::initFromIrisInstance(), and readVecReg().
|
mutableprotected |
Definition at line 72 of file thread_context.hh.
Referenced by readVecReg().
|
protected |
Definition at line 101 of file thread_context.hh.
Referenced by getVirtProxy(), and initMemProxies().