diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-03-08 14:40:47 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-03-08 07:40:47 -0700 |
commit | 86879c21acddbfa729e6172052ab7b79165d27b4 (patch) | |
tree | 4a85a1ccf1069a5a93c14cc839e9649fa45ba474 /gcc/flow.c | |
parent | 30ca27b4751fd68cb31758d01f309b13144b1cc2 (diff) | |
download | gcc-86879c21acddbfa729e6172052ab7b79165d27b4.zip gcc-86879c21acddbfa729e6172052ab7b79165d27b4.tar.gz gcc-86879c21acddbfa729e6172052ab7b79165d27b4.tar.bz2 |
flow.c (merge_blocks_nomove): For HAVE_cc0 targets...
�
* flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
to also delete the cc0 setter when deleting a conditional branch
to the next block.
From-SVN: r25642
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -1821,7 +1821,20 @@ merge_blocks_nomove (a, b) else { rtx tmp = a->end; + a->end = prev_nonnote_insn (tmp); + +#ifdef HAVE_cc0 + /* If this was a conditional jump, we need to also delete + the insn that set cc0. */ + if (! simplejump_p (tmp) && condjump_p (tmp)) + { + PUT_CODE (PREV_INSN (tmp), NOTE); + NOTE_LINE_NUMBER (PREV_INSN (tmp)) = NOTE_INSN_DELETED; + NOTE_SOURCE_FILE (PREV_INSN (tmp)) = 0; + } +#endif + flow_delete_insn (tmp); } } |