gem5
v21.2.1.0
|
#include <operand_info.hh>
Public Types | |
typedef uint32_t | FlagsType |
typedef gem5::Flags< FlagsType > | Flags |
Public Member Functions | |
OperandInfo ()=delete | |
OperandInfo (int opSelectorVal, int size, bool src, bool scalar_reg, bool vector_reg, bool imm) | |
int | numRegisters () const |
int | sizeInDWords () const |
int | size () const |
int | rawRegisterIndex () const |
int | registerIndex (int numScalarRegs) const |
bool | isSrc () const |
bool | isDst () const |
bool | isImm () const |
bool | isScalarReg () const |
bool | isVectorReg () const |
bool | isVcc () const |
bool | isExec () const |
bool | isFlatScratch () const |
void | setVirtToPhysMapping (std::vector< int > v, std::vector< int > p) |
int | virtIdx (int reg_num=0) const |
We typically only need the first virtual register for the operand regardless of its size. More... | |
int | physIdx (int reg_num=0) const |
const std::vector< int > & | virtIndices () const |
const std::vector< int > & | physIndices () const |
std::vector< int > & | bankReadCounts () const |
Private Types | |
enum | : FlagsType { SRC = 0x00000001, SCALAR_REG = 0x00000002, VECTOR_REG = 0x00000004, IMMEDIATE = 0x00000008, VCC = 0x00000010, EXEC = 0x00000020, FLAT = 0x00000040, LITERAL = 0x00000080, CONSTANT = 0x00000100, POS_CONST = 0x00000200 } |
Private Attributes | |
Flags | flags |
const int | _opSelectorVal |
Value of the operand as used in registers.cc functions. More... | |
const int | _size |
Size of the operand in bytes. More... | |
const int | _numDWords |
Size of operand in DWords. More... | |
std::vector< int > | _virtIndices |
std::vector< int > | _physIndices |
std::vector< int > | _bankReadCounts |
The number of reads this operand will make to each bank. More... | |
Definition at line 42 of file operand_info.hh.
typedef gem5::Flags<FlagsType> gem5::OperandInfo::Flags |
Definition at line 136 of file operand_info.hh.
typedef uint32_t gem5::OperandInfo::FlagsType |
Definition at line 135 of file operand_info.hh.
|
private |
Enumerator | |
---|---|
SRC | |
SCALAR_REG | |
VECTOR_REG | |
IMMEDIATE | |
VCC | |
EXEC | |
FLAT | |
LITERAL | |
CONSTANT | |
POS_CONST |
Definition at line 140 of file operand_info.hh.
|
delete |
|
inline |
Definition at line 46 of file operand_info.hh.
References CONSTANT, EXEC, flags, FLAT, gem5::ArmISA::imm, IMMEDIATE, gem5::Gcn3ISA::isConstVal(), gem5::Gcn3ISA::isExecMask(), gem5::Gcn3ISA::isFlatScratchReg(), gem5::Gcn3ISA::isLiteral(), gem5::Gcn3ISA::isPosConstVal(), gem5::Gcn3ISA::isVccReg(), LITERAL, POS_CONST, SCALAR_REG, gem5::Flags< T >::set(), SRC, VCC, and VECTOR_REG.
|
inline |
Definition at line 130 of file operand_info.hh.
References _bankReadCounts.
|
inline |
Definition at line 92 of file operand_info.hh.
References flags, gem5::Flags< T >::isSet(), and SRC.
|
inline |
Definition at line 97 of file operand_info.hh.
References EXEC, flags, and gem5::Flags< T >::isSet().
|
inline |
Definition at line 98 of file operand_info.hh.
References flags, FLAT, and gem5::Flags< T >::isSet().
|
inline |
Definition at line 93 of file operand_info.hh.
References flags, IMMEDIATE, and gem5::Flags< T >::isSet().
|
inline |
Definition at line 94 of file operand_info.hh.
References flags, gem5::Flags< T >::isSet(), and SCALAR_REG.
|
inline |
Definition at line 91 of file operand_info.hh.
References flags, gem5::Flags< T >::isSet(), and SRC.
|
inline |
Definition at line 96 of file operand_info.hh.
References flags, gem5::Flags< T >::isSet(), and VCC.
|
inline |
Definition at line 95 of file operand_info.hh.
References flags, gem5::Flags< T >::isSet(), and VECTOR_REG.
Referenced by registerIndex().
|
inline |
Definition at line 73 of file operand_info.hh.
References _numDWords, and gem5::Gcn3ISA::RegSizeDWords.
|
inline |
Definition at line 115 of file operand_info.hh.
References _physIndices.
|
inline |
Definition at line 124 of file operand_info.hh.
References _physIndices.
|
inline |
Definition at line 79 of file operand_info.hh.
References _opSelectorVal.
|
inline |
Definition at line 82 of file operand_info.hh.
References _opSelectorVal, isVectorReg(), gem5::Gcn3ISA::opSelectorToRegIdx(), and gem5::Gcn3ISA::REG_VGPR_MIN.
|
inline |
Definition at line 101 of file operand_info.hh.
References _numDWords, _physIndices, _virtIndices, gem5::MipsISA::p, and gem5::ArmISA::v.
|
inline |
Definition at line 76 of file operand_info.hh.
References _size.
|
inline |
Definition at line 74 of file operand_info.hh.
References _numDWords.
|
inline |
We typically only need the first virtual register for the operand regardless of its size.
Definition at line 114 of file operand_info.hh.
References _virtIndices.
|
inline |
Definition at line 118 of file operand_info.hh.
References _virtIndices.
|
mutableprivate |
The number of reads this operand will make to each bank.
Definition at line 195 of file operand_info.hh.
Referenced by bankReadCounts().
|
private |
Size of operand in DWords.
Definition at line 187 of file operand_info.hh.
Referenced by numRegisters(), setVirtToPhysMapping(), and sizeInDWords().
|
private |
Value of the operand as used in registers.cc functions.
Definition at line 177 of file operand_info.hh.
Referenced by rawRegisterIndex(), and registerIndex().
|
private |
Definition at line 190 of file operand_info.hh.
Referenced by physIdx(), physIndices(), and setVirtToPhysMapping().
|
private |
|
private |
Definition at line 189 of file operand_info.hh.
Referenced by setVirtToPhysMapping(), virtIdx(), and virtIndices().
|
private |
Definition at line 172 of file operand_info.hh.
Referenced by isDst(), isExec(), isFlatScratch(), isImm(), isScalarReg(), isSrc(), isVcc(), isVectorReg(), and OperandInfo().