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

Reply via email to