gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
RegAddrOperand< RegOperandType > Class Template Reference

#include <operand.hh>

Inheritance diagram for RegAddrOperand< RegOperandType >:
AddrOperandBase BaseOperand

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
 
StorageElementstorageElement
 
- 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 ()
 

Detailed Description

template<typename RegOperandType>
class RegAddrOperand< RegOperandType >

Definition at line 600 of file operand.hh.

Member Function Documentation

template<typename RegOperandType >
uint64_t RegAddrOperand< RegOperandType >::calcLane ( Wavefront w,
int  lane = 0 
)
virtual

Implements AddrOperandBase.

Definition at line 689 of file operand.hh.

References X86ISA::reg, and MipsISA::w.

template<typename RegOperandType >
uint64_t RegAddrOperand< RegOperandType >::calcUniform ( )

Definition at line 662 of file operand.hh.

References fatal.

template<typename RegOperandType >
void RegAddrOperand< RegOperandType >::calcVector ( Wavefront w,
std::vector< Addr > &  addrVec 
)
virtual
template<typename RegOperandType >
std::string RegAddrOperand< RegOperandType >::disassemble ( )

Definition at line 698 of file operand.hh.

References AddrOperandBase::disassemble(), and X86ISA::reg.

template<typename RegOperandType >
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.

template<typename RegOperandType >
bool RegAddrOperand< RegOperandType >::isCondRegister ( )
inline

Definition at line 610 of file operand.hh.

References RegAddrOperand< RegOperandType >::reg.

template<typename RegOperandType >
bool RegAddrOperand< RegOperandType >::isScalarRegister ( )
inline

Definition at line 611 of file operand.hh.

References RegAddrOperand< RegOperandType >::reg.

template<typename RegOperandType >
bool RegAddrOperand< RegOperandType >::isVectorRegister ( )
inline

Definition at line 609 of file operand.hh.

References RegAddrOperand< RegOperandType >::reg.

template<typename RegOperandType >
uint32_t RegAddrOperand< RegOperandType >::opSize ( )
inline

Definition at line 608 of file operand.hh.

References RegAddrOperand< RegOperandType >::reg.

template<typename RegOperandType >
unsigned int RegAddrOperand< RegOperandType >::regIndex ( )
inline

Definition at line 612 of file operand.hh.

References RegAddrOperand< RegOperandType >::reg.

Member Data Documentation

template<typename RegOperandType >
RegOperandType RegAddrOperand< RegOperandType >::reg

The documentation for this class was generated from the following file:

Generated on Fri Jun 9 2017 13:04:17 for gem5 by doxygen 1.8.6