Hello,
Thanks for the question.
I've discussed this behavior with our compiler expert.
It is caused by the S12Z compiler behavior when allocating structures. It allocates bitfields within 8 and 16-bit wide (with direct impact from the options described in the compiler manual). Everything that exceeds 16 bit is allocated as a different field.
The bitfield allocation unit is byte and if things don't fit in byte (or too large gaps), the allocation can be extended to word. For 3 or 4 bytes, the allocation is done differently and does not allow merging other fields in a bitfield larger than a word (2-bytes)
So no matter how you arrange the structure, or the bit-field options you use, a bitfield larger than 16-bits will always be allocated alone.
Hope it helps to clarify this issue.
Stan