ir3: Print multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
This commit is contained in:
parent
b7f114ea13
commit
78ab6250b5
|
@ -188,6 +188,9 @@ static const struct opc_info {
|
||||||
/* category 1: */
|
/* category 1: */
|
||||||
OPC(1, OPC_MOV, ),
|
OPC(1, OPC_MOV, ),
|
||||||
OPC(1, OPC_MOVMSK, movmsk),
|
OPC(1, OPC_MOVMSK, movmsk),
|
||||||
|
OPC(1, OPC_SWZ, swz),
|
||||||
|
OPC(1, OPC_SCT, sct),
|
||||||
|
OPC(1, OPC_GAT, gat),
|
||||||
|
|
||||||
/* category 2: */
|
/* category 2: */
|
||||||
OPC(2, OPC_ADD_F, add.f),
|
OPC(2, OPC_ADD_F, add.f),
|
||||||
|
|
|
@ -109,13 +109,20 @@ static void print_instr_name(struct log_stream *stream, struct ir3_instruction *
|
||||||
/* shouldn't hit here.. just for debugging: */
|
/* shouldn't hit here.. just for debugging: */
|
||||||
default: mesa_log_stream_printf(stream, "_meta:%d", instr->opc); break;
|
default: mesa_log_stream_printf(stream, "_meta:%d", instr->opc); break;
|
||||||
}
|
}
|
||||||
} else if (instr->opc == OPC_MOV) {
|
} else if (opc_cat(instr->opc) == 1) {
|
||||||
if (instr->cat1.src_type == instr->cat1.dst_type)
|
if (instr->opc == OPC_MOV) {
|
||||||
mesa_log_stream_printf(stream, "mov");
|
if (instr->cat1.src_type == instr->cat1.dst_type)
|
||||||
else
|
mesa_log_stream_printf(stream, "mov");
|
||||||
mesa_log_stream_printf(stream, "cov");
|
else
|
||||||
mesa_log_stream_printf(stream, ".%s%s", type_name(instr->cat1.src_type),
|
mesa_log_stream_printf(stream, "cov");
|
||||||
type_name(instr->cat1.dst_type));
|
} else {
|
||||||
|
mesa_log_stream_printf(stream, "%s", disasm_a3xx_instr_name(instr->opc));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instr->opc != OPC_MOVMSK) {
|
||||||
|
mesa_log_stream_printf(stream, ".%s%s", type_name(instr->cat1.src_type),
|
||||||
|
type_name(instr->cat1.dst_type));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mesa_log_stream_printf(stream, "%s", disasm_a3xx_instr_name(instr->opc));
|
mesa_log_stream_printf(stream, "%s", disasm_a3xx_instr_name(instr->opc));
|
||||||
if (instr->flags & IR3_INSTR_3D)
|
if (instr->flags & IR3_INSTR_3D)
|
||||||
|
@ -276,7 +283,7 @@ print_instr(struct log_stream *stream, struct ir3_instruction *instr, int lvl)
|
||||||
if (!is_flow(instr) || instr->opc == OPC_END || instr->opc == OPC_CHMASK) {
|
if (!is_flow(instr) || instr->opc == OPC_END || instr->opc == OPC_CHMASK) {
|
||||||
bool first = true;
|
bool first = true;
|
||||||
foreach_dst (reg, instr) {
|
foreach_dst (reg, instr) {
|
||||||
if (dest_regs(instr) == 0)
|
if (reg->wrmask == 0)
|
||||||
continue;
|
continue;
|
||||||
if (!first)
|
if (!first)
|
||||||
mesa_log_stream_printf(stream, ", ");
|
mesa_log_stream_printf(stream, ", ");
|
||||||
|
|
Loading…
Reference in New Issue