diff options
| author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-30 13:16:26 +0000 |
|---|---|---|
| committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-30 13:16:26 +0000 |
| commit | 8c69f6fb6e2f2fae371280e2d1d2e4bb8e1ad241 (patch) | |
| tree | 3775fee47e7deef7f819597bbd152626ecbaf88e | |
| parent | 5f0add68724cb46842f8fa68cc9e5a478e84fcea (diff) | |
| download | ppe42-gcc-8c69f6fb6e2f2fae371280e2d1d2e4bb8e1ad241.tar.gz ppe42-gcc-8c69f6fb6e2f2fae371280e2d1d2e4bb8e1ad241.zip | |
* defaults.h (PUSH_ARGS_REVERSED): Define default here.
* calls.c: Not here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68701 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/calls.c | 20 | ||||
| -rw-r--r-- | gcc/defaults.h | 20 | ||||
| -rw-r--r-- | gcc/doc/tm.texi | 7 |
4 files changed, 32 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f2777f911f..9b559e5fb9f 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 f220a6d7817..c15cb5532f3 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 eb3e78cae13..20dc172faa4 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 1f52fcbd89d..cbc40ffc460 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. |

