function.c (assign_parms): Correct reversed reg_parm_stack_space test.

* function.c (assign_parms): Correct reversed reg_parm_stack_space
	test.  Add partial in-regs size to stack_args_size.

From-SVN: r66560
This commit is contained in:
Alan Modra 2003-05-07 13:37:57 +00:00 committed by Alan Modra
parent cd96b185c5
commit ffea5d1e43
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2003-05-07 Alan Modra <amodra@bigpond.net.au>
* function.c (assign_parms): Correct reversed reg_parm_stack_space
test. Add partial in-regs size to stack_args_size.
2003-05-07 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2003-05-07 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* doc/invoke.texi (Warning Options): Mark -Wmissing-declarations * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations

View File

@ -4644,7 +4644,7 @@ assign_parms (fndecl)
/* When REG_PARM_STACK_SPACE is nonzero, stack space for /* When REG_PARM_STACK_SPACE is nonzero, stack space for
split parameters was allocated by our caller, so we split parameters was allocated by our caller, so we
won't be pushing it in the prolog. */ won't be pushing it in the prolog. */
if (reg_parm_stack_space) if (reg_parm_stack_space == 0)
#endif #endif
current_function_pretend_args_size current_function_pretend_args_size
= (((partial * UNITS_PER_WORD) + (PARM_BOUNDARY / BITS_PER_UNIT) - 1) = (((partial * UNITS_PER_WORD) + (PARM_BOUNDARY / BITS_PER_UNIT) - 1)
@ -4694,6 +4694,9 @@ assign_parms (fndecl)
) )
{ {
stack_args_size.constant += locate.size.constant; stack_args_size.constant += locate.size.constant;
/* locate.size doesn't include the part in regs. */
if (partial)
stack_args_size.constant += current_function_pretend_args_size;
if (locate.size.var) if (locate.size.var)
ADD_PARM_SIZE (stack_args_size, locate.size.var); ADD_PARM_SIZE (stack_args_size, locate.size.var);
} }