gem5
v21.2.0.0
|
Physical register ID. More...
#include <reg_class.hh>
Public Member Functions | |
PhysRegId () | |
PhysRegId (RegClassType _regClass, RegIndex _regIdx, RegIndex _flatIdx) | |
Scalar PhysRegId constructor. More... | |
PhysRegId (RegClassType _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... | |
RegClassType | 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 (RegClassType reg_class) const |
Static Public Member Functions | |
static PhysRegId | elemId (PhysRegId *vid, ElemIndex elem) |
Private Attributes | |
RegIndex | flatIdx |
int | numPinnedWritesToComplete |
bool | pinned |
![]() | |
RegClassType | regClass |
RegIndex | regIdx |
ElemIndex | elemIdx |
int | numPinnedWrites |
Additional Inherited Members | |
![]() | |
RegId () | |
RegId (RegClassType reg_class, RegIndex reg_idx) | |
RegId (RegClassType 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 (RegClassType reg_class) const |
RegIndex | elemIndex () const |
Elem accessor. More... | |
RegClassType | 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 224 of file reg_class.hh.
|
inlineexplicit |
Definition at line 232 of file reg_class.hh.
Referenced by elemId().
|
inlineexplicit |
Scalar PhysRegId constructor.
Definition at line 237 of file reg_class.hh.
|
inlineexplicit |
Vector PhysRegId constructor (w/ elemIndex).
Definition at line 244 of file reg_class.hh.
|
inline |
Return a const char* with the register class name.
Definition at line 208 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 206 of file reg_class.hh.
Referenced by gem5::o3::UnifiedFreeList::addReg().
|
inline |
Definition at line 313 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 330 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
Definition at line 292 of file reg_class.hh.
References index(), is(), PhysRegId(), gem5::VecElemClass, and gem5::VecRegClass.
|
inline |
Elem accessor.
Definition at line 204 of file reg_class.hh.
Referenced by gem5::o3::PhysRegFile::readVecElem(), and gem5::o3::PhysRegFile::setVecElem().
|
inline |
Flat index accessor.
Definition at line 289 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 298 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 319 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 314 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::DynInst::setSquashed().
|
inline |
Definition at line 331 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::DynInst::setSquashed().
|
inline |
Visible RegId methods.
Definition at line 180 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 176 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 286 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 316 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 276 of file reg_class.hh.
References gem5::RegId::operator!=().
|
inline |
Explicit forward methods, to prevent comparisons of PhysRegId with RegIds.
Definition at line 264 of file reg_class.hh.
References gem5::RegId::operator<().
|
inline |
Definition at line 270 of file reg_class.hh.
References gem5::RegId::operator==().
|
inline |
Definition at line 301 of file reg_class.hh.
References gem5::RegId::numPinnedWrites, and pinned.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 325 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
private |
Definition at line 227 of file reg_class.hh.
Referenced by flatIndex().
|
private |
Definition at line 228 of file reg_class.hh.
Referenced by decrNumPinnedWritesToComplete(), getNumPinnedWritesToComplete(), incrNumPinnedWritesToComplete(), and setNumPinnedWritesToComplete().
|
private |
Definition at line 229 of file reg_class.hh.
Referenced by isPinned(), and setNumPinnedWrites().