pan/midgard: Pretty-print units
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 6 Aug 2019 00:58:52 +0000 (17:58 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 12 Aug 2019 19:43:01 +0000 (12:43 -0700)
Since we are seeing some use of MIR post-scheduling, let's get this
printed right.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/midgard_print.c

index d5a429ae2ac333ea550308301800706d8651ec90..bf26bf70b2c47f6426843f4879c8499eea55c11a 100644 (file)
@@ -61,6 +61,29 @@ mir_print_mask(unsigned mask)
         }
 }
 
+static const char *
+mir_get_unit(unsigned unit)
+{
+        switch (unit) {
+        case ALU_ENAB_VEC_MUL:
+                return "vmul";
+        case ALU_ENAB_SCAL_ADD:
+                return "sadd";
+        case ALU_ENAB_VEC_ADD:
+                return "vadd";
+        case ALU_ENAB_SCAL_MUL:
+                return "smul";
+        case ALU_ENAB_VEC_LUT:
+                return "lut";
+        case ALU_ENAB_BR_COMPACT:
+                return "br";
+        case ALU_ENAB_BRANCH:
+                return "brx";
+        default:
+                return "???";
+        }
+}
+
 void
 mir_print_instruction(midgard_instruction *ins)
 {
@@ -72,7 +95,7 @@ mir_print_instruction(midgard_instruction *ins)
                 const char *name = alu_opcode_props[op].name;
 
                 if (ins->unit)
-                        printf("%d.", ins->unit);
+                        printf("%s.", mir_get_unit(ins->unit));
 
                 printf("%s", name ? name : "??");
                 break;