gem5
v21.1.0.2
|
Physical register ID. More...
#include <reg_class.hh>
Public Member Functions | |
PhysRegId () | |
PhysRegId (RegClass _regClass, RegIndex _regIdx, RegIndex _flatIdx) | |
Scalar PhysRegId constructor. More... | |
PhysRegId (RegClass _regClass, RegIndex _regIdx, ElemIndex elem_idx, RegIndex flat_idx) | |
Vector PhysRegId constructor (w/ elemIndex). More... | |
bool | isFixedMapping () const |
Returns true if this register is always associated to the same architectural register. More... | |
const RegIndex & | flatIndex () const |
Flat index accessor. More... | |
int | getNumPinnedWrites () const |
void | setNumPinnedWrites (int numWrites) |
void | decrNumPinnedWrites () |
void | incrNumPinnedWrites () |
bool | isPinned () const |
int | getNumPinnedWritesToComplete () const |
void | setNumPinnedWritesToComplete (int numWrites) |
void | decrNumPinnedWritesToComplete () |
void | incrNumPinnedWritesToComplete () |
bool | operator< (const PhysRegId &that) const |
Explicit forward methods, to prevent comparisons of PhysRegId with RegIds. More... | |
bool | operator== (const PhysRegId &that) const |
bool | operator!= (const PhysRegId &that) const |
RegIndex | index () const |
Visible RegId methods. More... | |
RegClass | classValue () const |
Class accessor. More... | |
const char * | className () const |
Return a const char* with the register class name. More... | |
RegIndex | elemIndex () const |
Elem accessor. More... | |
bool | is (RegClass reg_class) const |
Static Public Member Functions | |
static PhysRegId | elemId (PhysRegId *vid, ElemIndex elem) |
Private Attributes | |
RegIndex | flatIdx |
int | numPinnedWritesToComplete |
bool | pinned |
![]() | |
RegClass | regClass |
RegIndex | regIdx |
ElemIndex | elemIdx |
int | numPinnedWrites |
Additional Inherited Members | |
![]() | |
RegId () | |
RegId (RegClass reg_class, RegIndex reg_idx) | |
RegId (RegClass reg_class, RegIndex reg_idx, ElemIndex elem_idx) | |
bool | operator== (const RegId &that) const |
bool | operator!= (const RegId &that) const |
bool | operator< (const RegId &that) const |
Order operator. More... | |
bool | isRenameable () const |
Return true if this register can be renamed. More... | |
bool | is (RegClass reg_class) const |
RegIndex | elemIndex () const |
Elem accessor. More... | |
RegClass | classValue () const |
Class accessor. More... | |
const char * | className () const |
Return a const char* with the register class name. More... | |
int | getNumPinnedWrites () const |
void | setNumPinnedWrites (int num_writes) |
RegIndex | index () const |
Index accessors. More... | |
RegIndex | flatIndex () const |
Index flattening. More... | |
![]() | |
static const char * | regClassStrings [] |
static constexpr size_t | Scale = TheISA::NumVecElemPerVecReg |
Physical register ID.
Like a register ID but physical. The inheritance is private because the only relationship between this types is functional, and it is done to prevent code replication.
Definition at line 198 of file reg_class.hh.
|
inlineexplicit |
Definition at line 206 of file reg_class.hh.
Referenced by elemId().
|
inlineexplicit |
Scalar PhysRegId constructor.
Definition at line 211 of file reg_class.hh.
|
inlineexplicit |
Vector PhysRegId constructor (w/ elemIndex).
Definition at line 218 of file reg_class.hh.
|
inline |
Return a const char* with the register class name.
Definition at line 182 of file reg_class.hh.
Referenced by gem5::o3::UnifiedFreeList::addReg(), gem5::o3::InstructionQueue::addToDependents(), gem5::o3::InstructionQueue::addToProducers(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::Scoreboard::setReg(), gem5::o3::ElasticTrace::updateRegDep(), and gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Class accessor.
Definition at line 180 of file reg_class.hh.
Referenced by gem5::o3::UnifiedFreeList::addReg().
|
inline |
Definition at line 287 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 304 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
Definition at line 266 of file reg_class.hh.
References index(), is(), PhysRegId(), gem5::VecElemClass, and gem5::VecRegClass.
|
inline |
Elem accessor.
Definition at line 178 of file reg_class.hh.
Referenced by gem5::o3::PhysRegFile::readVecElem(), and gem5::o3::PhysRegFile::setVecElem().
|
inline |
Flat index accessor.
Definition at line 263 of file reg_class.hh.
References flatIdx.
Referenced by gem5::o3::InstructionQueue::addToDependents(), gem5::o3::InstructionQueue::addToProducers(), gem5::o3::InstructionQueue::doSquash(), gem5::o3::Scoreboard::getReg(), gem5::o3::SimpleRenameMap::rename(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::Scoreboard::setReg(), gem5::o3::Scoreboard::unsetReg(), gem5::o3::ElasticTrace::updateRegDep(), and gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 272 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 293 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 288 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::DynInst::setSquashed().
|
inline |
Definition at line 305 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::DynInst::setSquashed().
|
inline |
Visible RegId methods.
Definition at line 154 of file reg_class.hh.
Referenced by gem5::o3::UnifiedFreeList::addReg(), gem5::o3::InstructionQueue::addToDependents(), gem5::o3::InstructionQueue::addToProducers(), elemId(), gem5::o3::Scoreboard::getReg(), gem5::o3::PhysRegFile::readCCReg(), gem5::o3::PhysRegFile::readFloatReg(), gem5::o3::PhysRegFile::readIntReg(), gem5::o3::PhysRegFile::readVecElem(), gem5::o3::PhysRegFile::readVecPredReg(), gem5::o3::PhysRegFile::readVecReg(), gem5::o3::SimpleRenameMap::rename(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::PhysRegFile::setCCReg(), gem5::o3::PhysRegFile::setFloatReg(), gem5::o3::PhysRegFile::setIntReg(), gem5::o3::Scoreboard::setReg(), gem5::o3::PhysRegFile::setVecElem(), gem5::o3::PhysRegFile::setVecPredReg(), gem5::o3::PhysRegFile::setVecReg(), gem5::o3::Scoreboard::unsetReg(), and gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 150 of file reg_class.hh.
Referenced by elemId(), gem5::o3::Scoreboard::getReg(), gem5::o3::PhysRegFile::readCCReg(), gem5::o3::PhysRegFile::readFloatReg(), gem5::o3::PhysRegFile::readIntReg(), gem5::o3::PhysRegFile::readVecElem(), gem5::o3::PhysRegFile::readVecPredReg(), gem5::o3::PhysRegFile::readVecReg(), gem5::o3::PhysRegFile::setCCReg(), gem5::o3::UnifiedRenameMap::setEntry(), gem5::o3::PhysRegFile::setFloatReg(), gem5::o3::PhysRegFile::setIntReg(), gem5::o3::PhysRegFile::setVecElem(), gem5::o3::PhysRegFile::setVecPredReg(), gem5::o3::PhysRegFile::setVecReg(), and gem5::o3::Scoreboard::unsetReg().
|
inline |
Returns true if this register is always associated to the same architectural register.
Definition at line 260 of file reg_class.hh.
References gem5::RegId::isRenameable().
Referenced by gem5::o3::InstructionQueue::addToDependents(), gem5::o3::InstructionQueue::addToProducers(), gem5::o3::InstructionQueue::doSquash(), gem5::o3::Scoreboard::getReg(), gem5::o3::Scoreboard::setReg(), gem5::o3::Scoreboard::unsetReg(), and gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 290 of file reg_class.hh.
References pinned.
Referenced by gem5::o3::DynInst::renameDestReg(), gem5::o3::DynInst::setSquashed(), and gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 250 of file reg_class.hh.
References gem5::RegId::operator!=().
|
inline |
Explicit forward methods, to prevent comparisons of PhysRegId with RegIds.
Definition at line 238 of file reg_class.hh.
References gem5::RegId::operator<().
|
inline |
Definition at line 244 of file reg_class.hh.
References gem5::RegId::operator==().
|
inline |
Definition at line 275 of file reg_class.hh.
References gem5::RegId::numPinnedWrites, and pinned.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 299 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
private |
Definition at line 201 of file reg_class.hh.
Referenced by flatIndex().
|
private |
Definition at line 202 of file reg_class.hh.
Referenced by decrNumPinnedWritesToComplete(), getNumPinnedWritesToComplete(), incrNumPinnedWritesToComplete(), and setNumPinnedWritesToComplete().
|
private |
Definition at line 203 of file reg_class.hh.
Referenced by isPinned(), and setNumPinnedWrites().