diff options
author | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-07 13:37:57 +0000 |
---|---|---|
committer | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-07 13:37:57 +0000 |
commit | ab1cffe87f4cb2fb3d8f7818c414e6af560406fb (patch) | |
tree | 27d8cd19379c5056ad82773989f7dc733d5d0ff6 /gcc/function.c | |
parent | 27be8969a5993493a05cee0560474afca1bab06b (diff) | |
download | gcc-ab1cffe87f4cb2fb3d8f7818c414e6af560406fb.tar.gz |
* function.c (assign_parms): Correct reversed reg_parm_stack_space
test. Add partial in-regs size to stack_args_size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66560 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 5 |
1 files changed, 4 insertions, 1 deletions
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); } |