Re: Is there a way to adjust alignment of DImode and DFmode?
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. -- H.J.
Re: Is there a way to adjust alignment of DImode and DFmode?
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.
Re: Is there a way to adjust alignment of DImode and DFmode?
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? -- H.J.
Re: Is there a way to adjust alignment of DImode and DFmode?
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 -- H.J.
Re: Is there a way to adjust alignment of DImode and DFmode?
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? Jim
Is there a way to adjust alignment of DImode and DFmode?
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? -- H.J.
Re: Is there a way to adjust alignment of DImode and DFmode?
On May 20, 2015, at 1:00 PM, H.J. Lu hjl.to...@gmail.com wrote: By default, alignment of DImode and DFmode is set to 8 bytes. When did that change? I know it was 4 in the past, unless you specifically passed a compile switch to make it 8. paul
Re: Is there a way to adjust alignment of DImode and DFmode?
On May 20, 2015, at 1:22 PM, Jakub Jelinek ja...@redhat.com wrote: On Wed, May 20, 2015 at 05:19:28PM +, paul_kon...@dell.com wrote: On May 20, 2015, at 1:00 PM, H.J. Lu hjl.to...@gmail.com wrote: By default, alignment of DImode and DFmode is set to 8 bytes. When did that change? I know it was 4 in the past, unless you specifically passed a compile switch to make it 8. For i?86 that is only field alignment (i.e. inside of structs). I missed that. Thanks. paul
Re: Is there a way to adjust alignment of DImode and DFmode?
On Wed, May 20, 2015 at 05:19:28PM +, paul_kon...@dell.com wrote: On May 20, 2015, at 1:00 PM, H.J. Lu hjl.to...@gmail.com wrote: By default, alignment of DImode and DFmode is set to 8 bytes. When did that change? I know it was 4 in the past, unless you specifically passed a compile switch to make it 8. For i?86 that is only field alignment (i.e. inside of structs). Jakub