aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-03-08 14:40:47 +0000
committerJeff Law <law@gcc.gnu.org>1999-03-08 07:40:47 -0700
commit86879c21acddbfa729e6172052ab7b79165d27b4 (patch)
tree4a85a1ccf1069a5a93c14cc839e9649fa45ba474 /gcc
parent30ca27b4751fd68cb31758d01f309b13144b1cc2 (diff)
downloadgcc-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')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/flow.c13
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c68252e..77d23c1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,8 +1,15 @@
+Mon Mar 8 15:27:42 1999 Jeffrey A Law (law@cygnus.com)
+
+ * 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.
+
Mon Mar 8 18:47:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* regmove.c (copy_src_to_dest): New argument max_old_uid.
Mon Mar 8 08:23:00 1999 Bruce Korb <korb@datadesign.com>
+
* ChangeLog: merged entries from fixincl-branch
Sun Mar 7 11:48:56 1999 Richard Henderson <rth@cygnus.com>
diff --git a/gcc/flow.c b/gcc/flow.c
index 5b72509..3b4ef6e 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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);
}
}