From: H.J. Lu Date: Thu, 7 Nov 2002 17:46:18 +0000 (+0000) Subject: Fix bootstrap/8146 and gcc.c-torture/execute/20020307-2.c with -march=i686. X-Git-Tag: releases/gcc-3.2.1~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7fa10316c4d48a65d4505f59310f616d9ddf51ad;p=thirdparty%2Fgcc.git Fix bootstrap/8146 and gcc.c-torture/execute/20020307-2.c with -march=i686. 2002-11-07 H.J. Lu Fix bootstrap/8146 and gcc.c-torture/execute/20020307-2.c with -march=i686. * 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: r58898 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d32a4c004b61..447403410998 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2002-11-07 H.J. Lu + + Fix bootstrap/8146 and + gcc.c-torture/execute/20020307-2.c with -march=i686. + + * 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-04 Aldy Hernandez Fix c/8252. diff --git a/gcc/calls.c b/gcc/calls.c index 9a9dc24a3530..df39596ed100 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -46,9 +46,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 b32b09041c70..db6970e1fbae 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1588,6 +1588,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 diff --git a/gcc/expr.c b/gcc/expr.c index 25d1fad1a3f1..94a28e9922be 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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