PR target/65987
* config/sh/sh.c (output_far_jump, split_branches): Take into account
sectiion crossing jumps.
From-SVN: r222783
+2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/65987
+ * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
+ (split_branches): Likewise.
+
2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
* common.opt (fdelete-null-pointer-checks): Init to -1.
if (TARGET_SH2
&& offset >= -32764
- && offset - get_attr_length (insn) <= 32766)
+ && offset - get_attr_length (insn) <= 32766
+ && ! CROSSING_JUMP_P (insn))
{
far = 0;
jump = "mov.w %O0,%1" "\n"
if (type == TYPE_JUMP)
{
+ if (CROSSING_JUMP_P (insn))
+ {
+ emit_insn_before (gen_block_branch_redirect (const0_rtx),
+ insn);
+ continue;
+ }
+
far_label = as_a <rtx_insn *> (
XEXP (SET_SRC (PATTERN (insn)), 0));
dest_uid = get_dest_uid (far_label, max_uid);