|
gem5
v21.1.0.2
|
Collect register related information into a single struct. More...
#include <dyn_inst.hh>
Public Member Functions | |
| size_t | numSrcs () const |
| size_t | numDests () const |
| void | init () |
| Regs (size_t srcs, size_t dests) | |
| const RegId & | flattenedDestIdx (int idx) const |
| void | flattenedDestIdx (int idx, const RegId ®_id) |
| PhysRegIdPtr | renamedDestIdx (int idx) const |
| void | renamedDestIdx (int idx, PhysRegIdPtr phys_reg_id) |
| PhysRegIdPtr | prevDestIdx (int idx) const |
| void | prevDestIdx (int idx, PhysRegIdPtr phys_reg_id) |
| PhysRegIdPtr | renamedSrcIdx (int idx) const |
| void | renamedSrcIdx (int idx, PhysRegIdPtr phys_reg_id) |
| bool | readySrcIdx (int idx) const |
| void | readySrcIdx (int idx, bool ready) |
Private Types | |
| using | BackingStorePtr = std::unique_ptr< uint8_t[]> |
| using | BufCursor = BackingStorePtr::pointer |
Static Private Member Functions | |
| static size_t | bytesForDests (size_t num) |
| static size_t | bytesForSources (size_t num) |
| template<class T > | |
| static void | allocate (T *&ptr, BufCursor &cur, size_t count) |
Private Attributes | |
| size_t | _numSrcs |
| size_t | _numDests |
| BackingStorePtr | buf |
| RegId * | _flatDestIdx |
| PhysRegIdPtr * | _destIdx |
| PhysRegIdPtr * | _prevDestIdx |
| PhysRegIdPtr * | _srcIdx |
| uint8_t * | _readySrcIdx |
Collect register related information into a single struct.
The number of source and destination registers can vary, and storage for information about them needs to be allocated dynamically. This class figures out how much space is needed and allocates it all at once, and then trivially divies it up for each type of per-register array.
Definition at line 203 of file dyn_inst.hh.
|
private |
Definition at line 209 of file dyn_inst.hh.
|
private |
Definition at line 210 of file dyn_inst.hh.
|
inline |
Definition at line 266 of file dyn_inst.hh.
References _destIdx, _flatDestIdx, _prevDestIdx, _readySrcIdx, _srcIdx, allocate(), buf, and init().
|
inlinestaticprivate |
Definition at line 250 of file dyn_inst.hh.
References gem5::RefCounted::count.
Referenced by Regs().
|
inlinestaticprivate |
Definition at line 230 of file dyn_inst.hh.
|
inlinestaticprivate |
Definition at line 242 of file dyn_inst.hh.
|
inline |
Definition at line 282 of file dyn_inst.hh.
References _flatDestIdx.
|
inline |
Definition at line 290 of file dyn_inst.hh.
References _flatDestIdx.
|
inline |
Definition at line 261 of file dyn_inst.hh.
References _readySrcIdx, gem5::MipsISA::fill, and numSrcs().
Referenced by gem5::o3::DynInst::DynInst(), and Regs().
|
inline |
Definition at line 258 of file dyn_inst.hh.
References _numDests.
Referenced by gem5::o3::DynInst::numDestRegs().
|
inline |
Definition at line 257 of file dyn_inst.hh.
References _numSrcs.
Referenced by init(), and gem5::o3::DynInst::numSrcRegs().
|
inline |
Definition at line 313 of file dyn_inst.hh.
References _prevDestIdx.
Referenced by gem5::o3::DynInst::forwardOldRegs(), and gem5::o3::DynInst::renameDestReg().
|
inline |
Definition at line 320 of file dyn_inst.hh.
References _prevDestIdx.
|
inline |
Definition at line 339 of file dyn_inst.hh.
References _readySrcIdx, and gem5::bits().
Referenced by gem5::o3::DynInst::markSrcRegReady().
|
inline |
Definition at line 346 of file dyn_inst.hh.
References _readySrcIdx, and gem5::replaceBits().
|
inline |
Definition at line 298 of file dyn_inst.hh.
References _destIdx.
Referenced by gem5::o3::DynInst::getWritableVecPredRegOperand(), gem5::o3::DynInst::getWritableVecRegOperand(), gem5::o3::DynInst::renameDestReg(), gem5::o3::DynInst::setCCRegOperand(), gem5::o3::DynInst::setFloatRegOperandBits(), gem5::o3::DynInst::setIntRegOperand(), gem5::o3::DynInst::setSquashed(), gem5::o3::DynInst::setVecElemOperand(), gem5::o3::DynInst::setVecPredRegOperand(), and gem5::o3::DynInst::setVecRegOperand().
|
inline |
Definition at line 305 of file dyn_inst.hh.
References _destIdx.
|
inline |
Definition at line 327 of file dyn_inst.hh.
References _srcIdx.
Referenced by gem5::o3::DynInst::readCCRegOperand(), gem5::o3::DynInst::readFloatRegOperandBits(), gem5::o3::DynInst::readIntRegOperand(), gem5::o3::DynInst::readVecElemOperand(), gem5::o3::DynInst::readVecPredRegOperand(), gem5::o3::DynInst::readVecRegOperand(), and gem5::o3::DynInst::renameSrcReg().
|
inline |
Definition at line 333 of file dyn_inst.hh.
References _srcIdx.
|
private |
Definition at line 223 of file dyn_inst.hh.
Referenced by Regs(), and renamedDestIdx().
|
private |
Definition at line 219 of file dyn_inst.hh.
Referenced by flattenedDestIdx(), and Regs().
|
private |
Definition at line 207 of file dyn_inst.hh.
Referenced by numDests().
|
private |
Definition at line 206 of file dyn_inst.hh.
Referenced by numSrcs().
|
private |
Definition at line 227 of file dyn_inst.hh.
Referenced by prevDestIdx(), and Regs().
|
private |
Definition at line 239 of file dyn_inst.hh.
Referenced by init(), readySrcIdx(), and Regs().
|
private |
Definition at line 236 of file dyn_inst.hh.
Referenced by Regs(), and renamedSrcIdx().
|
private |
Definition at line 212 of file dyn_inst.hh.
Referenced by Regs().