loop.c (check_dbra_loop): Avoid using gen_add2_insn.
authorJeffrey A Law <law@cygnus.com>
Sat, 21 Nov 1998 21:14:46 +0000 (21:14 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 21 Nov 1998 21:14:46 +0000 (14:14 -0700)

        * loop.c (check_dbra_loop): Avoid using gen_add2_insn.

From-SVN: r23745

gcc/ChangeLog
gcc/loop.c

index 837d4ef8f7897cab652fc5607c82ec6b6e1fb9b9..7253ffad9ce0fa9afdb0965bf964590100a9dd2d 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 bce59ad318b26b99e1de247fe31cd36274528f90..7eafea08df114e49f776e4b8d3c274e5bc149f55 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.  */