pan/bi: Fix destination printing
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 5 Mar 2020 22:49:45 +0000 (17:49 -0500)
committerMarge Bot <eric+marge@anholt.net>
Sat, 7 Mar 2020 00:37:39 +0000 (00:37 +0000)
It should get the same treatment as sources to handle SSA/reg/etc.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097>

src/panfrost/bifrost/bi_print.c

index 9c9f6770285ab58a39cbb2e0c2269c32cf6fe277..1697fb9dd53f8b900cc434ca895eec7ebe13484e 100644 (file)
@@ -139,6 +139,25 @@ bi_class_name(enum bi_class cl)
         }
 }
 
+static void
+bi_print_index(FILE *fp, bi_instruction *ins, unsigned index)
+{
+        if (!index)
+                fprintf(fp, "_");
+        else if (index & BIR_INDEX_REGISTER)
+                fprintf(fp, "br%u", index & ~BIR_INDEX_REGISTER);
+        else if (index & BIR_INDEX_UNIFORM)
+                fprintf(fp, "u%u", index & ~BIR_INDEX_UNIFORM);
+        else if (index & BIR_INDEX_CONSTANT)
+                fprintf(fp, "#0x%" PRIx64, ins->constant.u64);
+        else if (index & BIR_INDEX_ZERO)
+                fprintf(fp, "#0");
+        else if (index & BIR_IS_REG)
+                fprintf(fp, "r%u", index >> 1);
+        else
+                fprintf(fp, "%u", (index >> 1) - 1);
+}
+
 static void
 bi_print_src(FILE *fp, bi_instruction *ins, unsigned s)
 {
@@ -153,20 +172,7 @@ bi_print_src(FILE *fp, bi_instruction *ins, unsigned s)
         if (abs)
                 fprintf(fp, "abs(");
 
-        if (!src)
-                fprintf(fp, "_");
-        else if (src & BIR_INDEX_REGISTER)
-                fprintf(fp, "br%u", src & ~BIR_INDEX_REGISTER);
-        else if (src & BIR_INDEX_UNIFORM)
-                fprintf(fp, "u%u", src & ~BIR_INDEX_UNIFORM);
-        else if (src & BIR_INDEX_CONSTANT)
-                fprintf(fp, "#0x%" PRIx64, ins->constant.u64);
-        else if (src & BIR_INDEX_ZERO)
-                fprintf(fp, "#0");
-        else if (src & BIR_IS_REG)
-                fprintf(fp, "r%u", src >> 1);
-        else
-                fprintf(fp, "%u", (src >> 1) - 1);
+        bi_print_index(fp, ins, src);
 
         if (abs)
                 fprintf(fp, ")");
@@ -303,12 +309,7 @@ bi_print_instruction(bi_instruction *ins, FILE *fp)
                 fprintf(fp, "%s", bi_round_mode_name(ins->roundmode));
 
         fprintf(fp, " ");
-
-        if (ins->dest)
-                fprintf(fp, "%d", ins->dest);
-        else
-                fprintf(fp, "_");
-
+        bi_print_index(fp, ins, ins->dest);
         fprintf(fp, ", ");
 
         bi_foreach_src(ins, s) {