From: Jason Merrill Date: Mon, 30 Jun 2003 13:16:26 +0000 (-0400) Subject: defaults.h (PUSH_ARGS_REVERSED): Define default here. X-Git-Tag: releases/gcc-3.4.0~5323 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d6bef95268396905cc9fc00b5d3ced127999b7b;p=thirdparty%2Fgcc.git defaults.h (PUSH_ARGS_REVERSED): Define default here. * defaults.h (PUSH_ARGS_REVERSED): Define default here. * calls.c: Not here. From-SVN: r68701 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f2777f911f1..9b559e5fb9f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-30 Jason Merrill + + * defaults.h (PUSH_ARGS_REVERSED): Define default here. + * calls.c: Not here. + 2003-06-30 Ben Elliston * config/arm/arm.c (arm_rtx_costs): Remove #if 0 block. diff --git a/gcc/calls.c b/gcc/calls.c index f220a6d7817e..c15cb5532f31 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 eb3e78cae134..20dc172faa43 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 1f52fcbd89d6..cbc40ffc460b 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.