34 #ifndef __VECTOR_REGISTER_FILE_HH__ 35 #define __VECTOR_REGISTER_FILE_HH__ 42 #include "debug/GPUVRF.hh" 51 struct VectorRegisterFileParams;
71 read(
int regIdx,
int threadId=0)
73 T p0 = vgprState->read<T>(regIdx, threadId);
74 DPRINTF(GPUVRF,
"reading vreg[%d][%d] = %u\n", regIdx, threadId, (uint64_t)p0);
82 write(
int regIdx, T value,
int threadId=0)
84 DPRINTF(GPUVRF,
"writing vreg[%d][%d] = %u\n", regIdx, threadId, (uint64_t)value);
85 vgprState->write<T>(regIdx, value, threadId);
88 uint8_t regBusy(
int idx, uint32_t operandSize)
const;
89 uint8_t regNxtBusy(
int idx, uint32_t operandSize)
const;
91 int numRegs()
const {
return numRegsPerSimd; }
93 void markReg(
int regIdx, uint32_t operandSize, uint8_t value);
94 void preMarkReg(
int regIdx, uint32_t operandSize, uint8_t value);
98 virtual int exec(uint64_t dynamic_id,
Wavefront *w,
118 virtual bool vrfOperandAccessReady(uint64_t dynamic_id,
Wavefront *w,
144 #endif // __VECTOR_REGISTER_FILE_HH__
std::vector< uint8_t > nxtBusy
virtual void updateEvents()
ComputeUnit * computeUnit
virtual bool isWriteConflict(int memWfId, int exeWfId) const
Declaration of Statistics objects.
void write(int regIdx, T value, int threadId=0)
std::shared_ptr< GPUDynInst > GPUDynInstPtr
VecRegisterState * vgprState
T read(int regIdx, int threadId=0)
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
SimplePoolManager * manager
std::vector< uint8_t > busy
Abstract superclass for simulation objects.
virtual bool isReadConflict(int memWfId, int exeWfId) const