On Thu, May 21, 2015 at 2:40 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Thu, May 21, 2015 at 2:25 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Thu, May 21, 2015 at 2:08 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >>> On Thu, May 21, 2015 at 1:56 PM, Jim Wilson <jim.wil...@linaro.org> wrote: >>>> On 05/20/2015 10:00 AM, H.J. Lu wrote: >>>>> By default, alignment of DImode and DFmode is set to 8 bytes. >>>>> Intel MCU psABI specifies alignment of DImode and DFmode >>>>> to be 4 bytes. I'd like to make get_mode_alignment to return >>>>> 32 bits for DImode and DFmode. Is there a way to adjust alignment >>>>> of DImode and DFmode via ADJUST_ALIGNMENT? >>>> >>>> I see that i386-modes.def already uses ADJUST_ALIGNMENT to change the >>>> alignment of XFmode to 4 for ilp32 code. ADJUST_ALIGNMENT should work >>>> the same for DImode and DFmode. Did you run into a problem when you >>>> tried it? >>> >>> It seems to work. I don't know why it failed for me last time. >>> >> >> Now I remembered. It doesn't work for complex and decimal >> floating point modes: >> >> build/genmodes: config/i386/i386-modes.def:41: no mode "DD" >> build/genmodes: config/i386/i386-modes.def:42: no mode "TD" >> > > machmode.def has > > /* Allow the target to specify additional modes of various kinds. */ > #if HAVE_EXTRA_MODES > # include EXTRA_MODES_FILE > #endif > > /* Complex modes. */ > COMPLEX_MODES (INT); > COMPLEX_MODES (FLOAT); > > /* Decimal floating point modes. */ > DECIMAL_FLOAT_MODE (SD, 4, decimal_single_format); > DECIMAL_FLOAT_MODE (DD, 8, decimal_double_format); > DECIMAL_FLOAT_MODE (TD, 16, decimal_quad_format); > > We can't adjust any modes in i386-modes.def since they > aren't available yet. But we need to include i386-modes.def > before > > COMPLEX_MODES (FLOAT); > > to get XCmode. > > Should we add an EXTRA_ALIGNMENTS_FILE and include it > after all modes are created?
I opened: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66250 -- H.J.