aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-03-14 02:08:37 +0000
committerRichard Stallman <rms@gnu.org>1993-03-14 02:08:37 +0000
commitb1e64e0d7f3f67d2f800d65faaaf36e06979b4d1 (patch)
tree825789039c09957859f48a74903e8df890574896 /gcc
parent91a60f374f56e4dad751afb34904d66a4333e695 (diff)
downloadgcc-b1e64e0d7f3f67d2f800d65faaaf36e06979b4d1.zip
gcc-b1e64e0d7f3f67d2f800d65faaaf36e06979b4d1.tar.gz
gcc-b1e64e0d7f3f67d2f800d65faaaf36e06979b4d1.tar.bz2
(emit_call_1): Restore inhibit_defer_pop before popping args
so that pops really do get deferred if appropriate. From-SVN: r3730
Diffstat (limited to 'gcc')
-rw-r--r--gcc/calls.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 0942c49..0b4e745 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -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