(split_edge): Handle casesi insns.

From-SVN: r30101
This commit is contained in:
Richard Earnshaw 1999-10-20 12:45:22 +00:00 committed by Richard Earnshaw
parent ee7b8369c2
commit 506f9fbf42
2 changed files with 14 additions and 0 deletions

View File

@ -4,6 +4,7 @@ Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com)
* flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
block records so that merge_blocks_nomove will clean up correctly.
(split_edge): Handle casesi insns.
Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com)

View File

@ -1484,6 +1484,19 @@ split_edge (edge_in)
--LABEL_NUSES (old_label);
++LABEL_NUSES (new_label);
}
/* Handle casesi dispatch insns */
if ((tmp = single_set (insn)) != NULL
&& SET_DEST (tmp) == pc_rtx
&& GET_CODE (SET_SRC (tmp)) == IF_THEN_ELSE
&& GET_CODE (XEXP (SET_SRC (tmp), 2)) == LABEL_REF
&& XEXP (XEXP (SET_SRC (tmp), 2), 0) == old_label)
{
XEXP (SET_SRC (tmp), 2) = gen_rtx_LABEL_REF (VOIDmode,
new_label);
--LABEL_NUSES (old_label);
++LABEL_NUSES (new_label);
}
}
else
{