On Mon, Feb 11, 2019 at 10:00:03AM +0100, Hans-Peter Nilsson wrote: > > Date: Mon, 11 Feb 2019 07:38:14 +0100 > > From: Richard Biener <richard.guent...@gmail.com> > > > >+ HOST_WIDE_INT min_parm_align > > >+ = STRICT_ALIGNMENT ? BITS_PER_WORD : PREFERRED_STACK_BOUNDARY; > > > > Shouldn't it be MIN (...) of BOTH? > > That *does* seem logical... Take 2 as follows, in testing as > before. > > Ok to commit, if testing passes?
Is PREFERRED_STACK_BOUNDARY what we want here? Shouldn't that be STACK_BOUNDARY, or PARM_BOUNDARY? Though, PARM_BOUNDARY on cris is 32... > gcc: > * function.c (assign_parm_setup_block): Align the > parameter to a minimum of PREFERRED_STACK_BOUNDARY and > BITS_PER_WORD instead of always BITS_PER_WORD. > > --- gcc/function.c.orig2 Sat Feb 9 00:53:17 2019 > +++ gcc/function.c Mon Feb 11 09:37:28 2019 > @@ -2912,7 +2912,10 @@ assign_parm_setup_block (struct assign_p > size_stored = CEIL_ROUND (size, UNITS_PER_WORD); > if (stack_parm == 0) > { > - SET_DECL_ALIGN (parm, MAX (DECL_ALIGN (parm), BITS_PER_WORD)); > + HOST_WIDE_INT min_parm_align > + = MIN (BITS_PER_WORD, PREFERRED_STACK_BOUNDARY); > + > + SET_DECL_ALIGN (parm, MAX (DECL_ALIGN (parm), min_parm_align)); > if (DECL_ALIGN (parm) > MAX_SUPPORTED_STACK_ALIGNMENT) > { > rtx allocsize = gen_int_mode (size_stored, Pmode); Jakub