gem5
v22.0.0.1
|
Physical register ID. More...
#include <reg_class.hh>
Public Member Functions | |
PhysRegId () | |
PhysRegId (RegClassType _regClass, RegIndex _regIdx, RegIndex _flatIdx) | |
Scalar PhysRegId constructor. 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 |
constexpr RegIndex | index () const |
Visible RegId methods. More... | |
constexpr RegClassType | classValue () const |
Class accessor. More... | |
constexpr const char * | className () const |
Return a const char* with the register class name. More... | |
constexpr bool | is (RegClassType reg_class) const |
Private Attributes | |
RegIndex | flatIdx |
int | numPinnedWritesToComplete |
bool | pinned |
![]() | |
RegClassType | regClass |
RegIndex | regIdx |
int | numPinnedWrites |
Additional Inherited Members | |
![]() | |
constexpr | RegId () |
constexpr | RegId (RegClassType reg_class, RegIndex reg_idx) |
constexpr | operator RegIndex () const |
constexpr bool | operator== (const RegId &that) const |
constexpr bool | operator!= (const RegId &that) const |
constexpr bool | operator< (const RegId &that) const |
Order operator. More... | |
constexpr bool | isRenameable () const |
Return true if this register can be renamed. More... | |
constexpr bool | is (RegClassType reg_class) const |
constexpr RegIndex | index () const |
Index accessors. More... | |
constexpr RegClassType | classValue () const |
Class accessor. More... | |
constexpr const char * | className () const |
Return a const char* with the register class name. More... | |
int | getNumPinnedWrites () const |
void | setNumPinnedWrites (int num_writes) |
![]() | |
static const char * | regClassStrings [] |
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 245 of file reg_class.hh.
|
inlineexplicit |
Definition at line 253 of file reg_class.hh.
|
inlineexplicit |
Scalar PhysRegId constructor.
Definition at line 258 of file reg_class.hh.
|
inlineconstexpr |
Return a const char* with the register class name.
Definition at line 194 of file reg_class.hh.
Referenced by 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().
|
inlineconstexpr |
Class accessor.
Definition at line 191 of file reg_class.hh.
Referenced by gem5::o3::UnifiedFreeList::addReg(), gem5::o3::PhysRegFile::getReg(), gem5::o3::CPU::getReg(), gem5::o3::PhysRegFile::getWritableReg(), gem5::o3::CPU::getWritableReg(), gem5::o3::PhysRegFile::setReg(), and gem5::o3::CPU::setReg().
|
inline |
Definition at line 319 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 336 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Flat index accessor.
Definition at line 302 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 304 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 325 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 320 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::DynInst::setSquashed().
|
inline |
Definition at line 337 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::DynInst::setSquashed().
|
inlineconstexpr |
Visible RegId methods.
Definition at line 188 of file reg_class.hh.
Referenced by gem5::o3::InstructionQueue::addToDependents(), gem5::o3::InstructionQueue::addToProducers(), gem5::o3::PhysRegFile::getReg(), gem5::o3::PhysRegFile::getWritableReg(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::Scoreboard::setReg(), gem5::o3::PhysRegFile::setReg(), and gem5::o3::InstructionQueue::wakeDependents().
|
inlineconstexpr |
Definition at line 181 of file reg_class.hh.
Referenced by gem5::o3::SimpleRenameMap::rename(), and gem5::o3::UnifiedRenameMap::setEntry().
|
inline |
Returns true if this register is always associated to the same architectural register.
Definition at line 299 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 322 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 289 of file reg_class.hh.
References gem5::RegId::operator!=().
|
inline |
Explicit forward methods, to prevent comparisons of PhysRegId with RegIds.
Definition at line 277 of file reg_class.hh.
References gem5::RegId::operator<().
|
inline |
Definition at line 283 of file reg_class.hh.
References gem5::RegId::operator==().
|
inline |
Definition at line 307 of file reg_class.hh.
References gem5::RegId::numPinnedWrites, and pinned.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 331 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
private |
Definition at line 248 of file reg_class.hh.
Referenced by flatIndex().
|
private |
Definition at line 249 of file reg_class.hh.
Referenced by decrNumPinnedWritesToComplete(), getNumPinnedWritesToComplete(), incrNumPinnedWritesToComplete(), and setNumPinnedWritesToComplete().
|
private |
Definition at line 250 of file reg_class.hh.
Referenced by isPinned(), and setNumPinnedWrites().