34 #include "debug/GPUInst.hh"
41 _instNum(0), _instAddr(0), srcVecDWords(-1), dstVecDWords(-1),
42 srcScalarDWords(-1), dstScalarDWords(-1), maxOpSize(-1)
68 int num_dwords =
op.sizeInDWords();
72 for (
int i = 0;
i < num_dwords;
i++){
74 virt_idxs.push_back(virt_idx +
i);
75 phys_idxs.push_back(phys_idx);
77 DPRINTF(GPUInst,
"%s adding %s %s (%d->%d) operand that uses "
79 (opType == OpType::SRC_VEC || opType == OpType::DST_VEC) ?
81 (opType == OpType::SRC_VEC || opType == OpType::SRC_SCALAR) ?
82 "src" :
"dst", virt_idxs[0], phys_idxs[0], num_dwords);
84 op.setVirtToPhysMapping(virt_idxs, phys_idxs);
86 opVec.emplace_back(
op);
89 for (
auto& srcOp :
srcOps) {
90 if (srcOp.isVectorReg()) {
93 }
else if (srcOp.isScalarReg()) {
99 for (
auto& dstOp :
dstOps) {
100 if (dstOp.isVectorReg()) {
103 }
else if (dstOp.isScalarReg()) {
131 for (
const auto& srcOp :
srcOps)
132 if (srcOp.isVectorReg())
147 for (
const auto& dstOp :
dstOps)
148 if (dstOp.isVectorReg())
174 for (
const auto& srcOp :
srcOps)
175 if (srcOp.isScalarReg())
189 for (
const auto& dstOp :
dstOps)
190 if (dstOp.isScalarReg())
204 for (
const auto& dstOp :
dstOps)
208 for (
const auto& srcOp :
srcOps)