+Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
+
+ * flow.c (split_edge): If we have to insert a new jump, make
+ sure to associate it with a basic block.
+
+ * flow.c (commit_one_edge_insertion): A block with one successor
+ can end in a JUMP_INSN that is not a simplejump.
+
2000-01-12 Robert Lipe <robertl@sco.com>
* i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
pos = emit_jump_insn_after (gen_jump (old_succ->head),
jump_block->end);
jump_block->end = pos;
+ set_block_for_insn (pos, jump_block);
emit_barrier_after (pos);
/* ... let jump know that label is in use, ... */
&& e->src != ENTRY_BLOCK_PTR)
{
bb = e->src;
+ /* It is possible to have a non-simple jump here. Consider a target
+ where some forms of unconditional jumps clobber a register. This
+ happens on the fr30 for example.
+
+ We know this block has a single successor, so we can just emit
+ the queued insns before the jump. */
if (GET_CODE (bb->end) == JUMP_INSN)
{
- /* ??? Is it possible to wind up with non-simple jumps? Perhaps
- a jump with delay slots already filled? */
- if (! simplejump_p (bb->end))
- abort ();
-
before = bb->end;
}
else