aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/calls.c20
-rw-r--r--gcc/defaults.h20
-rw-r--r--gcc/doc/tm.texi7
4 files changed, 32 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1f2777f..9b559e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-30 Jason Merrill <jason@redhat.com>
+
+ * defaults.h (PUSH_ARGS_REVERSED): Define default here.
+ * calls.c: Not here.
+
2003-06-30 Ben Elliston <bje@wasabisystems.com>
* config/arm/arm.c (arm_rtx_costs): Remove #if 0 block.
diff --git a/gcc/calls.c b/gcc/calls.c
index f220a6d..c15cb55 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -40,26 +40,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "cgraph.h"
#include "except.h"
-/* Decide whether a function's arguments should be processed
- from first to last or from last to first.
-
- They should if the stack and args grow in opposite directions, but
- only if we have push insns. */
-
-#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
-
-#ifndef PUSH_ARGS_REVERSED
-#define PUSH_ARGS_REVERSED 0
-#endif
-
#ifndef STACK_POINTER_OFFSET
#define STACK_POINTER_OFFSET 0
#endif
diff --git a/gcc/defaults.h b/gcc/defaults.h
index eb3e78c..20dc172 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -411,6 +411,26 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \
#endif
#endif
+/* Decide whether a function's arguments should be processed
+ from first to last or from last to first.
+
+ They should if the stack and args grow in opposite directions, but
+ only if we have push insns. */
+
+#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
+
+#ifndef PUSH_ARGS_REVERSED
+#define PUSH_ARGS_REVERSED 0
+#endif
+
/* If PREFERRED_STACK_BOUNDARY is not defined, set it to STACK_BOUNDARY.
STACK_BOUNDARY is required. */
#ifndef PREFERRED_STACK_BOUNDARY
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 1f52fcb..cbc40ff 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -3374,6 +3374,13 @@ allocate the entire argument block and then store the arguments into
it. When @code{PUSH_ARGS} is nonzero, @code{PUSH_ROUNDING} must be defined too.
@end defmac
+@defmac PUSH_ARGS_REVERSED
+A C expression. If nonzero, function arguments will be evaluated from
+last to first, rather than from first to last. If this macro is not
+defined, it defaults to @code{PUSH_ARGS} on targets where the stack
+and args grow in opposite directions, and 0 otherwise.
+@end defmac
+
@defmac PUSH_ROUNDING (@var{npushed})
A C expression that is the number of bytes actually pushed onto the
stack when an instruction attempts to push @var{npushed} bytes.