(emit_call_1): Restore inhibit_defer_pop before popping args
authorRichard Stallman <rms@gnu.org>
Sun, 14 Mar 1993 02:08:37 +0000 (02:08 +0000)
committerRichard Stallman <rms@gnu.org>
Sun, 14 Mar 1993 02:08:37 +0000 (02:08 +0000)
so that pops really do get deferred if appropriate.

From-SVN: r3730

gcc/calls.c

index 0942c4996f61231a19d058ed47d4de87e81ef0ba..0b4e745c5130af1d64036b0774b9f08098e82c78 100644 (file)
@@ -375,6 +375,10 @@ emit_call_1 (funexp, funtype, stack_size, struct_value_size, next_arg_reg,
   if (is_const)
     CONST_CALL_P (call_insn) = 1;
 
+  /* Restore this now, so that we do defer pops for this call's args
+     if the context of the call as a whole permits.  */
+  inhibit_defer_pop = old_inhibit_defer_pop;
+
 #ifndef ACCUMULATE_OUTGOING_ARGS
   /* If returning from the subroutine does not automatically pop the args,
      we need an instruction to pop them sooner or later.
@@ -399,8 +403,6 @@ emit_call_1 (funexp, funtype, stack_size, struct_value_size, next_arg_reg,
        adjust_stack (stack_size_rtx);
     }
 #endif
-
-  inhibit_defer_pop = old_inhibit_defer_pop;
 }
 
 /* Generate all the code for a function call