diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-08-01 13:29:01 -0700 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-08-02 14:20:02 -0700 |
commit | c908772ee47201a1f84503099d1e0767a9f9818f (patch) | |
tree | a3465670ae5dcbba46db0890cb96fafc8cf44a85 /src/panfrost/midgard/disassemble.c | |
parent | 2d54fdb563829fc9a097d35169e058acd8e1e790 (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.c | 12 |
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 |