aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-11-21 21:14:46 +0000
committerJeff Law <law@gcc.gnu.org>1998-11-21 14:14:46 -0700
commit225a7e3dabcc242145202f0a76d01a765a1a658e (patch)
tree04819a97011edff2b3ff3e0502e3586dcc40a5dc
parent02d0eb47e39924ffa9e0ae08ca95857ead9cac7b (diff)
downloadgcc-225a7e3dabcc242145202f0a76d01a765a1a658e.zip
gcc-225a7e3dabcc242145202f0a76d01a765a1a658e.tar.gz
gcc-225a7e3dabcc242145202f0a76d01a765a1a658e.tar.bz2
loop.c (check_dbra_loop): Avoid using gen_add2_insn.
� * loop.c (check_dbra_loop): Avoid using gen_add2_insn. From-SVN: r23745
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/loop.c12
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 837d4ef..7253ffa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com)
+
+ * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
+
Sat Nov 21 02:18:38 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* loop.c (move_movables): Start of libcall might be new loop start.
diff --git a/gcc/loop.c b/gcc/loop.c
index bce59ad..7eafea0 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -7061,10 +7061,14 @@ check_dbra_loop (loop_end, insn_count, loop_start)
better to have a testcase first. */
return 0;
- /* Add insn to decrement register, and delete insn
- that incremented the register. */
- p = emit_insn_before (gen_add2_insn (reg, new_add_val),
- bl->biv->insn);
+ /* We may not have a single insn which can increment a reg, so
+ create a sequence to hold all the insns from expand_inc. */
+ start_sequence ();
+ expand_inc (reg, new_add_val);
+ tem = gen_sequence ();
+ end_sequence ();
+
+ p = emit_insn_before (tem, bl->biv->insn);
delete_insn (bl->biv->insn);
/* Update biv info to reflect its new status. */