• Home
  • Raw
  • Download

Lines Matching refs:qinst

76 static struct qinst *
80 struct qinst *qinst = vir_add_inst(V3D_QPU_A_NOP, undef, undef, undef); in vir_nop() local
82 return qinst; in vir_nop()
85 static struct qinst *
86 new_qpu_nop_before(struct qinst *inst) in new_qpu_nop_before()
88 struct qinst *q = vir_nop(); in new_qpu_nop_before()
138 is_no_op_mov(struct qinst *qinst) in is_no_op_mov() argument
143 if (qinst->qpu.type != V3D_QPU_INSTR_TYPE_ALU || in is_no_op_mov()
144 qinst->qpu.alu.mul.op != V3D_QPU_M_MOV || in is_no_op_mov()
145 qinst->qpu.alu.add.op != V3D_QPU_A_NOP || in is_no_op_mov()
146 memcmp(&qinst->qpu.sig, &no_sig, sizeof(no_sig)) != 0) { in is_no_op_mov()
151 enum v3d_qpu_waddr waddr = qinst->qpu.alu.mul.waddr; in is_no_op_mov()
152 if (qinst->qpu.alu.mul.magic_write) { in is_no_op_mov()
156 if (qinst->qpu.alu.mul.a != in is_no_op_mov()
163 switch (qinst->qpu.alu.mul.a) { in is_no_op_mov()
165 raddr = qinst->qpu.raddr_a; in is_no_op_mov()
168 raddr = qinst->qpu.raddr_b; in is_no_op_mov()
180 if (qinst->qpu.alu.mul.a_unpack != V3D_QPU_UNPACK_NONE || in is_no_op_mov()
181 qinst->qpu.alu.mul.output_pack != V3D_QPU_PACK_NONE || in is_no_op_mov()
182 qinst->qpu.flags.mc != V3D_QPU_COND_NONE || in is_no_op_mov()
183 qinst->qpu.flags.mpf != V3D_QPU_PF_NONE || in is_no_op_mov()
184 qinst->qpu.flags.muf != V3D_QPU_UF_NONE) { in is_no_op_mov()
198 vir_for_each_inst_safe(qinst, block) { in v3d_generate_code_block()
201 vir_dump_inst(c, qinst); in v3d_generate_code_block()
205 struct qinst *temp; in v3d_generate_code_block()
207 if (vir_has_uniform(qinst)) in v3d_generate_code_block()
210 int nsrc = vir_get_nsrc(qinst); in v3d_generate_code_block()
211 struct qpu_reg src[ARRAY_SIZE(qinst->src)]; in v3d_generate_code_block()
213 int index = qinst->src[i].index; in v3d_generate_code_block()
214 switch (qinst->src[i].file) { in v3d_generate_code_block()
216 src[i] = qpu_reg(qinst->src[i].index); in v3d_generate_code_block()
219 src[i] = qpu_magic(qinst->src[i].index); in v3d_generate_code_block()
233 assert((int)qinst->src[i].index >= in v3d_generate_code_block()
236 last_vpm_read_index = qinst->src[i].index; in v3d_generate_code_block()
238 temp = new_qpu_nop_before(qinst); in v3d_generate_code_block()
247 switch (qinst->dst.file) { in v3d_generate_code_block()
253 dst = qpu_reg(qinst->dst.index); in v3d_generate_code_block()
257 dst = qpu_magic(qinst->dst.index); in v3d_generate_code_block()
261 dst = temp_registers[qinst->dst.index]; in v3d_generate_code_block()
274 if (qinst->qpu.type == V3D_QPU_INSTR_TYPE_ALU) { in v3d_generate_code_block()
275 if (qinst->qpu.sig.ldunif) { in v3d_generate_code_block()
276 assert(qinst->qpu.alu.add.op == V3D_QPU_A_NOP); in v3d_generate_code_block()
277 assert(qinst->qpu.alu.mul.op == V3D_QPU_M_NOP); in v3d_generate_code_block()
283 qinst->qpu.sig.ldunif = false; in v3d_generate_code_block()
284 qinst->qpu.sig.ldunifrf = true; in v3d_generate_code_block()
285 qinst->qpu.sig_addr = dst.index; in v3d_generate_code_block()
286 qinst->qpu.sig_magic = dst.magic; in v3d_generate_code_block()
289 &qinst->qpu.sig)) { in v3d_generate_code_block()
290 assert(qinst->qpu.alu.add.op == V3D_QPU_A_NOP); in v3d_generate_code_block()
291 assert(qinst->qpu.alu.mul.op == V3D_QPU_M_NOP); in v3d_generate_code_block()
293 qinst->qpu.sig_addr = dst.index; in v3d_generate_code_block()
294 qinst->qpu.sig_magic = dst.magic; in v3d_generate_code_block()
295 } else if (qinst->qpu.alu.add.op != V3D_QPU_A_NOP) { in v3d_generate_code_block()
296 assert(qinst->qpu.alu.mul.op == V3D_QPU_M_NOP); in v3d_generate_code_block()
298 set_src(&qinst->qpu, in v3d_generate_code_block()
299 &qinst->qpu.alu.add.a, src[0]); in v3d_generate_code_block()
302 set_src(&qinst->qpu, in v3d_generate_code_block()
303 &qinst->qpu.alu.add.b, src[1]); in v3d_generate_code_block()
306 qinst->qpu.alu.add.waddr = dst.index; in v3d_generate_code_block()
307 qinst->qpu.alu.add.magic_write = dst.magic; in v3d_generate_code_block()
310 set_src(&qinst->qpu, in v3d_generate_code_block()
311 &qinst->qpu.alu.mul.a, src[0]); in v3d_generate_code_block()
314 set_src(&qinst->qpu, in v3d_generate_code_block()
315 &qinst->qpu.alu.mul.b, src[1]); in v3d_generate_code_block()
318 qinst->qpu.alu.mul.waddr = dst.index; in v3d_generate_code_block()
319 qinst->qpu.alu.mul.magic_write = dst.magic; in v3d_generate_code_block()
321 if (is_no_op_mov(qinst)) { in v3d_generate_code_block()
322 vir_remove_instruction(c, qinst); in v3d_generate_code_block()
327 assert(qinst->qpu.type == V3D_QPU_INSTR_TYPE_BRANCH); in v3d_generate_code_block()