summaryrefslogtreecommitdiffstats
path: root/src/intel/common/gen_decoder.c
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2018-05-02 00:13:39 +0100
committerLionel Landwerlin <[email protected]>2018-05-02 17:11:28 +0100
commitacbce2ac57d476e2af90a2892341581b76148c11 (patch)
tree4fb1573a1a7dc1475dabdfc8d7ad1ece585017d2 /src/intel/common/gen_decoder.c
parent467430ddcc85be34bd79a3709b33e4510e3c9370 (diff)
intel: decoder: fix starting dword of struct fields
Struct fields might span several dwords, but iter_dword is incremented up to the last dword of the current field before we print out the struct's fields. We can't use iter_dword for computing the offset into the pointer of data to decode. v2: Fix displayed offset number (Ken) Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/intel/common/gen_decoder.c')
-rw-r--r--src/intel/common/gen_decoder.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
index 93fa4864ee3..bb87192d23c 100644
--- a/src/intel/common/gen_decoder.c
+++ b/src/intel/common/gen_decoder.c
@@ -1062,9 +1062,10 @@ gen_print_group(FILE *outfile, struct gen_group *group, uint64_t offset,
if (!gen_field_is_header(iter.field)) {
fprintf(outfile, " %s: %s\n", iter.name, iter.value);
if (iter.struct_desc) {
- uint64_t struct_offset = offset + 4 * iter_dword;
+ int struct_dword = iter.start_bit / 32;
+ uint64_t struct_offset = offset + 4 * struct_dword;
gen_print_group(outfile, iter.struct_desc, struct_offset,
- &p[iter_dword], iter.start_bit % 32, color);
+ &p[struct_dword], iter.start_bit % 32, color);
}
}
}