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~