2002-08-17 H.J. Lu * calls.c (PUSH_ARGS_REVERSED): Define only if not defined. * expr.c (PUSH_ARGS_REVERSED): Likewise. 2002-07-26 H.J. Lu * config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1. --- gcc/calls.c.var Thu Apr 4 15:28:47 2002 +++ gcc/calls.c Sat Aug 17 22:45:46 2002 @@ -46,9 +46,11 @@ Software Foundation, 59 Temple Place - S #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 --- gcc/config/i386/i386.h.var Sun Jul 14 23:54:36 2002 +++ gcc/config/i386/i386.h Sat Aug 17 19:03:21 2002 @@ -1581,6 +1581,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 --- gcc/expr.c.var Mon May 6 22:43:11 2002 +++ gcc/expr.c Sat Aug 17 22:52:27 2002 @@ -54,9 +54,11 @@ Software Foundation, 59 Temple Place - S #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