summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-11 03:13:18 +0000
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-11 03:13:18 +0000
commit2a8e54a453f975f632559722816fff3a8fdb3ccf (patch)
tree20b78684f6d774c1f111d5b35e9943fe4f554647 /gcc
parentb8f526f74843bb700645dbcaabde89f74dedeb81 (diff)
downloadgcc-2a8e54a453f975f632559722816fff3a8fdb3ccf.tar.gz
2002-11-10 H.J. Lu <hjl@gnu.org>
* calls.c (PUSH_ARGS_REVERSED): Define only if not defined. * expr.c (PUSH_ARGS_REVERSED): Likewise. * config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59002 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/calls.c2
-rw-r--r--gcc/config/i386/i386.h4
-rw-r--r--gcc/expr.c2
4 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 37e04c6a607..308e81747f8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-11-10 H.J. Lu <hjl@gnu.org>
+
+ * calls.c (PUSH_ARGS_REVERSED): Define only if not defined.
+ * expr.c (PUSH_ARGS_REVERSED): Likewise.
+
+ * config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1.
+
2002-11-10 Zack Weinberg <zack@codesourcery.com>
* config/rs6000/sysv4.h: Define NO_IMPLICIT_EXTERN_C here...
diff --git a/gcc/calls.c b/gcc/calls.c
index abe3012a789..f2f9c570bf2 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -48,9 +48,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifdef PUSH_ROUNDING
+#ifndef PUSH_ARGS_REVERSED
#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD)
#define PUSH_ARGS_REVERSED PUSH_ARGS
#endif
+#endif
#endif
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 325195a9e65..8e331765847 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -1574,6 +1574,10 @@ enum reg_class
#define PUSH_ARGS (TARGET_PUSH_ARGS && !ACCUMULATE_OUTGOING_ARGS)
+/* We want the stack and args grow in opposite directions, even if
+ PUSH_ARGS is 0. */
+#define PUSH_ARGS_REVERSED 1
+
/* Offset of first parameter from the argument pointer register value. */
#define FIRST_PARM_OFFSET(FNDECL) 0
diff --git a/gcc/expr.c b/gcc/expr.c
index e4d97772cc8..a185311fcad 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -54,9 +54,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifdef PUSH_ROUNDING
+#ifndef PUSH_ARGS_REVERSED
#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD)
#define PUSH_ARGS_REVERSED /* If it's last to first. */
#endif
+#endif
#endif