aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorHerman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>1998-10-13 12:08:10 +0200
committerJeff Law <law@gcc.gnu.org>1998-10-13 04:08:10 -0600
commite1a9b2ab4f420024a4fc4735828be238fcbc40e0 (patch)
tree4133dfe293460622a1b0060e8dae7efc24cd4bbe /gcc/expr.c
parentce43588feb5a9fb952d8986d00704e5b81f2bd89 (diff)
downloadgcc-e1a9b2ab4f420024a4fc4735828be238fcbc40e0.zip
gcc-e1a9b2ab4f420024a4fc4735828be238fcbc40e0.tar.gz
gcc-e1a9b2ab4f420024a4fc4735828be238fcbc40e0.tar.bz2
expr.c (push_block): Handle targets where the stack grows to higher addresses...
* expr.c (push_block): Handle targets where the stack grows to higher addresses, but args grow to lower addresses and ACCUMULATE_OUTGOING_ARGS is not defined. From-SVN: r23046
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 53dce8f..5e7a231 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2700,7 +2700,13 @@ push_block (size, extra, below)
anti_adjust_stack (temp);
}
-#ifdef STACK_GROWS_DOWNWARD
+#if defined (STACK_GROWS_DOWNWARD) \
+ || (defined (ARGS_GROW_DOWNWARD) \
+ && !defined (ACCUMULATE_OUTGOING_ARGS))
+
+ /* Return the lowest stack address when STACK or ARGS grow downward and
+ we are not aaccumulating outgoing arguments (the c4x port uses such
+ conventions). */
temp = virtual_outgoing_args_rtx;
if (extra != 0 && below)
temp = plus_constant (temp, extra);