mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
panfrost: Verify and print brx condition in disasm
The condition code in extended branches is repeated 8 times for unclear reasons; accordingly, the code would be disassembled as "unknown5555", "unknownAAAA", etc. This patch correctly masks off the lower two bits to find the true code to print, verifying that the code is repeated as believed to be necessary (providing some assurance for compiler quality and an assert trip in case we encounter a shader in the wild that breaks the convention). Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
parent
779e140b1a
commit
705723e6be
1 changed files with 10 additions and 1 deletions
|
|
@ -478,7 +478,16 @@ print_extended_branch_writeout_field(uint8_t *words)
|
|||
printf("brx.");
|
||||
|
||||
print_branch_op(br.op);
|
||||
print_branch_cond(br.cond);
|
||||
|
||||
/* Condition repeated 8 times in all known cases. Check this. */
|
||||
|
||||
unsigned cond = br.cond & 0x3;
|
||||
|
||||
for (unsigned i = 0; i < 16; i += 2) {
|
||||
assert(((br.cond >> i) & 0x3) == cond);
|
||||
}
|
||||
|
||||
print_branch_cond(cond);
|
||||
|
||||
if (br.unknown)
|
||||
printf(".unknown%d", br.unknown);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue