gem5 v24.0.0.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.
Definition at line 106 of file reg_class.hh.
|
inlineconstexpr |
Return a const char* with the register class name.
Definition at line 281 of file reg_class.hh.
References _regClass, and gem5::RegClass::name().
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, and gem5::RegClass::type().
Referenced by gem5::Checker< class >::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, and gem5::RegClass::flatten().
Referenced by gem5::minor::Scoreboard::canInstIssue(), gem5::minor::Scoreboard::execSeqNumToWaitFor(), gem5::o3::CPU::getArchReg(), gem5::o3::CPU::getArchReg(), gem5::SimpleThread::getReg(), gem5::SimpleThread::getReg(), gem5::o3::CPU::getWritableArchReg(), gem5::SimpleThread::getWritableReg(), gem5::minor::Scoreboard::markupInstDests(), gem5::o3::Rename::renameDestRegs(), gem5::o3::Rename::renameSrcRegs(), gem5::o3::CPU::setArchReg(), gem5::o3::CPU::setArchReg(), 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< class >::copyResult(), gem5::ArmISA::IntRegClassOps::flatten(), gem5::X86ISA::FloatRegClassOps::flatten(), gem5::SimpleThread::getReg(), gem5::SimpleThread::getReg(), gem5::SimpleThread::getWritableReg(), 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(), gem5::CheckerCPU::setMiscRegOperand(), gem5::SimpleThread::setReg(), and gem5::SimpleThread::setReg().
|
inlineconstexpr |
Definition at line 275 of file reg_class.hh.
References _regClass, and gem5::RegClass::type().
Referenced by gem5::o3::SimpleRenameMap::rename(), and gem5::o3::ElasticTrace::updateRegDep().
|
inlineconstexpr |
Definition at line 283 of file reg_class.hh.
References _regClass, and gem5::RegClass::isFlat().
|
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.
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(), and regIdx.
Referenced by gem5::PhysRegId::operator<().
|
inlineconstexpr |
Definition at line 116 of file reg_class.hh.
References classValue(), index(), 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(), 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().
|
friend |
Definition at line 290 of file reg_class.hh.
|
friend |
Definition at line 101 of file reg_class.hh.
|
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(), and regClass().
|
protected |
Definition at line 98 of file reg_class.hh.
Referenced by gem5::PhysRegId::decrNumPinnedWrites(), gem5::PhysRegId::getNumPinnedWrites(), getNumPinnedWrites(), gem5::PhysRegId::incrNumPinnedWrites(), gem5::PhysRegId::setNumPinnedWrites(), and setNumPinnedWrites().
|
protected |
Definition at line 97 of file reg_class.hh.
Referenced by index(), operator<(), and operator==().