summaryrefslogtreecommitdiffstats
path: root/src/panfrost/midgard/disassemble.c
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-08-01 13:29:01 -0700
committerAlyssa Rosenzweig <[email protected]>2019-08-02 14:20:02 -0700
commitc908772ee47201a1f84503099d1e0767a9f9818f (patch)
treea3465670ae5dcbba46db0890cb96fafc8cf44a85 /src/panfrost/midgard/disassemble.c
parent2d54fdb563829fc9a097d35169e058acd8e1e790 (diff)
pan/midgard: Split ld/st unknown to arg_1/arg_2 fields
The 16-bit field can be decomposed to two independent 8-bit fields, each representing a single (additional) argument to the load/store op, generally used for encoding registers. Addressable registers here are substantially limited compared to the main register in a load/store op. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost/midgard/disassemble.c')
-rw-r--r--src/panfrost/midgard/disassemble.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/panfrost/midgard/disassemble.c b/src/panfrost/midgard/disassemble.c
index a74280fc733..b9740caa1b8 100644
--- a/src/panfrost/midgard/disassemble.c
+++ b/src/panfrost/midgard/disassemble.c
@@ -969,6 +969,12 @@ is_op_varying(unsigned op)
}
static void
+print_load_store_arg(uint8_t arg)
+{
+ printf("0x%X", arg);
+}
+
+static void
print_load_store_instr(uint64_t data,
unsigned tabs)
{
@@ -998,7 +1004,11 @@ print_load_store_instr(uint64_t data,
print_swizzle_vec4(word->swizzle, false, false);
- printf(", 0x%X /* %X */\n", word->unknown, word->varying_parameters);
+ printf(", ");
+ print_load_store_arg(word->arg_1);
+ printf(", ");
+ print_load_store_arg(word->arg_2);
+ printf(" /* %X */\n", word->varying_parameters);
}
static void