calls.c (emit_call_1): Pass rounded_stack_size to emit_call instead of the unrounded...
authorRichard Henderson <rth@cygnus.com>
Thu, 29 Apr 1999 12:54:19 +0000 (05:54 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 29 Apr 1999 12:54:19 +0000 (05:54 -0700)
        * calls.c (emit_call_1): Pass rounded_stack_size to emit_call
        instead of the unrounded size.

From-SVN: r26694

gcc/ChangeLog
gcc/calls.c

index 2c9c9424a6d7abde38a90511f2c43ee69da05dd5..ba0194a69874948bf7df711b73dba0b7f2bec782 100644 (file)
@@ -1,3 +1,8 @@
+Thu Apr 29 12:53:33 1999  Richard Henderson  <rth@cygnus.com>
+
+       * calls.c (emit_call_1): Pass rounded_stack_size to emit_call
+       instead of the unrounded size.
+
 1999-04-28 14:40 Bruce Korb <ddsinc09@ix.netcom.com>
 
        * fixinc/mkfixinc.sh: Makesure the result shell script is writable
index 466c7785c6e0673d8927c9a37c383f43bd4d94a3..03bac91251bf73d0d632566bc0f2cdecadae559b 100644 (file)
@@ -389,7 +389,7 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
      rtx call_fusage;
      int is_const;
 {
-  rtx stack_size_rtx = GEN_INT (stack_size);
+  rtx rounded_stack_size_rtx = GEN_INT (rounded_stack_size);
   rtx struct_value_size_rtx = GEN_INT (struct_value_size);
   rtx call_insn;
 #ifndef ACCUMULATE_OUTGOING_ARGS
@@ -416,10 +416,10 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
       if (valreg)
        pat = gen_call_value_pop (valreg,
                                  gen_rtx_MEM (FUNCTION_MODE, funexp),
-                                 stack_size_rtx, next_arg_reg, n_pop);
+                                 rounded_stack_size_rtx, next_arg_reg, n_pop);
       else
        pat = gen_call_pop (gen_rtx_MEM (FUNCTION_MODE, funexp),
-                           stack_size_rtx, next_arg_reg, n_pop);
+                           rounded_stack_size_rtx, next_arg_reg, n_pop);
 
       emit_call_insn (pat);
       already_popped = 1;
@@ -434,11 +434,11 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
       if (valreg)
        emit_call_insn (gen_call_value (valreg,
                                        gen_rtx_MEM (FUNCTION_MODE, funexp),
-                                       stack_size_rtx, next_arg_reg,
+                                       rounded_stack_size_rtx, next_arg_reg,
                                        NULL_RTX));
       else
        emit_call_insn (gen_call (gen_rtx_MEM (FUNCTION_MODE, funexp),
-                                 stack_size_rtx, next_arg_reg,
+                                 rounded_stack_size_rtx, next_arg_reg,
                                  struct_value_size_rtx));
     }
   else
@@ -492,8 +492,8 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
          = gen_rtx_EXPR_LIST (VOIDmode,
                               gen_rtx_CLOBBER (VOIDmode, stack_pointer_rtx),
                               CALL_INSN_FUNCTION_USAGE (call_insn));
-      stack_size -= n_popped;
       rounded_stack_size -= n_popped;
+      rounded_stack_size_rtx = GEN_INT (rounded_stack_size);
     }
 
   if (rounded_stack_size != 0)
@@ -501,7 +501,7 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
       if (flag_defer_pop && inhibit_defer_pop == 0 && !is_const)
        pending_stack_adjust += rounded_stack_size;
       else
-       adjust_stack (GEN_INT (rounded_stack_size));
+       adjust_stack (rounded_stack_size_rtx);
     }
 #endif
 }