From: Alan Modra Date: Wed, 7 May 2003 13:37:57 +0000 (+0000) Subject: function.c (assign_parms): Correct reversed reg_parm_stack_space test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ffea5d1e438e9f07d1a003c026a68513b1664f16;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ccb3fc1375c..09c1efa8b21 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-05-07 Alan Modra + + * 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 * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations diff --git a/gcc/function.c b/gcc/function.c index 232771e695b..f9c0e42fa4d 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4644,7 +4644,7 @@ assign_parms (fndecl) /* When REG_PARM_STACK_SPACE is nonzero, stack space for split parameters was allocated by our caller, so we won't be pushing it in the prolog. */ - if (reg_parm_stack_space) + if (reg_parm_stack_space == 0) #endif current_function_pretend_args_size = (((partial * UNITS_PER_WORD) + (PARM_BOUNDARY / BITS_PER_UNIT) - 1) @@ -4694,6 +4694,9 @@ assign_parms (fndecl) ) { 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) ADD_PARM_SIZE (stack_args_size, locate.size.var); }