gem5
|
#include <operand.hh>
Public Member Functions | |
void | init (unsigned opOffset, const BrigObject *obj) |
uint64_t | calcUniform () |
void | calcVector (Wavefront *w, std::vector< Addr > &addrVec) |
uint64_t | calcLane (Wavefront *w, int lane=0) |
uint32_t | opSize () |
bool | isVectorRegister () |
bool | isCondRegister () |
bool | isScalarRegister () |
unsigned int | regIndex () |
std::string | disassemble () |
Public Member Functions inherited from BaseOperand | |
BaseOperand () | |
bool | isVectorRegister () |
bool | isScalarRegister () |
bool | isCondRegister () |
unsigned int | regIndex () |
uint32_t | opSize () |
virtual | ~BaseOperand () |
Public Attributes | |
RegOperandType | reg |
Public Attributes inherited from AddrOperandBase | |
int64_t | offset |
const char * | name = nullptr |
StorageElement * | storageElement |
Public Attributes inherited from BaseOperand | |
Enums::RegisterType | registerType |
uint32_t | regOperandSize |
Additional Inherited Members | |
Protected Member Functions inherited from AddrOperandBase | |
void | parseAddr (const Brig::BrigOperandAddress *op, const BrigObject *obj) |
std::string | disassemble (std::string reg_disassembly) |
uint64_t | calcUniformBase () |
Definition at line 600 of file operand.hh.
|
virtual |
Implements AddrOperandBase.
Definition at line 689 of file operand.hh.
References X86ISA::reg, and MipsISA::w.
uint64_t RegAddrOperand< RegOperandType >::calcUniform | ( | ) |
Definition at line 662 of file operand.hh.
References fatal.
|
virtual |
Implements AddrOperandBase.
Definition at line 671 of file operand.hh.
References Wavefront::computeUnit, Wavefront::execMask(), X86ISA::reg, MipsISA::w, and ComputeUnit::wfSize().
std::string RegAddrOperand< RegOperandType >::disassemble | ( | ) |
Definition at line 698 of file operand.hh.
References AddrOperandBase::disassemble(), and X86ISA::reg.
void RegAddrOperand< RegOperandType >::init | ( | unsigned | opOffset, |
const BrigObject * | obj | ||
) |
the offset field of an HSAIL instruction may be negative so here we cast the raw bits we get from the BRIG file to a signed type to avoid address calculation errors
Definition at line 618 of file operand.hh.
References Brig::BRIG_KIND_OPERAND_ADDRESS, fatal, BrigObject::getOperand(), Brig::BrigUInt64::hi, Brig::BrigUInt64::lo, ArmISA::offset, Brig::BrigOperandAddress::offset, X86ISA::op, X86ISA::reg, and Brig::BrigOperandAddress::reg.
|
inline |
Definition at line 610 of file operand.hh.
References RegAddrOperand< RegOperandType >::reg.
|
inline |
Definition at line 611 of file operand.hh.
References RegAddrOperand< RegOperandType >::reg.
|
inline |
Definition at line 609 of file operand.hh.
References RegAddrOperand< RegOperandType >::reg.
|
inline |
Definition at line 608 of file operand.hh.
References RegAddrOperand< RegOperandType >::reg.
|
inline |
Definition at line 612 of file operand.hh.
References RegAddrOperand< RegOperandType >::reg.
RegOperandType RegAddrOperand< RegOperandType >::reg |
Definition at line 603 of file operand.hh.
Referenced by RegAddrOperand< RegOperandType >::isCondRegister(), RegAddrOperand< RegOperandType >::isScalarRegister(), RegAddrOperand< RegOperandType >::isVectorRegister(), RegAddrOperand< RegOperandType >::opSize(), and RegAddrOperand< RegOperandType >::regIndex().