In <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>:
...a change introduced in r94104 where BITS_PER_WORD was chosenperhaps because we expect register-sized writes into this area.

See <https://gcc.gnu.org/ml/gcc-patches/2005-01/msg01564.html>
for the r94104 change.

	* function.c (assign_parm_setup_block): Raise alignment of
	stacked parameter only for STRICT_ALIGNMENT targets.

From-SVN: r271497
This commit is contained in:
Hans-Peter Nilsson 2019-05-22 00:30:42 +00:00 committed by Hans-Peter Nilsson
parent 0fd67989f9
commit 325437b2a3
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2019-05-22 Hans-Peter Nilsson <hp@axis.com>
* function.c (assign_parm_setup_block): Raise alignment of
stacked parameter only for STRICT_ALIGNMENT targets.
2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/constraints.md (define_register_constraint "wz"):

View File

@ -2912,7 +2912,11 @@ assign_parm_setup_block (struct assign_parm_data_all *all,
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 parm_align
= (STRICT_ALIGNMENT
? MAX (DECL_ALIGN (parm), BITS_PER_WORD) : DECL_ALIGN (parm));
SET_DECL_ALIGN (parm, parm_align);
if (DECL_ALIGN (parm) > MAX_SUPPORTED_STACK_ALIGNMENT)
{
rtx allocsize = gen_int_mode (size_stored, Pmode);