cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
authorRichard Sandiford <richard@codesourcery.com>
Tue, 30 Jan 2007 15:07:34 +0000 (15:07 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 30 Jan 2007 15:07:34 +0000 (15:07 +0000)
gcc/
* cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.

From-SVN: r121339

gcc/ChangeLog
gcc/cfgrtl.c

index cc300099d60c81b27eedb05dc3d90471ac0c90dd..fa3cf11d4ca1c25777a9149695ae820eafbbe499 100644 (file)
@@ -1,3 +1,7 @@
+2007-01-30  Richard Sandiford  <richard@codesourcery.com>
+
+       * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
+
 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
 
        * builtins.c (expand_builtin_int_interclass_roundingfn): New function
index 4aaedbe472435cdc28a83bc940d32ae97557fe1f..44246210e60ab363fb6b4dbe6a042dc9569c92a3 100644 (file)
@@ -728,7 +728,8 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
      the cc0 setter too.  */
   kill_from = insn;
 #ifdef HAVE_cc0
-  if (reg_mentioned_p (cc0_rtx, PATTERN (insn)))
+  if (reg_mentioned_p (cc0_rtx, PATTERN (insn))
+      && only_sets_cc0_p (PREV_INSN (insn)))
     kill_from = PREV_INSN (insn);
 #endif