aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
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);