From 8b898c1174b11a4e16a865ad78e6b6f6350bf185 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sat, 1 Nov 2014 09:50:18 -0400 Subject: [PATCH] freedreno/ir3: half vs full reg in standalone compiler output Handle hrN.c in printing outputs/inputs. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/ir3/ir3_cmdline.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c index 96d89d6ed7f..7de29f33d88 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c @@ -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); } -- 2.30.2