[Mesa-dev] [PATCH 4/7] panfrost: Update extended branch disassembly
Alyssa Rosenzweig
alyssa at rosenzweig.io
Mon Feb 18 04:40:03 UTC 2019
Partial support was previously included in the disassembler, but based
on a buggy form of the ISA. This corrects the disassembly. Additionally,
we now prefix extended branches with "brx", to visually differentiate
from compact branches prefixed with "br".
Signed-off-by: Alyssa Rosenzweig <alyssa at rosenzweig.io>
---
src/gallium/drivers/panfrost/midgard/disassemble.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/panfrost/midgard/disassemble.c b/src/gallium/drivers/panfrost/midgard/disassemble.c
index afde3fdbbcd..7e5c5803f75 100644
--- a/src/gallium/drivers/panfrost/midgard/disassemble.c
+++ b/src/gallium/drivers/panfrost/midgard/disassemble.c
@@ -373,6 +373,10 @@ static void
print_branch_op(int op)
{
switch (op) {
+ case midgard_jmp_writeout_op_branch_uncond:
+ printf("uncond.");
+ break;
+
case midgard_jmp_writeout_op_branch_cond:
printf("cond.");
break;
@@ -412,6 +416,7 @@ print_branch_cond(int cond)
break;
default:
+ printf("unk%X", cond);
break;
}
}
@@ -470,17 +475,13 @@ print_extended_branch_writeout_field(uint8_t *words)
midgard_branch_extended br;
memcpy((char *) &br, (char *) words, sizeof(br));
- printf("br.");
+ printf("brx.");
print_branch_op(br.op);
print_branch_cond(br.cond);
- /* XXX: This can't be right */
if (br.unknown)
- printf(".unknown%d\n", br.unknown);
-
- if (br.zero)
- printf(".zero%d\n", br.zero);
+ printf(".unknown%d", br.unknown);
printf(" ");
--
2.20.1
More information about the mesa-dev
mailing list