diff options
author | Richard Earnshaw <rearnsha@arm.com> | 1999-10-20 12:45:22 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 1999-10-20 12:45:22 +0000 |
commit | 506f9fbf4218d6a4a4481e7637c13bb0086fee9e (patch) | |
tree | fc257d470fb6abc041bc739fb324ad6a62ece267 /gcc/flow.c | |
parent | ee7b8369c2babb18188722d55fc2d5476ceca115 (diff) | |
download | gcc-506f9fbf4218d6a4a4481e7637c13bb0086fee9e.zip gcc-506f9fbf4218d6a4a4481e7637c13bb0086fee9e.tar.gz gcc-506f9fbf4218d6a4a4481e7637c13bb0086fee9e.tar.bz2 |
(split_edge): Handle casesi insns.
From-SVN: r30101
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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 { |