aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc/cse.c
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2003-11-07 02:43:04 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2003-11-07 02:43:04 +0000
commitea875f6efe3bb8adfb0cd5c46481e92462efd788 (patch)
tree980c917e2cc50183c4d566d9a0f9a1c818e6a6cd /contrib/gcc/cse.c
parent006ca56045367264ed55b8bf2cb0594565911208 (diff)
Gcc 3.3.3 20031106.
Notes
Notes: svn path=/vendor/gcc/dist/; revision=122180
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 1ace41221234..9566865debef 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;
}