> 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? 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); brgds, H-P