aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-07-19 11:16:53 -0600
committerJeff Law <law@gcc.gnu.org>1993-07-19 11:16:53 -0600
commit733fa7ef0a546a980f6bcc02065ed8a467edec18 (patch)
tree45ea2d219c4e536160a59d24b6bb93a6a688ac0f /gcc
parent1c2a9b35f73a69b56d1903cc39c0e3f25a33363c (diff)
downloadgcc-733fa7ef0a546a980f6bcc02065ed8a467edec18.zip
gcc-733fa7ef0a546a980f6bcc02065ed8a467edec18.tar.gz
gcc-733fa7ef0a546a980f6bcc02065ed8a467edec18.tar.bz2
reorg.c (fill_simple_delay_slots): Try filling any insn needing delay slots with a JUMP_INSN.
* reorg.c (fill_simple_delay_slots): Try filling any insn needing delay slots with a JUMP_INSN. From-SVN: r4940
Diffstat (limited to 'gcc')
-rw-r--r--gcc/reorg.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 5b89943..37307d9 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -2635,13 +2635,16 @@ fill_simple_delay_slots (first, non_jumps_p)
the unconditional jump. This is done first to avoid having the
delay slot of the call filled in the backward scan. Also, since
the unconditional jump is likely to also have a delay slot, that
- insn must exist when it is subsequently scanned. */
+ insn must exist when it is subsequently scanned.
+
+ This is tried on each insn with delay slots as some machines
+ have insns which perform calls, but are not represented as
+ CALL_INSNs. */
slots_filled = 0;
delay_list = 0;
- if (GET_CODE (insn) == CALL_INSN
- && (trial = next_active_insn (insn))
+ if ((trial = next_active_insn (insn))
&& GET_CODE (trial) == JUMP_INSN
&& simplejump_p (trial)
&& eligible_for_delay (insn, slots_filled, trial, flags)