aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2003-01-09 00:53:29 +0000
committerDale Johannesen <dalej@gcc.gnu.org>2003-01-09 00:53:29 +0000
commitde62b72ce74de2f505af7c4918ba26ff470658a2 (patch)
treeefb59c67247b4cedb4349b26a2952948549d354a /gcc
parentcdc497ddf971302b88b21d815fbff63db1347b9e (diff)
downloadgcc-de62b72ce74de2f505af7c4918ba26ff470658a2.zip
gcc-de62b72ce74de2f505af7c4918ba26ff470658a2.tar.gz
gcc-de62b72ce74de2f505af7c4918ba26ff470658a2.tar.bz2
function.c (assign_parms): Don't set pretend_args_size if REG_PARM_STACK_SPACE.
2003-01-08 Dale Johannesen <dalej@apple.com> * 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c5
-rw-r--r--gcc/function.c6
3 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 12b6c83..7e787a3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-01-08 Dale Johannesen <dalej@apple.com>
+
+ * 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 <neroden@gcc.gnu.org>
* gcc.hlp: Delete.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 292a0b8..420085c 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 62f7a70..0a0f56d 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)