diff --git a/src/broadcom/compiler/vir_dump.c b/src/broadcom/compiler/vir_dump.c index 576b0d7263e..db8ff87f90d 100644 --- a/src/broadcom/compiler/vir_dump.c +++ b/src/broadcom/compiler/vir_dump.c @@ -163,7 +163,8 @@ vir_print_reg(struct v3d_compile *c, const struct qinst *inst, break; case QFILE_MAGIC: - fprintf(stderr, "%s", v3d_qpu_magic_waddr_name(reg.index)); + fprintf(stderr, "%s", + v3d_qpu_magic_waddr_name(c->devinfo, reg.index)); break; case QFILE_SMALL_IMM: { @@ -202,7 +203,8 @@ vir_dump_sig_addr(const struct v3d_device_info *devinfo, if (!instr->sig_magic) fprintf(stderr, ".rf%d", instr->sig_addr); else { - const char *name = v3d_qpu_magic_waddr_name(instr->sig_addr); + const char *name = + v3d_qpu_magic_waddr_name(devinfo, instr->sig_addr); if (name) fprintf(stderr, ".%s", name); else diff --git a/src/broadcom/qpu/qpu_disasm.c b/src/broadcom/qpu/qpu_disasm.c index 9f59bcdf783..b5648bd76e2 100644 --- a/src/broadcom/qpu/qpu_disasm.c +++ b/src/broadcom/qpu/qpu_disasm.c @@ -90,7 +90,7 @@ v3d_qpu_disasm_waddr(struct disasm_state *disasm, uint32_t waddr, bool magic) return; } - const char *name = v3d_qpu_magic_waddr_name(waddr); + const char *name = v3d_qpu_magic_waddr_name(disasm->devinfo, waddr); if (name) append(disasm, "%s", name); else @@ -187,7 +187,9 @@ v3d_qpu_disasm_sig_addr(struct disasm_state *disasm, if (!instr->sig_magic) append(disasm, ".rf%d", instr->sig_addr); else { - const char *name = v3d_qpu_magic_waddr_name(instr->sig_addr); + const char *name = + v3d_qpu_magic_waddr_name(disasm->devinfo, + instr->sig_addr); if (name) append(disasm, ".%s", name); else diff --git a/src/broadcom/qpu/qpu_instr.c b/src/broadcom/qpu/qpu_instr.c index 2a041cdf1bd..4cbf84ef00c 100644 --- a/src/broadcom/qpu/qpu_instr.c +++ b/src/broadcom/qpu/qpu_instr.c @@ -27,8 +27,13 @@ #include "qpu_instr.h" const char * -v3d_qpu_magic_waddr_name(enum v3d_qpu_waddr waddr) +v3d_qpu_magic_waddr_name(const struct v3d_device_info *devinfo, + enum v3d_qpu_waddr waddr) { + /* V3D 4.x UNIFA aliases TMU in V3D 3.x in the table below */ + if (devinfo->ver < 40 && waddr == V3D_QPU_WADDR_TMU) + return "tmu"; + static const char *waddr_magic[] = { [V3D_QPU_WADDR_R0] = "r0", [V3D_QPU_WADDR_R1] = "r1", @@ -39,7 +44,7 @@ v3d_qpu_magic_waddr_name(enum v3d_qpu_waddr waddr) [V3D_QPU_WADDR_NOP] = "-", [V3D_QPU_WADDR_TLB] = "tlb", [V3D_QPU_WADDR_TLBU] = "tlbu", - [V3D_QPU_WADDR_TMU] = "tmu", + [V3D_QPU_WADDR_UNIFA] = "unifa", [V3D_QPU_WADDR_TMUL] = "tmul", [V3D_QPU_WADDR_TMUD] = "tmud", [V3D_QPU_WADDR_TMUA] = "tmua", diff --git a/src/broadcom/qpu/qpu_instr.h b/src/broadcom/qpu/qpu_instr.h index 86dde9d7e6b..432312ca45d 100644 --- a/src/broadcom/qpu/qpu_instr.h +++ b/src/broadcom/qpu/qpu_instr.h @@ -388,7 +388,8 @@ struct v3d_qpu_instr { }; }; -const char *v3d_qpu_magic_waddr_name(enum v3d_qpu_waddr waddr); +const char *v3d_qpu_magic_waddr_name(const struct v3d_device_info *devinfo, + enum v3d_qpu_waddr waddr); const char *v3d_qpu_add_op_name(enum v3d_qpu_add_op op); const char *v3d_qpu_mul_op_name(enum v3d_qpu_mul_op op); const char *v3d_qpu_cond_name(enum v3d_qpu_cond cond);