Lines Matching refs:disasm

39 append(struct disasm_state *disasm, const char *fmt, ...)
43 ralloc_vasprintf_rewrite_tail(&disasm->string,
44 &disasm->offset,
50 pad_to(struct disasm_state *disasm, int n)
53 while (disasm->offset < n)
54 append(disasm, " ");
59 v3d_qpu_disasm_raddr(struct disasm_state *disasm,
63 append(disasm, "rf%d", instr->raddr_a);
68 v3d_qpu_small_imm_unpack(disasm->devinfo,
73 append(disasm, "%d", val);
75 append(disasm, "0x%08x", val);
78 append(disasm, "rf%d", instr->raddr_b);
81 append(disasm, "r%d", mux);
86 v3d_qpu_disasm_waddr(struct disasm_state *disasm, uint32_t waddr, bool magic)
89 append(disasm, "rf%d", waddr);
93 const char *name = v3d_qpu_magic_waddr_name(disasm->devinfo, waddr);
95 append(disasm, "%s", name);
97 append(disasm, "waddr UNKNOWN %d", waddr);
101 v3d_qpu_disasm_add(struct disasm_state *disasm,
107 append(disasm, "%s", v3d_qpu_add_op_name(instr->alu.add.op));
108 if (!v3d_qpu_sig_writes_address(disasm->devinfo, &instr->sig))
109 append(disasm, "%s", v3d_qpu_cond_name(instr->flags.ac));
110 append(disasm, "%s", v3d_qpu_pf_name(instr->flags.apf));
111 append(disasm, "%s", v3d_qpu_uf_name(instr->flags.auf));
113 append(disasm, " ");
116 v3d_qpu_disasm_waddr(disasm, instr->alu.add.waddr,
118 append(disasm, v3d_qpu_pack_name(instr->alu.add.output_pack));
123 append(disasm, ", ");
124 v3d_qpu_disasm_raddr(disasm, instr, instr->alu.add.a);
125 append(disasm, "%s",
130 append(disasm, ", ");
131 v3d_qpu_disasm_raddr(disasm, instr, instr->alu.add.b);
132 append(disasm, "%s",
138 v3d_qpu_disasm_mul(struct disasm_state *disasm,
144 pad_to(disasm, 30);
145 append(disasm, "; ");
147 append(disasm, "%s", v3d_qpu_mul_op_name(instr->alu.mul.op));
148 if (!v3d_qpu_sig_writes_address(disasm->devinfo, &instr->sig))
149 append(disasm, "%s", v3d_qpu_cond_name(instr->flags.mc));
150 append(disasm, "%s", v3d_qpu_pf_name(instr->flags.mpf));
151 append(disasm, "%s", v3d_qpu_uf_name(instr->flags.muf));
156 append(disasm, " ");
159 v3d_qpu_disasm_waddr(disasm, instr->alu.mul.waddr,
161 append(disasm, v3d_qpu_pack_name(instr->alu.mul.output_pack));
166 append(disasm, ", ");
167 v3d_qpu_disasm_raddr(disasm, instr, instr->alu.mul.a);
168 append(disasm, "%s",
173 append(disasm, ", ");
174 v3d_qpu_disasm_raddr(disasm, instr, instr->alu.mul.b);
175 append(disasm, "%s",
181 v3d_qpu_disasm_sig_addr(struct disasm_state *disasm,
184 if (disasm->devinfo->ver < 41)
188 append(disasm, ".rf%d", instr->sig_addr);
191 v3d_qpu_magic_waddr_name(disasm->devinfo,
194 append(disasm, ".%s", name);
196 append(disasm, ".UNKNOWN%d", instr->sig_addr);
201 v3d_qpu_disasm_sig(struct disasm_state *disasm,
220 pad_to(disasm, 60);
223 append(disasm, "; thrsw");
225 append(disasm, "; ldvary");
226 v3d_qpu_disasm_sig_addr(disasm, instr);
229 append(disasm, "; ldvpm");
231 append(disasm, "; ldtmu");
232 v3d_qpu_disasm_sig_addr(disasm, instr);
235 append(disasm, "; ldtlb");
236 v3d_qpu_disasm_sig_addr(disasm, instr);
239 append(disasm, "; ldtlbu");
240 v3d_qpu_disasm_sig_addr(disasm, instr);
243 append(disasm, "; ldunif");
245 append(disasm, "; ldunifrf");
246 v3d_qpu_disasm_sig_addr(disasm, instr);
249 append(disasm, "; ldunifa");
251 append(disasm, "; ldunifarf");
252 v3d_qpu_disasm_sig_addr(disasm, instr);
255 append(disasm, "; wrtmuc");
259 v3d_qpu_disasm_alu(struct disasm_state *disasm,
262 v3d_qpu_disasm_add(disasm, instr);
263 v3d_qpu_disasm_mul(disasm, instr);
264 v3d_qpu_disasm_sig(disasm, instr);
268 v3d_qpu_disasm_branch(struct disasm_state *disasm,
271 append(disasm, "b");
273 append(disasm, "u");
274 append(disasm, "%s", v3d_qpu_branch_cond_name(instr->branch.cond));
275 append(disasm, "%s", v3d_qpu_msfign_name(instr->branch.msfign));
279 append(disasm, " zero_addr+0x%08x", instr->branch.offset);
283 append(disasm, " %d", instr->branch.offset);
287 append(disasm, " lri");
291 append(disasm, " rf%d", instr->branch.raddr_a);
298 append(disasm, ", a:unif");
302 append(disasm, ", r:unif");
306 append(disasm, ", lri");
310 append(disasm, ", rf%d", instr->branch.raddr_a);
320 struct disasm_state disasm = {
328 v3d_qpu_disasm_alu(&disasm, instr);
332 v3d_qpu_disasm_branch(&disasm, instr);
336 return disasm.string;