summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/cse.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/cse.c')
-rw-r--r--contrib/gcc/cse.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/gcc/cse.c b/contrib/gcc/cse.c
index 1ace412..9566865 100644
--- a/contrib/gcc/cse.c
+++ b/contrib/gcc/cse.c
@@ -6844,7 +6844,15 @@ cse_set_around_loop (x, insn, loop_start)
abort ();
}
else
- emit_insn_after (move, p);
+ {
+ if (control_flow_insn_p (p))
+ /* p can cause a control flow transfer so it
+ is the last insn of a basic block. We can't
+ therefore use emit_insn_after. */
+ emit_insn_before (move, next_nonnote_insn (p));
+ else
+ emit_insn_after (move, p);
+ }
}
break;
}
OpenPOWER on IntegriCloud