summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2014-11-01 09:50:18 -0400
committerRob Clark <[email protected]>2014-11-14 12:02:43 -0500
commit8b898c1174b11a4e16a865ad78e6b6f6350bf185 (patch)
tree4d281f6944bfb1f4b2fc0797376184ef13f86dd4 /src
parent7037793f6b565cbb03a46a63058b1d9a7a4b4bdf (diff)
freedreno/ir3: half vs full reg in standalone compiler output
Handle hrN.c in printing outputs/inputs. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_cmdline.c16
1 files 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);
}