36 #include "debug/GPUInst.hh"
43 _instNum(0), _instAddr(0), srcVecDWords(-1), dstVecDWords(-1),
44 srcScalarDWords(-1), dstScalarDWords(-1), maxOpSize(-1)
70 int num_dwords =
op.sizeInDWords();
74 for (
int i = 0;
i < num_dwords;
i++){
76 virt_idxs.push_back(virt_idx +
i);
77 phys_idxs.push_back(phys_idx);
79 DPRINTF(GPUInst,
"%s adding %s %s (%d->%d) operand that uses "
81 (opType == OpType::SRC_VEC || opType == OpType::DST_VEC) ?
83 (opType == OpType::SRC_VEC || opType == OpType::SRC_SCALAR) ?
84 "src" :
"dst", virt_idxs[0], phys_idxs[0], num_dwords);
86 op.setVirtToPhysMapping(virt_idxs, phys_idxs);
88 opVec.emplace_back(
op);
91 for (
auto& srcOp :
srcOps) {
92 if (srcOp.isVectorReg()) {
95 }
else if (srcOp.isScalarReg()) {
101 for (
auto& dstOp :
dstOps) {
102 if (dstOp.isVectorReg()) {
105 }
else if (dstOp.isScalarReg()) {
133 for (
const auto& srcOp :
srcOps)
134 if (srcOp.isVectorReg())
149 for (
const auto& dstOp :
dstOps)
150 if (dstOp.isVectorReg())
176 for (
const auto& srcOp :
srcOps)
177 if (srcOp.isScalarReg())
191 for (
const auto& dstOp :
dstOps)
192 if (dstOp.isScalarReg())
206 for (
const auto& dstOp :
dstOps)
210 for (
const auto& srcOp :
srcOps)