broadcom/genxml: Support address fields with <32 bits
I was writing the XML such that the address field overlapped various flags in the alignment bits, which caused pain when trying to unpack for decode. Instead, keep the XML matching the docs (address fields don't overlap), and just infer the appropriate shift value during decode. During pack, the address is just applied to the appropriate bits already, ignoring the sub-byte start/end fields.
This commit is contained in:
@@ -792,7 +792,7 @@ v3d_field_iterator_next(struct v3d_field_iterator *iter)
|
||||
case V3D_TYPE_ADDRESS:
|
||||
case V3D_TYPE_OFFSET:
|
||||
snprintf(iter->value, sizeof(iter->value), "0x%08"PRIx64,
|
||||
__gen_unpack_uint(iter->p, s, e));
|
||||
__gen_unpack_uint(iter->p, s, e) << (31 - (e - s)));
|
||||
break;
|
||||
case V3D_TYPE_STRUCT:
|
||||
snprintf(iter->value, sizeof(iter->value), "<struct %s>",
|
||||
|
||||
Reference in New Issue
Block a user