|
gem5 [DEVELOP-FOR-25.0]
|
Register ID: describe an architectural register with its class and index. More...
#include <reg_class.hh>
Public Member Functions | |
| 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 |
Protected Attributes | |
| const RegClass * | _regClass = nullptr |
| RegIndex | regIdx |
| int | numPinnedWrites |
Friends | |
| struct | std::hash< RegId > |
| class | RegClassIterator |
| std::ostream & | operator<< (std::ostream &os, const RegId &rid) |
| 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) |
Register ID: describe an architectural register with its class and index.
This structure is used instead of just the register index to disambiguate between different classes of registers. For example, a integer register with index 3 is represented by Regid(IntRegClass, 3).
Definition at line 93 of file reg_class.hh.
|
inlineconstexpr |
Definition at line 272 of file reg_class.hh.
References gem5::invalidRegClass(), and RegId().
Referenced by gem5::PhysRegId::className(), operator!=(), operator<(), operator<<, operator==(), gem5::PhysRegId::PhysRegId(), gem5::PhysRegId::PhysRegId(), and RegId().
Definition at line 106 of file reg_class.hh.
References _regClass, numPinnedWrites, and regIdx.
|
inlineconstexpr |
Return a const char* with the register class name.
Definition at line 281 of file reg_class.hh.
References _regClass.
Referenced by gem5::o3::Rename::renameDestRegs(), gem5::o3::Rename::renameSrcRegs(), and gem5::o3::ElasticTrace::updateRegDep().
|
inlineconstexpr |
Definition at line 280 of file reg_class.hh.
References _regClass.
Referenced by gem5::Checker< DynInstPtr >::copyResult(), isRenameable(), gem5::o3::UnifiedRenameMap::lookup(), std::hash< gem5::RegId >::operator()(), operator<(), operator==(), gem5::o3::UnifiedRenameMap::rename(), gem5::o3::Rename::renameSrcRegs(), and gem5::o3::UnifiedRenameMap::setEntry().
Definition at line 285 of file reg_class.hh.
References _regClass.
Referenced by gem5::minor::Scoreboard::canInstIssue(), gem5::minor::Scoreboard::execSeqNumToWaitFor(), gem5::SimpleThread::getReg(), gem5::SimpleThread::getReg(), gem5::SimpleThread::getWritableReg(), gem5::minor::Scoreboard::markupInstDests(), gem5::o3::Rename::renameDestRegs(), gem5::o3::Rename::renameSrcRegs(), gem5::SimpleThread::setReg(), gem5::SimpleThread::setReg(), gem5::CheckerCPU::setRegOperand(), and gem5::CheckerCPU::setRegOperand().
|
inline |
Definition at line 162 of file reg_class.hh.
References numPinnedWrites.
Referenced by gem5::o3::SimpleRenameMap::rename(), and gem5::o3::Rename::renameDestRegs().
|
inlineconstexpr |
Index accessors.
Definition at line 151 of file reg_class.hh.
References regIdx.
Referenced by gem5::Checker< DynInstPtr >::copyResult(), gem5::o3::SimpleRenameMap::lookup(), gem5::o3::UnifiedRenameMap::lookup(), operator RegIndex(), std::hash< gem5::RegId >::operator()(), operator<(), operator==(), gem5::Iris::ThreadContext::readVecPredReg(), gem5::Iris::ThreadContext::readVecReg(), gem5::o3::SimpleRenameMap::rename(), gem5::o3::Rename::renameDestRegs(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::SimpleRenameMap::setEntry(), and gem5::CheckerCPU::setMiscRegOperand().
|
inlineconstexpr |
Definition at line 275 of file reg_class.hh.
References _regClass.
Referenced by gem5::o3::SimpleRenameMap::rename(), and gem5::o3::ElasticTrace::updateRegDep().
|
inlineconstexpr |
Definition at line 283 of file reg_class.hh.
References _regClass.
|
inlineconstexpr |
Return true if this register can be renamed.
Definition at line 141 of file reg_class.hh.
References classValue(), gem5::InvalidRegClass, and gem5::MiscRegClass.
Referenced by gem5::o3::DynInst::forwardOldRegs(), gem5::PhysRegId::isFixedMapping(), gem5::o3::UnifiedRenameMap::rename(), and gem5::o3::UnifiedRenameMap::setEntry().
|
inlineconstexpr |
Definition at line 110 of file reg_class.hh.
References index().
|
inlineconstexpr |
Definition at line 122 of file reg_class.hh.
References RegId().
Referenced by gem5::PhysRegId::operator!=().
|
inlineconstexpr |
Order operator.
The order is required to implement maps with key type RegId
Definition at line 130 of file reg_class.hh.
References classValue(), index(), RegId(), and regIdx.
Referenced by gem5::PhysRegId::operator<().
|
inlineconstexpr |
Definition at line 116 of file reg_class.hh.
References classValue(), index(), RegId(), and regIdx.
Referenced by gem5::PhysRegId::operator==().
|
inlineconstexpr |
Class accessor.
Definition at line 154 of file reg_class.hh.
References _regClass.
Referenced by gem5::o3::DynInst::forwardOldRegs(), operator<<, gem5::CheckerCPU::setRegOperand(), and gem5::CheckerCPU::setRegOperand().
|
inline |
Definition at line 163 of file reg_class.hh.
References numPinnedWrites.
Referenced by gem5::o3::Rename::renameDestRegs(), and gem5::RiscvISA::VPinVdMicroInst::VPinVdMicroInst().
|
friend |
Definition at line 290 of file reg_class.hh.
References gem5::X86ISA::os, regClass(), RegId(), and gem5::RegClass::regName().
|
friend |
Definition at line 101 of file reg_class.hh.
References RegClassIterator.
Referenced by RegClassIterator.
|
friend |
Definition at line 98 of file reg_class.hh.
|
protected |
Definition at line 96 of file reg_class.hh.
Referenced by className(), classValue(), flatten(), is(), isFlat(), regClass(), and RegId().
|
protected |
Definition at line 98 of file reg_class.hh.
Referenced by gem5::PhysRegId::decrNumPinnedWrites(), gem5::PhysRegId::getNumPinnedWrites(), getNumPinnedWrites(), gem5::PhysRegId::incrNumPinnedWrites(), RegId(), gem5::PhysRegId::setNumPinnedWrites(), and setNumPinnedWrites().
|
protected |
Definition at line 97 of file reg_class.hh.
Referenced by index(), operator<(), operator==(), and RegId().