On 01/22/2018 11:15 AM, Alex Bennée wrote:
>>> typedef struct TCGLabelPoolData {
>>> struct TCGLabelPoolData *next;
>>> - tcg_target_ulong data;
>>> tcg_insn_unit *label;
>>> - intptr_t addend;
>>> - int type;
>>> + int addend : 32;
>>> + int rtype : 16;
>>> + int nlong : 16;
>>> + tcg_target_ulong data[];
>>> } TCGLabelPoolData;
>>>
>>
>> Seems a bit odd to use bitfields for 32 and 16 bit values, but whatever.
>> (My default reaction to bitfields is "be suspicious" :-))
>
> I'm guessing this is the same reason as the softfloat re-factor. By
> manually forcing stuff into a bitfield the compiler does a better job of
> passing multiple structure elements in a single register?
>
> It would be nice if the compiler could spot this itself though.
You're probably right that I could just use int16_t etc.
r~