flow.c (merge_blocks_nomove): For HAVE_cc0 targets...
authorJeffrey A Law <law@cygnus.com>
Mon, 8 Mar 1999 14:40:47 +0000 (14:40 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 8 Mar 1999 14:40:47 +0000 (07:40 -0700)

        * 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

gcc/ChangeLog
gcc/flow.c

index c68252e..77d23c1 100644 (file)
@@ -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>
index 5b72509..3b4ef6e 100644 (file)
@@ -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);
        }
     }