vc4: Dump the VPM read index in QIR disasm.
authorEric Anholt <eric@anholt.net>
Fri, 30 Jan 2015 19:23:26 +0000 (11:23 -0800)
committerEric Anholt <eric@anholt.net>
Sun, 1 Feb 2015 20:53:08 +0000 (12:53 -0800)
Since the VPM reads have to be in order, it's useful to see their indices
in the dump.

src/gallium/drivers/vc4/vc4_qir.c

index ed20b5624a962393dfc153d7cd034a8a963b3e23..feb585d69aee3b8b1a24c4aba043860565fa56c2 100644 (file)
@@ -245,7 +245,7 @@ qir_reads_r4(struct qinst *inst)
 }
 
 static void
-qir_print_reg(struct vc4_compile *c, struct qreg reg)
+qir_print_reg(struct vc4_compile *c, struct qreg reg, bool write)
 {
         static const char *files[] = {
                 [QFILE_TEMP] = "t",
@@ -261,7 +261,12 @@ qir_print_reg(struct vc4_compile *c, struct qreg reg)
                 else
                         fprintf(stderr, "%f", uif(reg.index));
         } else if (reg.file == QFILE_VPM) {
-                fprintf(stderr, "vpm");
+                if (write) {
+                        fprintf(stderr, "vpm");
+                } else {
+                        fprintf(stderr, "vpm%d.%d",
+                                reg.index / 4, reg.index % 4);
+                }
         } else {
                 fprintf(stderr, "%s%d", files[reg.file], reg.index);
         }
@@ -279,10 +284,10 @@ qir_dump_inst(struct vc4_compile *c, struct qinst *inst)
 {
         fprintf(stderr, "%s ", qir_get_op_name(inst->op));
 
-        qir_print_reg(c, inst->dst);
+        qir_print_reg(c, inst->dst, true);
         for (int i = 0; i < qir_get_op_nsrc(inst->op); i++) {
                 fprintf(stderr, ", ");
-                qir_print_reg(c, inst->src[i]);
+                qir_print_reg(c, inst->src[i], false);
         }
 }