From 794836daf06043a6d7201274b4496ce57f2478e8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 25 Feb 2022 12:29:00 -0500 Subject: [PATCH] pan/va: Handle sr_write_count in the disassembler Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/valhall/disasm.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/panfrost/bifrost/valhall/disasm.py b/src/panfrost/bifrost/valhall/disasm.py index 6d0cda9..bc0702b 100644 --- a/src/panfrost/bifrost/valhall/disasm.py +++ b/src/panfrost/bifrost/valhall/disasm.py @@ -154,7 +154,15 @@ va_disasm_instr(FILE *fp, uint64_t instr) % endif <% no_comma = False - sr_count = "((instr >> 33) & MASK(3))" if sr.count == 0 else sr.count + + if sr.count != 0: + sr_count = sr.count + elif "staging_register_write_count" in [x.name for x in op.modifiers] and sr.write: + sr_count = "(((instr >> 36) & MASK(3)) + 1)" + elif "staging_register_count" in [x.name for x in op.modifiers]: + sr_count = "((instr >> 33) & MASK(3))" + else: + assert(0) %> // assert(((instr >> ${sr.start}) & 0xC0) == ${sr.encoded_flags}); for (unsigned i = 0; i < ${sr_count}; ++i) { -- 2.7.4