freedreno/ir3: half vs full reg in standalone compiler output
authorRob Clark <robclark@freedesktop.org>
Sat, 1 Nov 2014 13:50:18 +0000 (09:50 -0400)
committerRob Clark <robclark@freedesktop.org>
Fri, 14 Nov 2014 17:02:43 +0000 (12:02 -0500)
Handle hrN.c in printing outputs/inputs.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3_cmdline.c

index 96d89d6ed7fd9a39e0c72267c756833fc42ae620..7de29f33d881ca901de4c89e0c69fd53bf9a5e33 100644 (file)
@@ -52,28 +52,32 @@ static void dump_info(struct ir3_shader_variant *so, const char *str)
        bin = ir3_assemble(so->ir, &info);
        if (fd_mesa_debug & FD_DBG_DISASM) {
                struct ir3_block *block = so->ir->block;
+               struct ir3_register *reg;
+               uint8_t regid;
                unsigned i;
 
                debug_printf("; %s: %s\n", type, str);
 
                for (i = 0; i < block->ninputs; i++) {
-                       uint8_t regid;
                        if (!block->inputs[i])
                                continue;
-                       regid = block->inputs[i]->regs[0]->num;
-                       debug_printf("@in(r%d.%c)\tin%d\n",
+                       reg = block->inputs[i]->regs[0];
+                       regid = reg->num;
+                       debug_printf("@in(%sr%d.%c)\tin%d\n",
+                                       (reg->flags & IR3_REG_HALF) ? "h" : "",
                                        (regid >> 2), "xyzw"[regid & 0x3], i);
                }
 
                for (i = 0; i < block->noutputs; i++) {
-                       uint8_t regid;
                        if (!block->outputs[i])
                                continue;
                        /* kill shows up as a virtual output.. skip it! */
                        if (is_kill(block->outputs[i]))
                                continue;
-                       regid = block->outputs[i]->regs[0]->num;
-                       debug_printf("@out(r%d.%c)\tout%d\n",
+                       reg = block->outputs[i]->regs[0];
+                       regid = reg->num;
+                       debug_printf("@out(%sr%d.%c)\tout%d\n",
+                                       (reg->flags & IR3_REG_HALF) ? "h" : "",
                                        (regid >> 2), "xyzw"[regid & 0x3], i);
                }