From de62b72ce74de2f505af7c4918ba26ff470658a2 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Thu, 9 Jan 2003 00:53:29 +0000 Subject: [PATCH] function.c (assign_parms): Don't set pretend_args_size if REG_PARM_STACK_SPACE. 2003-01-08 Dale Johannesen * function.c (assign_parms): Don't set pretend_args_size if REG_PARM_STACK_SPACE. config/rs6000/rs6000.c (setup_incoming_varargs): Don't set pretend_args_size. From-SVN: r61063 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.c | 5 +---- gcc/function.c | 6 ++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12b6c83bcf6..7e787a384db 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-01-08 Dale Johannesen + + * function.c (assign_parms): Don't set pretend_args_size if + REG_PARM_STACK_SPACE. + config/rs6000/rs6000.c (setup_incoming_varargs): Don't set + pretend_args_size. + 2003-01-08 Nathanael Nerode * gcc.hlp: Delete. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 292a0b8b73c..420085c896f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3325,7 +3325,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl) CUMULATIVE_ARGS *cum; enum machine_mode mode; tree type; - int *pretend_size; + int *pretend_size ATTRIBUTE_UNUSED; int no_rtl; { @@ -3380,9 +3380,6 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl) (GP_ARG_MIN_REG + first_reg_offset, mem, GP_ARG_NUM_REG - first_reg_offset, (GP_ARG_NUM_REG - first_reg_offset) * UNITS_PER_WORD); - - /* ??? Does ABI_V4 need this at all? */ - *pretend_size = (GP_ARG_NUM_REG - first_reg_offset) * UNITS_PER_WORD; } /* Save FP registers if needed. */ diff --git a/gcc/function.c b/gcc/function.c index 62f7a70fcc1..0a0f56d2375 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4477,6 +4477,12 @@ assign_parms (fndecl) if (nregs > 0) { +#if defined (REG_PARM_STACK_SPACE) && !defined (MAYBE_REG_PARM_STACK_SPACE) + /* 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 (fndecl) == 0) +#endif current_function_pretend_args_size = (((nregs * UNITS_PER_WORD) + (PARM_BOUNDARY / BITS_PER_UNIT) - 1) / (PARM_BOUNDARY / BITS_PER_UNIT) -- 2.30.2