diff options
author | H.J. Lu <hjl@gnu.org> | 2002-11-11 03:13:18 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2002-11-10 19:13:18 -0800 |
commit | 2da4124d3d36aaaae81378d635968cd55730e3e4 (patch) | |
tree | 20b78684f6d774c1f111d5b35e9943fe4f554647 | |
parent | 063158718039d41f2c87404d43176cea29d5355d (diff) | |
download | gcc-2da4124d3d36aaaae81378d635968cd55730e3e4.zip gcc-2da4124d3d36aaaae81378d635968cd55730e3e4.tar.gz gcc-2da4124d3d36aaaae81378d635968cd55730e3e4.tar.bz2 |
calls.c (PUSH_ARGS_REVERSED): Define only if not defined.
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.
From-SVN: r59002
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/calls.c | 2 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 4 | ||||
-rw-r--r-- | gcc/expr.c | 2 |
4 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37e04c6..308e817 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 abe3012..f2f9c57 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 325195a..8e33176 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 @@ -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 |