aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2003-12-18 12:15:37 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2003-12-18 12:15:37 +0000
commitcebf212fa5edc019a992981e7aab39517ac93c3f (patch)
tree51fe0f4dc22a81daf31e9a158bd8f6610af9ecd0 /gcc/loop.c
parent51287c1498c0fad7f7a794e4b170d229ecfce295 (diff)
downloadgcc-cebf212fa5edc019a992981e7aab39517ac93c3f.zip
gcc-cebf212fa5edc019a992981e7aab39517ac93c3f.tar.gz
gcc-cebf212fa5edc019a992981e7aab39517ac93c3f.tar.bz2
loop.c (move_movables): Handle combination of m->consec...
ChangeLog: * loop.c (move_movables): Handle combination of m->consec, m->move_insn_first, and m->insert_temp all nonzero correctly. testsuite/ChangeLog: * gcc.dg/20031216-1.c: New test. From-SVN: r74778
Diffstat (limited to 'gcc/loop.c')
-rw-r--r--gcc/loop.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 93bb328..d532975 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -2113,7 +2113,8 @@ move_movables (struct loop *loop, struct loop_movables *movables,
/* The SET_SRC might not be invariant, so we must
use the REG_EQUAL note. */
start_sequence ();
- emit_move_insn (m->set_dest, m->set_src);
+ emit_move_insn (m->insert_temp ? newreg : m->set_dest,
+ m->set_src);
seq = get_insns ();
end_sequence ();