------- 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