diff options
author | Jeff Law <law@gcc.gnu.org> | 1995-04-04 15:16:40 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1995-04-04 15:16:40 -0600 |
commit | 6f7775d58fe744124cdffb55cd5a5195e43b5d6a (patch) | |
tree | da02dea3c1b5dc2fb88cf7d54e345a183fef2e73 /gcc | |
parent | b19b4a787d30cce8e4b12e7e521ea642e680fa9d (diff) | |
download | gcc-6f7775d58fe744124cdffb55cd5a5195e43b5d6a.zip gcc-6f7775d58fe744124cdffb55cd5a5195e43b5d6a.tar.gz gcc-6f7775d58fe744124cdffb55cd5a5195e43b5d6a.tar.bz2 |
reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN a the target of another JUMP_INSN to fill a delay slot.
* reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN
a the target of another JUMP_INSN to fill a delay slot.
From-SVN: r9312
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reorg.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index 4c36d33..f4667ca 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -3103,7 +3103,9 @@ fill_simple_delay_slots (first, non_jumps_p) /* If there are slots left to fill and our search was stopped by an unconditional branch, try the insn at the branch target. We can - redirect the branch if it works. */ + redirect the branch if it works. + + Don't do this if the insn at the branch target is a branch. */ if (slots_to_fill != slots_filled && trial && GET_CODE (trial) == JUMP_INSN @@ -3112,6 +3114,7 @@ fill_simple_delay_slots (first, non_jumps_p) && (next_trial = next_active_insn (JUMP_LABEL (trial))) != 0 && ! (GET_CODE (next_trial) == INSN && GET_CODE (PATTERN (next_trial)) == SEQUENCE) + && GET_CODE (next_trial) != JUMP_INSN && ! insn_references_resource_p (next_trial, &set, 1) && ! insn_sets_resource_p (next_trial, &set, 1) && ! insn_sets_resource_p (next_trial, &needed, 1) |