From: Richard Henderson Date: Wed, 29 Nov 2000 00:27:54 +0000 (-0800) Subject: calls.c (expand_call): Defer const/pure NO_DEFER_POP until after sibcall do_pending_s... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=54fef245c04e79351cf5aad5608a4bc2a5d5bf25;p=gcc.git calls.c (expand_call): Defer const/pure NO_DEFER_POP until after sibcall do_pending_stack_adjust. * calls.c (expand_call): Defer const/pure NO_DEFER_POP until after sibcall do_pending_stack_adjust. From-SVN: r37836 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e606be48007..0fc0b844a11 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-28 Richard Henderson + + * calls.c (expand_call): Defer const/pure NO_DEFER_POP until + after sibcall do_pending_stack_adjust. + Wed Nov 29 00:08:23 2000 J"orn Rennecke * jump.c (delete_insn): Check that REG_LABEL note actually contains diff --git a/gcc/calls.c b/gcc/calls.c index ad79078f883..45210c26cf9 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2657,11 +2657,6 @@ expand_call (exp, target, ignore) expand_start_target_temps (); } - /* When calling a const function, we must pop the stack args right away, - so that the pop is deleted or moved with the call. */ - if (flags & (ECF_CONST | ECF_PURE)) - NO_DEFER_POP; - /* Don't let pending stack adjusts add up to too much. Also, do all pending adjustments now if there is any chance this might be a call to alloca or if we are expanding a sibling @@ -2671,6 +2666,11 @@ expand_call (exp, target, ignore) || pass == 0) do_pending_stack_adjust (); + /* When calling a const function, we must pop the stack args right away, + so that the pop is deleted or moved with the call. */ + if (flags & (ECF_CONST | ECF_PURE)) + NO_DEFER_POP; + /* Push the temporary stack slot level so that we can free any temporaries we make. */ push_temp_slots ();