authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Nov 1998 21:14:46 +0000 (21:14 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Nov 1998 21:14:46 +0000 (21:14 +0000)
        * loop.c (check_dbra_loop): Avoid using gen_add2_insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23745 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop.c

index 837d4ef..7253ffa 100644 (file)
@@ -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.
index bce59ad..7eafea0 100644 (file)
@@ -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.  */