------- Comment #2 from kkojima at gcc dot gnu dot org  2008-02-14 11:09 -------
Sure. 
I'll add the following comment for that.

@@ -1105,9 +1105,14 @@ update_equiv_regs (void)
          if (! INSN_P (insn))
            continue;

-         /* Don't substitute into a non-local goto, this confuses CFG.  */
+         /* Don't substitute into a non-local goto, this confuses CFG.
+            Since bb-reorder uses indirect jumps for crossing branches
+            when the architecture doesn't have unconditional branches
+            that can span all of memory, don't touch a jump associated
+            with a REG_CROSSING_JUMP note.  */
          if (JUMP_P (insn)
-             && find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX))
+             && (find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX)
+                 || find_reg_note (insn, REG_CROSSING_JUMP, NULL_RTX)))
            continue;

          for (link = REG_NOTES (insn); link; link = XEXP (link, 1))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35190

Reply via email to