aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-04-25 15:24:30 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-04-25 15:24:30 -0400
commita19176508acf829433966a74b6ad49e4fc6f4eb6 (patch)
tree046f356546cb1b6c9e42c78ca678e97429446bff /gcc
parentc388525f7aa3c3d914e5323d5c71ecef69305849 (diff)
downloadgcc-a19176508acf829433966a74b6ad49e4fc6f4eb6.zip
gcc-a19176508acf829433966a74b6ad49e4fc6f4eb6.tar.gz
gcc-a19176508acf829433966a74b6ad49e4fc6f4eb6.tar.bz2
(expand_call): In inlining case, if BEFORE_CALLS is zero, start
looking at first insn (one more place). From-SVN: r11888
Diffstat (limited to 'gcc')
-rw-r--r--gcc/calls.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index f968da5..7f18a8f 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -739,8 +739,9 @@ expand_call (exp, target, ignore)
if (stack_arg_under_construction || i >= 0)
{
- rtx insn = before_call ? NEXT_INSN (before_call) : get_insns ();
- rtx seq;
+ rtx first_insn
+ = before_call ? NEXT_INSN (before_call) : get_insns ();
+ rtx insn, seq;
/* Look for a call in the inline function code.
If OUTGOING_ARGS_SIZE (DECL_SAVED_INSNS (fndecl)) is
@@ -748,7 +749,7 @@ expand_call (exp, target, ignore)
to scan the insns. */
if (OUTGOING_ARGS_SIZE (DECL_SAVED_INSNS (fndecl)) == 0)
- for (; insn; insn = NEXT_INSN (insn))
+ for (insn = first_insn; insn; insn = NEXT_INSN (insn))
if (GET_CODE (insn) == CALL_INSN)
break;
@@ -780,7 +781,7 @@ expand_call (exp, target, ignore)
NULL_RTX, BITS_PER_UNIT);
seq = get_insns ();
end_sequence ();
- emit_insns_before (seq, NEXT_INSN (before_call));
+ emit_insns_before (seq, first_insn);
emit_stack_restore (SAVE_BLOCK, old_stack_level, NULL_RTX);
}
}