From: Alexandre Oliva Date: Wed, 7 Feb 2001 17:39:47 +0000 (+0000) Subject: lcm.c (optimize_mode_switching): Emit mode_set before the JUMP_INSN of an abnormal... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=09d84e04ef40c67fae280df651cfdec81096a4c6;p=gcc.git lcm.c (optimize_mode_switching): Emit mode_set before the JUMP_INSN of an abnormal edge. * lcm.c (optimize_mode_switching): Emit mode_set before the JUMP_INSN of an abnormal edge. From-SVN: r39518 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a5aaf89ac15..bbfc2fe9b30 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-02-07 Alexandre Oliva + + * lcm.c (optimize_mode_switching): Emit mode_set before the + JUMP_INSN of an abnormal edge. + 2001-02-07 Bernd Schmidt * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as diff --git a/gcc/lcm.c b/gcc/lcm.c index ff442749605..d092c7a7089 100644 --- a/gcc/lcm.c +++ b/gcc/lcm.c @@ -1227,7 +1227,10 @@ optimize_mode_switching (file) previous block. */ if (eg->flags & EDGE_ABNORMAL) { - src_bb->end = emit_insn_after (mode_set, src_bb->end); + if (GET_CODE (src_bb->end) == JUMP_INSN) + emit_insn_before (mode_set, src_bb->end); + else + src_bb->end = emit_insn_after (mode_set, src_bb->end); bb_info[j][src_bb->index].computing = mode; RESET_BIT (transp[src_bb->index], j); }