|
gem5 [DEVELOP-FOR-25.1]
|
Physical register ID. More...
#include <reg_class.hh>
Public Member Functions | |
| PhysRegId () | |
| PhysRegId (const RegClass ®_class, RegIndex _regIdx, RegIndex _flatIdx) | |
| Scalar PhysRegId constructor. | |
| bool | isFixedMapping () const |
| Returns true if this register is always associated to the same architectural register. | |
| const RegIndex & | flatIndex () const |
| Flat index accessor. | |
| 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. | |
| bool | operator== (const PhysRegId &that) const |
| bool | operator!= (const PhysRegId &that) const |
| constexpr RegIndex | index () const |
| Visible RegId methods. | |
| constexpr const RegClass & | regClass () const |
| Class accessor. | |
| constexpr RegClassType | classValue () const |
| constexpr const char * | className () const |
| Return a const char* with the register class name. | |
| constexpr bool | is (RegClassType reg_class) const |
Private Attributes | |
| RegIndex | flatIdx |
| int | numPinnedWritesToComplete |
| bool | pinned |
| Private Attributes inherited from gem5::RegId | |
| const RegClass * | _regClass = nullptr |
| RegIndex | regIdx |
| int | numPinnedWrites |
Additional Inherited Members | |
| Private Member Functions inherited from gem5::RegId | |
| constexpr | RegId () |
| constexpr | RegId (const RegClass ®_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. | |
| constexpr bool | isRenameable () const |
| Return true if this register can be renamed. | |
| constexpr bool | is (RegClassType reg_class) const |
| constexpr RegIndex | index () const |
| Index accessors. | |
| constexpr const RegClass & | regClass () const |
| Class accessor. | |
| constexpr RegClassType | classValue () const |
| constexpr const char * | className () const |
| Return a const char* with the register class name. | |
| constexpr bool | isFlat () const |
| RegId | flatten (const BaseISA &isa) const |
| int | getNumPinnedWrites () const |
| void | setNumPinnedWrites (int num_writes) |
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 415 of file reg_class.hh.
|
inlineexplicit |
Definition at line 423 of file reg_class.hh.
References flatIdx, gem5::invalidRegClass(), numPinnedWritesToComplete, and gem5::RegId::RegId().
Referenced by operator!=(), operator<(), and operator==().
|
inlineexplicit |
Definition at line 428 of file reg_class.hh.
References flatIdx, numPinnedWritesToComplete, pinned, and gem5::RegId::RegId().
|
inlineconstexpr |
Return a const char* with the register class name.
Definition at line 157 of file reg_class.hh.
References gem5::RegId::RegId().
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 |
Definition at line 155 of file reg_class.hh.
Referenced by gem5::o3::UnifiedFreeList::addReg(), gem5::o3::CPU::getReg(), gem5::o3::CPU::getReg(), gem5::o3::PhysRegFile::getReg(), gem5::o3::PhysRegFile::getReg(), gem5::o3::CPU::getWritableReg(), gem5::o3::PhysRegFile::getWritableReg(), gem5::o3::CPU::setReg(), gem5::o3::CPU::setReg(), gem5::o3::PhysRegFile::setReg(), and gem5::o3::PhysRegFile::setReg().
|
inline |
Definition at line 490 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 507 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Flat index accessor.
Definition at line 473 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 475 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 496 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::InstructionQueue::wakeDependents().
|
inline |
Definition at line 491 of file reg_class.hh.
References gem5::RegId::numPinnedWrites.
Referenced by gem5::o3::DynInst::setSquashed().
|
inline |
Definition at line 508 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::DynInst::setSquashed().
|
inlineconstexpr |
Visible RegId methods.
Definition at line 151 of file reg_class.hh.
Referenced by gem5::o3::InstructionQueue::addToDependents(), gem5::o3::InstructionQueue::addToProducers(), gem5::o3::PhysRegFile::getReg(), gem5::o3::PhysRegFile::getReg(), gem5::o3::PhysRegFile::getWritableReg(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::PhysRegFile::setReg(), gem5::o3::PhysRegFile::setReg(), gem5::o3::Scoreboard::setReg(), and gem5::o3::InstructionQueue::wakeDependents().
|
inlineconstexpr |
Definition at line 147 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 470 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 493 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 460 of file reg_class.hh.
References gem5::RegId::operator!=(), and PhysRegId().
|
inline |
Explicit forward methods, to prevent comparisons of PhysRegId with RegIds.
Definition at line 447 of file reg_class.hh.
References gem5::RegId::operator<(), and PhysRegId().
|
inline |
Definition at line 454 of file reg_class.hh.
References gem5::RegId::operator==(), and PhysRegId().
|
inlineconstexpr |
Class accessor.
Definition at line 154 of file reg_class.hh.
|
inline |
Definition at line 478 of file reg_class.hh.
References gem5::RegId::numPinnedWrites, and pinned.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
inline |
Definition at line 502 of file reg_class.hh.
References numPinnedWritesToComplete.
Referenced by gem5::o3::SimpleRenameMap::rename().
|
private |
Definition at line 418 of file reg_class.hh.
Referenced by flatIndex(), PhysRegId(), and PhysRegId().
|
private |
Definition at line 419 of file reg_class.hh.
Referenced by decrNumPinnedWritesToComplete(), getNumPinnedWritesToComplete(), incrNumPinnedWritesToComplete(), PhysRegId(), PhysRegId(), and setNumPinnedWritesToComplete().
|
private |
Definition at line 420 of file reg_class.hh.
Referenced by isPinned(), PhysRegId(), and setNumPinnedWrites().