OSDN Git Service

(emit_call_1): Restore inhibit_defer_pop before popping args
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 14 Mar 1993 02:08:37 +0000 (02:08 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 14 Mar 1993 02:08:37 +0000 (02:08 +0000)
so that pops really do get deferred if appropriate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3730 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/calls.c

index 0942c49..0b4e745 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