gem5 v24.0.0.0
|
#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 |
typedef std::unordered_map< Iris::CanonicalMsn, iris::MemorySpaceId > | MemorySpaceMap |
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 |
InstDecoder * | getDecoderPtr () override |
System * | getSystemPtr () override |
BaseISA * | getIsaPtr () const override |
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. | |
void | suspend () override |
Set the status to Suspended. | |
void | halt () override |
Set the status to Halted. | |
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 | getReg (const RegId ®) const override |
void | getReg (const RegId ®, void *val) const override |
void * | getWritableReg (const RegId ®) override |
void | setReg (const RegId ®, RegVal val) override |
void | setReg (const RegId ®, const void *val) override |
iris::ResourceId | getIntRegRscId (RegIndex int_reg) const |
virtual RegVal | readIntReg (RegIndex reg_idx) const |
iris::ResourceId | getVecRegRscId (RegIndex vec_reg) const |
virtual const ArmISA::VecRegContainer & | readVecReg (const RegId ®) const |
virtual ArmISA::VecRegContainer & | getWritableVecReg (const RegId ®) |
virtual RegVal | readVecElem (const RegId ®) const |
iris::ResourceId | getVecPredRegRscId (RegIndex vec_reg) const |
virtual const ArmISA::VecPredRegContainer & | readVecPredReg (const RegId ®) const |
virtual ArmISA::VecPredRegContainer & | getWritableVecPredReg (const RegId ®) |
virtual RegVal | readCCReg (RegIndex reg_idx) const |
virtual void | setIntReg (RegIndex reg_idx, RegVal val) |
virtual void | setVecReg (const RegId ®, const ArmISA::VecRegContainer &val) |
virtual void | setVecElem (const RegId ®, RegVal val) |
virtual void | setVecPredReg (const RegId ®, const ArmISA::VecPredRegContainer &val) |
virtual void | setCCReg (RegIndex reg_idx, RegVal val) |
void | pcStateNoRecord (const PCStateBase &val) override |
const PCStateBase & | pcState () const override |
void | pcState (const PCStateBase &val) override |
iris::ResourceId | getMiscRegRscId (RegIndex misc_reg) const |
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 |
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 |
void | readMemWithCurrentMsn (Addr vaddr, size_t size, char *data) |
void | writeMemWithCurrentMsn (Addr vaddr, size_t size, const char *data) |
iris::ResourceId | getIntRegFlatRscId (RegIndex int_reg) const |
Flat register interfaces. | |
virtual RegVal | readIntRegFlat (RegIndex idx) const |
virtual void | setIntRegFlat (RegIndex idx, uint64_t val) |
virtual const ArmISA::VecRegContainer & | readVecRegFlat (RegIndex idx) const |
virtual ArmISA::VecRegContainer & | getWritableVecRegFlat (RegIndex idx) |
virtual void | setVecRegFlat (RegIndex idx, const ArmISA::VecRegContainer &val) |
virtual RegVal | readVecElemFlat (RegIndex idx) const |
virtual void | setVecElemFlat (RegIndex idx, RegVal val) |
virtual ArmISA::VecPredRegContainer | readVecPredRegFlat (RegIndex idx) const |
virtual ArmISA::VecPredRegContainer & | getWritableVecPredRegFlat (RegIndex idx) |
virtual void | setVecPredRegFlat (RegIndex idx, const ArmISA::VecPredRegContainer &val) |
iris::ResourceId | getCCRegFlatRscId (RegIndex cc_reg) const |
virtual RegVal | readCCRegFlat (RegIndex idx) const |
virtual void | setCCRegFlat (RegIndex idx, RegVal val) |
Public Member Functions inherited from gem5::ThreadContext | |
bool | getUseForClone () |
void | setUseForClone (bool new_val) |
void | quiesce () |
Quiesce thread context. | |
void | quiesceTick (Tick resume) |
Quiesce, suspend, and schedule activate at resume. | |
void | pcState (Addr addr) |
virtual int | exit () |
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) |
iris::MemorySpaceId | getMemorySpaceId (const Iris::CanonicalMsn &msn) const |
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 |
void | readMem (iris::MemorySpaceId space, Addr addr, void *p, size_t size) |
void | writeMem (iris::MemorySpaceId space, Addr addr, const void *p, size_t size) |
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) | |
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 54 of file thread_context.hh.
|
protected |
Definition at line 117 of file thread_context.hh.
|
protected |
Definition at line 134 of file thread_context.hh.
|
protected |
Definition at line 133 of file thread_context.hh.
|
protected |
Definition at line 132 of file thread_context.hh.
typedef std::map<int, std::string> gem5::Iris::ThreadContext::IdxNameMap |
Definition at line 60 of file thread_context.hh.
typedef std::unordered_map<Iris::CanonicalMsn, iris::MemorySpaceId> gem5::Iris::ThreadContext::MemorySpaceMap |
Definition at line 63 of file thread_context.hh.
typedef std::vector<iris::ResourceId> gem5::Iris::ThreadContext::ResourceIds |
Definition at line 59 of file thread_context.hh.
typedef std::map<std::string, iris::ResourceInfo> gem5::Iris::ThreadContext::ResourceMap |
Definition at line 57 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 334 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 401 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 245 of file thread_context.hh.
References gem5::ThreadContext::Active, and setStatus().
|
protected |
Definition at line 301 of file thread_context.cc.
|
inlineprotected |
Definition at line 171 of file thread_context.hh.
References client.
Referenced by getCurrentInstCount(), initFromIrisInstance(), installBp(), maintainStepping(), pcState(), pcState(), phaseInitLeave(), readCCRegFlat(), gem5::fastmodel::CortexR52TC::readIntReg(), readIntReg(), readIntRegFlat(), readMem(), readMiscRegNoEffect(), readVecPredReg(), readVecReg(), scheduleInstCountEvent(), semihostingEvent(), setCCRegFlat(), gem5::fastmodel::CortexR52TC::setIntReg(), setIntReg(), setIntRegFlat(), setMiscRegNoEffect(), setStatus(), simulationTimeEvent(), ThreadContext(), uninstallBp(), writeMem(), and ~ThreadContext().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 206 of file thread_context.hh.
References _contextId.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 200 of file thread_context.hh.
References _cpu, and gem5::BaseCPU::cpuId().
|
protected |
Definition at line 199 of file thread_context.cc.
References bps, panic_if, and uninstallBp().
Referenced by remove().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 510 of file thread_context.cc.
References comInstEventQueue, gem5::EventQueue::deschedule(), gem5::MipsISA::event, and maintainStepping().
|
protected |
Definition at line 107 of file thread_context.cc.
References name().
Referenced by extractResourceMap(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), and gem5::fastmodel::CortexR52TC::initFromIrisInstance().
|
protected |
Definition at line 114 of file thread_context.cc.
References extractResourceId(), gem5::ArmISA::ids, and name().
Referenced by gem5::fastmodel::CortexA76TC::initFromIrisInstance(), and gem5::fastmodel::CortexR52TC::initFromIrisInstance().
|
protectedpure virtual |
Implemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Referenced by installBp().
iris::ResourceId gem5::Iris::ThreadContext::getCCRegFlatRscId | ( | RegIndex | cc_reg | ) | const |
Definition at line 853 of file thread_context.cc.
References ccRegIds.
Referenced by readCCRegFlat(), and setCCRegFlat().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 215 of file thread_context.hh.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 199 of file thread_context.hh.
References _cpu.
Referenced by semihostingEvent(), setStatus(), and ~ThreadContext().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 517 of file thread_context.cc.
References _instId, call(), gem5::X86ISA::count, and panic_if.
Referenced by maintainStepping(), and scheduleInstCountEvent().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
iris::ResourceId gem5::Iris::ThreadContext::getIntRegFlatRscId | ( | RegIndex | int_reg | ) | const |
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.
Definition at line 818 of file thread_context.cc.
References flattenedIntIds.
Referenced by readIntRegFlat(), and setIntRegFlat().
iris::ResourceId gem5::Iris::ThreadContext::getIntRegRscId | ( | RegIndex | int_reg | ) | const |
Definition at line 788 of file thread_context.cc.
References intReg32Ids, intReg64Ids, gem5::ArmISA::intRegClass, gem5::ArmISA::MISCREG_CPSR, panic_if, and readMiscRegNoEffect().
Referenced by readIntReg(), and setIntReg().
|
inlineoverridevirtual |
|
protected |
Definition at line 130 of file thread_context.cc.
References memorySpaceIds.
Referenced by gem5::fastmodel::CortexA76TC::getBpSpaceIds(), gem5::fastmodel::CortexR52TC::getBpSpaceIds(), readMemWithCurrentMsn(), gem5::fastmodel::CortexR52TC::sendFunctional(), sendFunctional(), gem5::fastmodel::CortexA76TC::translateAddress(), and writeMemWithCurrentMsn().
iris::ResourceId gem5::Iris::ThreadContext::getMiscRegRscId | ( | RegIndex | misc_reg | ) | const |
Definition at line 613 of file thread_context.cc.
References gem5::ArmISA::miscRegClass, miscRegIds, and panic_if.
Referenced by readMiscRegNoEffect(), and setMiscRegNoEffect().
|
inlineoverridevirtual |
|
protected |
Definition at line 166 of file thread_context.cc.
References bps, panic_if, and pc.
Referenced by remove(), schedule(), and simulationTimeEvent().
|
inlineoverridevirtual |
Reimplemented from gem5::ThreadContext.
Definition at line 641 of file thread_context.cc.
References getReg(), gem5::X86ISA::reg, and gem5::X86ISA::val.
Referenced by getReg().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 655 of file thread_context.cc.
References gem5::CCRegClass, gem5::IntRegClass, gem5::MiscRegClass, panic, readCCReg(), readCCRegFlat(), readIntReg(), readIntRegFlat(), readVecElem(), readVecElemFlat(), readVecPredReg(), readVecPredRegFlat(), readVecReg(), readVecRegFlat(), gem5::X86ISA::reg, gem5::X86ISA::type, gem5::X86ISA::val, gem5::VecElemClass, gem5::VecPredRegClass, and gem5::VecRegClass.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 222 of file thread_context.hh.
References _cpu, and gem5::BaseCPU::system.
iris::ResourceId gem5::Iris::ThreadContext::getVecPredRegRscId | ( | RegIndex | vec_reg | ) | const |
Definition at line 922 of file thread_context.cc.
References vecPredRegIds.
Referenced by readVecPredReg().
iris::ResourceId gem5::Iris::ThreadContext::getVecRegRscId | ( | RegIndex | vec_reg | ) | const |
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 761 of file thread_context.cc.
References getWritableVecPredReg(), getWritableVecPredRegFlat(), getWritableVecReg(), getWritableVecRegFlat(), panic, gem5::X86ISA::reg, gem5::X86ISA::type, gem5::VecPredRegClass, and gem5::VecRegClass.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlineoverridevirtual |
Set the status to Halted.
Implements gem5::ThreadContext.
Definition at line 247 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 66 of file thread_context.cc.
References _instId, _status, gem5::ThreadContext::Active, bps, breakpointEventStreamId, call(), client, gem5::statistics::enabled(), installBp(), memorySpaceIds, memorySpaces, semihostingEventStreamId, suspend(), gem5::ThreadContext::Suspended, and translations.
Referenced by phaseInitLeave().
|
protected |
Definition at line 179 of file thread_context.cc.
References _instId, call(), getBpSpaceIds(), gem5::ArmISA::id, and pc.
Referenced by initFromIrisInstance(), and schedule().
|
protected |
Definition at line 211 of file thread_context.cc.
References _instId, _irisPath, gem5::MipsISA::event, gem5::ArmISA::id, name(), and panic.
|
protected |
Definition at line 137 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().
|
inlineprotected |
Definition at line 172 of file thread_context.hh.
References client.
Referenced by ThreadContext(), and translateAddress().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 578 of file thread_context.cc.
References _instId, gem5::X86ISA::addr, call(), gem5::ArmISA::itState(), gem5::ArmISA::MISCREG_CPSR, pc, pcRscId, and readMiscRegNoEffect().
Referenced by pcStateNoRecord().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 600 of file thread_context.cc.
References _instId, call(), gem5::PCStateBase::instAddr(), gem5::ArmISA::MISCREG_CPSR, pc, pcRscId, readMiscRegNoEffect(), and gem5::X86ISA::val.
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 350 of file thread_context.hh.
References pcState(), and gem5::X86ISA::val.
|
protected |
Definition at line 233 of file thread_context.cc.
References _instId, call(), initFromIrisInstance(), and name().
Definition at line 318 of file thread_context.hh.
References readCCRegFlat().
Referenced by getReg().
Reimplemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Definition at line 862 of file thread_context.cc.
References _instId, call(), and getCCRegFlatRscId().
Referenced by getReg(), readCCReg(), gem5::fastmodel::CortexA76TC::readCCRegFlat(), and gem5::fastmodel::CortexR52TC::readCCRegFlat().
Reimplemented in gem5::fastmodel::CortexR52TC.
Definition at line 803 of file thread_context.cc.
References _instId, call(), and getIntRegRscId().
Referenced by getReg(), and semihostingEvent().
Reimplemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Definition at line 831 of file thread_context.cc.
References _instId, call(), and getIntRegFlatRscId().
Referenced by getReg().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
protected |
Definition at line 448 of file thread_context.cc.
References _instId, gem5::X86ISA::addr, call(), gem5::ArmISA::err, gem5::MipsISA::p, panic_if, and gem5::MipsISA::r.
Referenced by readMemWithCurrentMsn(), gem5::fastmodel::CortexR52TC::sendFunctional(), and sendFunctional().
void gem5::Iris::ThreadContext::readMemWithCurrentMsn | ( | Addr | vaddr, |
size_t | size, | ||
char * | data ) |
Definition at line 544 of file thread_context.cc.
References gem5::Iris::CurrentMsn, data, getMemorySpaceId(), readMem(), and gem5::MipsISA::vaddr.
Implements gem5::ThreadContext.
Definition at line 358 of file thread_context.hh.
References readMiscRegNoEffect().
Implements gem5::ThreadContext.
Definition at line 626 of file thread_context.cc.
References _instId, call(), and getMiscRegRscId().
Referenced by getIntRegRscId(), pcState(), pcState(), gem5::fastmodel::CortexA76TC::readIntRegFlat(), readMiscReg(), gem5::fastmodel::CortexR52TC::readMiscRegNoEffect(), gem5::fastmodel::CortexA76TC::setCCRegFlat(), and gem5::fastmodel::CortexA76TC::setIntRegFlat().
|
inlineoverridevirtual |
|
virtual |
Definition at line 931 of file thread_context.cc.
References _instId, call(), getVecPredRegRscId(), gem5::RegId::index(), gem5::ArmISA::offset, gem5::X86ISA::reg, and vecPredRegs.
Referenced by getReg(), and readVecPredRegFlat().
|
virtual |
Definition at line 961 of file thread_context.cc.
References readVecPredReg(), and gem5::ArmISA::vecPredRegClass.
Referenced by getReg().
|
virtual |
Reimplemented in gem5::fastmodel::CortexR52TC.
Definition at line 893 of file thread_context.cc.
References _instId, call(), getVecRegRscId(), gem5::RegId::index(), gem5::X86ISA::reg, vecRegs, and gem5::VecRegContainer< SIZE >::zero().
Referenced by getReg(), and readVecRegFlat().
|
virtual |
Definition at line 916 of file thread_context.cc.
References readVecReg(), and gem5::ArmISA::vecRegClass.
Referenced by getReg().
|
inlineoverridevirtual |
Reimplemented from gem5::ThreadContext.
Definition at line 255 of file thread_context.hh.
|
overridevirtual |
Implements gem5::PCEventScope.
Definition at line 436 of file thread_context.cc.
References delBp(), gem5::ArmISA::e, and getOrAllocBp().
|
overridevirtual |
Implements gem5::PCEventScope.
Definition at line 424 of file thread_context.cc.
References _instId, gem5::ArmISA::e, getOrAllocBp(), and installBp().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 499 of file thread_context.cc.
References call(), comInstEventQueue, gem5::X86ISA::count, gem5::MipsISA::event, getCurrentInstCount(), maintainStepping(), and gem5::EventQueue::schedule().
|
protected |
Definition at line 313 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 526 of file thread_context.cc.
References gem5::X86ISA::addr, data, gem5::Packet::getAddr(), getMemorySpaceId(), gem5::Packet::getPtr(), gem5::Packet::getSize(), gem5::Packet::isRead(), gem5::ArmISA::isSecure(), gem5::Packet::makeResponse(), gem5::Iris::PhysicalMemoryNonSecureMsn, gem5::Iris::PhysicalMemorySecureMsn, readMem(), and writeMem().
Definition at line 345 of file thread_context.hh.
References setCCRegFlat(), and gem5::X86ISA::val.
Referenced by setReg().
Reimplemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Definition at line 873 of file thread_context.cc.
References _instId, call(), gem5::ArmISA::ccRegClass, getCCRegFlatRscId(), panic_if, and gem5::X86ISA::val.
Referenced by setCCReg(), gem5::fastmodel::CortexA76TC::setCCRegFlat(), gem5::fastmodel::CortexR52TC::setCCRegFlat(), and setReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 207 of file thread_context.hh.
References _contextId, and gem5::ArmISA::id.
|
inlineoverridevirtual |
Reimplemented in gem5::fastmodel::CortexR52TC.
Definition at line 811 of file thread_context.cc.
References _instId, call(), getIntRegRscId(), and gem5::X86ISA::val.
Referenced by setReg().
|
virtual |
Reimplemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
Definition at line 842 of file thread_context.cc.
References _instId, call(), getIntRegFlatRscId(), gem5::ArmISA::intRegClass, panic_if, and gem5::X86ISA::val.
Referenced by setReg().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 365 of file thread_context.hh.
References setMiscRegNoEffect(), and gem5::X86ISA::val.
Referenced by gem5::fastmodel::CortexA76TC::setIntRegFlat().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 634 of file thread_context.cc.
References _instId, call(), getMiscRegRscId(), and gem5::X86ISA::val.
Referenced by setMiscReg(), and gem5::fastmodel::CortexR52TC::setMiscRegNoEffect().
|
inlineoverridevirtual |
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 708 of file thread_context.cc.
References gem5::CCRegClass, gem5::IntRegClass, gem5::MiscRegClass, panic, gem5::X86ISA::reg, setCCReg(), setCCRegFlat(), setIntReg(), setIntRegFlat(), setVecElem(), setVecElemFlat(), setVecPredReg(), setVecPredRegFlat(), setVecReg(), setVecRegFlat(), gem5::X86ISA::type, gem5::X86ISA::val, gem5::VecElemClass, gem5::VecPredRegClass, and gem5::VecRegClass.
Reimplemented from gem5::ThreadContext.
Definition at line 649 of file thread_context.cc.
References gem5::X86ISA::reg, setReg(), and gem5::X86ISA::val.
Referenced by setReg().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 563 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 204 of file thread_context.hh.
References _threadId, and gem5::ArmISA::id.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
protected |
Definition at line 263 of file thread_context.cc.
References bpAddr, call(), gem5::ArmISA::e, getOrAllocBp(), maintainStepping(), and gem5::PCEvent::process().
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 201 of file thread_context.hh.
References _cpu, and gem5::BaseCPU::socketId().
|
overridevirtual |
Implements gem5::ThreadContext.
Definition at line 557 of file thread_context.cc.
References _status.
|
inlineoverridevirtual |
Set the status to Suspended.
Implements gem5::ThreadContext.
Definition at line 246 of file thread_context.hh.
References setStatus(), and gem5::ThreadContext::Suspended.
Referenced by initFromIrisInstance().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements gem5::ThreadContext.
Definition at line 203 of file thread_context.hh.
References _threadId.
Implemented in gem5::fastmodel::CortexA76TC, and gem5::fastmodel::CortexR52TC.
|
protected |
Definition at line 469 of file thread_context.cc.
References _instId, noThrow(), panic, translations, gem5::MipsISA::vaddr, and warn.
|
protected |
Definition at line 191 of file thread_context.cc.
References _instId, and call().
Referenced by delBp().
|
protected |
Definition at line 458 of file thread_context.cc.
References _instId, gem5::X86ISA::addr, call(), data, gem5::ArmISA::err, gem5::MipsISA::p, panic_if, and gem5::MipsISA::r.
Referenced by gem5::fastmodel::CortexR52TC::sendFunctional(), sendFunctional(), and writeMemWithCurrentMsn().
void gem5::Iris::ThreadContext::writeMemWithCurrentMsn | ( | Addr | vaddr, |
size_t | size, | ||
const char * | data ) |
Definition at line 550 of file thread_context.cc.
References gem5::Iris::CurrentMsn, data, getMemorySpaceId(), gem5::MipsISA::vaddr, and writeMem().
|
protected |
Definition at line 68 of file thread_context.hh.
Referenced by contextId(), and setContextId().
|
protected |
Definition at line 66 of file thread_context.hh.
Referenced by cpuId(), getCpuPtr(), getSystemPtr(), and socketId().
|
protected |
Definition at line 74 of file thread_context.hh.
Referenced by getCurrentInstCount(), initFromIrisInstance(), installBp(), instanceRegistryChanged(), maintainStepping(), pcState(), pcState(), phaseInitLeave(), readCCRegFlat(), gem5::fastmodel::CortexR52TC::readIntReg(), readIntReg(), readIntRegFlat(), readMem(), readMiscRegNoEffect(), readVecPredReg(), readVecReg(), schedule(), semihostingEvent(), setCCRegFlat(), gem5::fastmodel::CortexR52TC::setIntReg(), setIntReg(), setIntRegFlat(), setMiscRegNoEffect(), setStatus(), ThreadContext(), translateAddress(), uninstallBp(), and writeMem().
|
protected |
Definition at line 73 of file thread_context.hh.
Referenced by instanceRegistryChanged().
|
protected |
Definition at line 71 of file thread_context.hh.
Referenced by getIsaPtr().
|
protected |
Definition at line 70 of file thread_context.hh.
Referenced by getMMUPtr().
Definition at line 81 of file thread_context.hh.
Referenced by initFromIrisInstance(), setStatus(), and status().
|
protected |
Definition at line 69 of file thread_context.hh.
|
protected |
Definition at line 67 of file thread_context.hh.
Referenced by setThreadId(), and threadId().
|
protected |
Definition at line 137 of file thread_context.hh.
Referenced by breakpointHit(), and simulationTimeEvent().
|
protected |
Definition at line 136 of file thread_context.hh.
Referenced by delBp(), getOrAllocBp(), and initFromIrisInstance().
|
protected |
Definition at line 167 of file thread_context.hh.
Referenced by initFromIrisInstance(), and ThreadContext().
|
protected |
Definition at line 97 of file thread_context.hh.
Referenced by getCCRegFlatRscId(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), and gem5::fastmodel::CortexR52TC::initFromIrisInstance().
|
mutableprotected |
Definition at line 170 of file thread_context.hh.
Referenced by call(), initFromIrisInstance(), noThrow(), ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 110 of file thread_context.hh.
Referenced by descheduleInstCountEvent(), maintainStepping(), and scheduleInstCountEvent().
|
protected |
Definition at line 82 of file thread_context.hh.
Referenced by semihostingEvent(), setStatus(), ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 96 of file thread_context.hh.
Referenced by getIntRegFlatRscId(), and gem5::fastmodel::CortexA76TC::initFromIrisInstance().
|
protected |
Definition at line 100 of file thread_context.hh.
|
protected |
Definition at line 165 of file thread_context.hh.
Referenced by ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 94 of file thread_context.hh.
Referenced by getIntRegRscId(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), gem5::fastmodel::CortexR52TC::initFromIrisInstance(), gem5::fastmodel::CortexR52TC::readIntReg(), and gem5::fastmodel::CortexR52TC::setIntReg().
|
protected |
Definition at line 95 of file thread_context.hh.
Referenced by getIntRegRscId(), and gem5::fastmodel::CortexA76TC::initFromIrisInstance().
|
protected |
Definition at line 107 of file thread_context.hh.
Referenced by getMemorySpaceId(), and initFromIrisInstance().
|
protected |
Definition at line 105 of file thread_context.hh.
Referenced by initFromIrisInstance().
|
protected |
Definition at line 93 of file thread_context.hh.
Referenced by getMiscRegRscId(), gem5::fastmodel::CortexA76TC::initFromIrisInstance(), and gem5::fastmodel::CortexR52TC::initFromIrisInstance().
|
mutableprotected |
Definition at line 174 of file thread_context.hh.
Referenced by breakpointHit(), getOrAllocBp(), installBp(), pcState(), and pcState().
|
protected |
Definition at line 99 of file thread_context.hh.
Referenced by gem5::fastmodel::CortexA76TC::initFromIrisInstance(), gem5::fastmodel::CortexR52TC::initFromIrisInstance(), pcState(), and pcState().
|
protected |
Definition at line 164 of file thread_context.hh.
Referenced by ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 168 of file thread_context.hh.
Referenced by initFromIrisInstance(), and ThreadContext().
|
protected |
Definition at line 166 of file thread_context.hh.
Referenced by ThreadContext(), and ~ThreadContext().
|
protected |
Definition at line 106 of file thread_context.hh.
Referenced by initFromIrisInstance(), and translateAddress().
|
protected |
Definition at line 103 of file thread_context.hh.
Referenced by getVecPredRegRscId().
|
mutableprotected |
Definition at line 79 of file thread_context.hh.
Referenced by readVecPredReg().
|
protected |
Definition at line 102 of file thread_context.hh.
Referenced by getVecRegRscId(), and gem5::fastmodel::CortexA76TC::initFromIrisInstance().
|
mutableprotected |
Definition at line 78 of file thread_context.hh.
Referenced by readVecReg().