aubinator: Fix the decoding of values that span two Dwords
authorSirisha Gandikota <Sirisha.Gandikota@intel.com>
Tue, 20 Sep 2016 22:59:28 +0000 (15:59 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 26 Sep 2016 18:18:52 +0000 (11:18 -0700)
commit8e3e9d74b54dc9dda0432f69fdbb2eab5969cc8a
tree198cc82526d57b336651164a106aebbf87b308be
parentac859d68f474694f9cb1de007997c936d735a48c
aubinator: Fix the decoding of values that span two Dwords

Fixed the way the values that span two Dwords are decoded.
Based on the start and end indices of the field, the Dwords
are fetched and decoded accordingly.

v2: rename dw to qw in gen_field_iterator_next
and remove extra white space (Anuj)

v3: change all instances of dw to qw (Anuj)

Earlier, 64-bit fields (such as most pointers on Gen8+)
weren't decoded correctly.  gen_field_iterator_next seemed
to walk one DWord at a time, sets v.dw, and then passes it
to field(). So, even though field() takes a uint64_t, we're
passing it a uint32_t (which gets promoted, so the top 32
bits will always be zero). This seems pretty bogus... (Ken)

Signed-off-by: Sirisha Gandikota <Sirisha.Gandikota@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/tools/decoder.c