Module: Mesa
Branch: master
Commit: 457ed5aa01fc65c47dea6bfb7e358d4518969b7a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=457ed5aa01fc65c47dea6bfb7e358d4518969b7a

Author: Iago Toral Quiroga <[email protected]>
Date:   Thu Feb 11 11:32:35 2021 +0100

broadcom/compiler: name registers correctly based on V3D version

So we can differentiate between TMU for V3D 4.x and UNIFA for V3D 4.x,
which are aliased.

Reviewed-by: Alejandro PiƱeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8980>

---

 src/broadcom/compiler/vir_dump.c | 6 ++++--
 src/broadcom/qpu/qpu_disasm.c    | 6 ++++--
 src/broadcom/qpu/qpu_instr.c     | 9 +++++++--
 src/broadcom/qpu/qpu_instr.h     | 3 ++-
 4 files changed, 17 insertions(+), 7 deletions(-)

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);

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to