expr.c (push_block): Handle targets where the stack grows to higher addresses...
authorHerman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
Tue, 13 Oct 1998 10:08:10 +0000 (12:08 +0200)
committerJeff Law <law@gcc.gnu.org>
Tue, 13 Oct 1998 10:08:10 +0000 (04:08 -0600)
        * 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

gcc/ChangeLog
gcc/expr.c

index 6a1b45b157ab66efdef7fde6da5a9269314aa05c..fb4f9b35def20edb0c6ec23c24914283706bfa84 100644 (file)
@@ -1,3 +1,9 @@
+1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+       
+       * 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.
+
 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
 
         * config/v850/v850.c (print_operand):  Extend meaning
index 53dce8fdb0e8c4a381dec4c0f8542985ca8549c7..5e7a2310229a306dced4399bae4dd50cb9c16023 100644 (file)
@@ -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);