summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@collabora.com>2021-05-04 12:46:26 -0400
committerMarge Bot <eric+marge@anholt.net>2021-05-04 20:04:03 +0000
commita9621c4493fb0c8a03e4100293cf02c9fcb7ddd6 (patch)
treeaaa7da4796d357ca2577e86b43737b91d9f02080
parentcb10a8e2f15dabd2410f76d1e9fc2bed3d8c8edf (diff)
pan/mdg: Don't print zero
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
-rw-r--r--src/panfrost/midgard/disassemble.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/panfrost/midgard/disassemble.c b/src/panfrost/midgard/disassemble.c
index 7efafacbf20..5bb6fef829d 100644
--- a/src/panfrost/midgard/disassemble.c
+++ b/src/panfrost/midgard/disassemble.c
@@ -1349,7 +1349,7 @@ update_stats(signed *stat, unsigned address)
}
static void
-print_load_store_instr(FILE *fp, uint64_t data)
+print_load_store_instr(FILE *fp, uint64_t data, bool verbose)
{
midgard_load_store_word *word = (midgard_load_store_word *) &data;
@@ -1433,15 +1433,22 @@ print_load_store_instr(FILE *fp, uint64_t data)
/* mem addr expression */
if (OP_HAS_ADDRESS(word->op)) {
fprintf(fp, ", ");
+ bool first = true;
- print_ldst_read_reg(fp, word->arg_reg);
- fprintf(fp, ".u%d.%c",
- word->bitsize_toggle ? 64 : 32, components[word->arg_comp]);
+ /* Skip printing zero */
+ if (word->arg_reg != 7 || verbose) {
+ print_ldst_read_reg(fp, word->arg_reg);
+ fprintf(fp, ".u%d.%c",
+ word->bitsize_toggle ? 64 : 32, components[word->arg_comp]);
+ first = false;
+ }
if ((word->op < midgard_op_atomic_cmpxchg ||
word->op > midgard_op_atomic_cmpxchg64_be) &&
word->index_reg != 0x7) {
- fprintf(fp, " + ");
+ if (!first)
+ fprintf(fp, " + ");
+
print_ldst_read_reg(fp, word->index_reg);
fprintf(fp, "%s.%c",
index_format_names[word->index_format],
@@ -1540,16 +1547,16 @@ print_load_store_instr(FILE *fp, uint64_t data)
}
static void
-print_load_store_word(FILE *fp, uint32_t *word)
+print_load_store_word(FILE *fp, uint32_t *word, bool verbose)
{
midgard_load_store *load_store = (midgard_load_store *) word;
if (load_store->word1 != 3) {
- print_load_store_instr(fp, load_store->word1);
+ print_load_store_instr(fp, load_store->word1, verbose);
}
if (load_store->word2 != 3) {
- print_load_store_instr(fp, load_store->word2);
+ print_load_store_instr(fp, load_store->word2, verbose);
}
}
@@ -1963,7 +1970,7 @@ disassemble_midgard(FILE *fp, uint8_t *code, size_t size, unsigned gpu_id, bool
}
case TAG_LOAD_STORE_4:
- print_load_store_word(fp, &words[i]);
+ print_load_store_word(fp, &words[i], verbose);
break;
case TAG_ALU_4 ... TAG_ALU_16_WRITEOUT: