On Mon, Jan 30, 2017 at 11:47:51AM +0100, Richard Biener wrote:
> On Mon, 30 Jan 2017, Uros Bizjak wrote:
>
> > > 2017-01-30 Richard Biener <[email protected]>
> > >
> > > PR target/79277
> > > * config/i386/i386-modes.def: Align DFmode properly.
> >
> > Index: gcc/config/i386/i386-modes.def
> > ===================================================================
> > --- gcc/config/i386/i386-modes.def (revision 245021)
> > +++ gcc/config/i386/i386-modes.def (working copy)
> > @@ -33,6 +33,7 @@ ADJUST_FLOAT_FORMAT (XF, (TARGET_128BIT_
> > : &ieee_extended_intel_96_format));
> > ADJUST_BYTESIZE (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 12);
> > ADJUST_ALIGNMENT (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 4);
> > +ADJUST_ALIGNMENT (DF, !TARGET_64BIT ? 4 : 8);
> >
> > Please avoid negative logic, just swap arms of the conditional around.
>
> It was just meant as an example fix. I don't think this is appropriate
> at this stage nor is it complete. A full fix would basically make
> x86_field_alignment unnecessary which limits most modes alignment
> to 32bit (but not vector or 128bit float modes). And the conditional
> needs updating to honor TARGET_ALIGN_DOUBLE.
Yeah, at least for GCC 7 that change (quite major ABI change) is too
dangerous IMHO.
Jakub