OSDN Git Service

* conflict.c (conflict_graph_compute): Don't look for REG_INC.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Jun 2000 21:08:15 +0000 (21:08 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Jun 2000 21:08:15 +0000 (21:08 +0000)
        * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
        auto-inc code.

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

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/conflict.c

index d639f36..56ce1e5 100644 (file)
@@ -1,5 +1,10 @@
 2000-06-14  Richard Henderson  <rth@cygnus.com>
 
+       * conflict.c (conflict_graph_compute): Don't look for REG_INC.
+
+       * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
+       auto-inc code.
+
        * print-rtl.c (print_rtx): Emit space before mem alias set.
 
 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
index 88aa7d2..dca06cd 100644 (file)
@@ -1188,19 +1188,17 @@ ia64_setup_incoming_varargs (cum, int_mode, type, pretend_size, second_time)
        {
          int i;
          int first_reg = GR_ARG_FIRST + cum.words + offset;
-         rtx tmp_reg = gen_rtx_REG (DImode, GR_REG (16));
-         rtx tmp_post_inc = gen_rtx_POST_INC (DImode, tmp_reg);
-         rtx mem = gen_rtx_MEM (DImode, tmp_post_inc);
-         rtx insn;
+         rtx reg1 = gen_reg_rtx (Pmode);
+         rtx mem1 = gen_rtx_MEM (DImode, reg1);
 
          /* We must emit st8.spill insns instead of st8 because we might
-            be saving non-argument registers, and non-argument registers might
-            not contain valid values.  */
-         emit_move_insn (tmp_reg, virtual_incoming_args_rtx);
+            be saving non-argument registers, and non-argument registers
+            might not contain valid values.  */
+         emit_move_insn (reg1, virtual_incoming_args_rtx);
          for (i = first_reg; i < GR_ARG_FIRST + 8; i++)
            {
-             insn = emit_insn (gen_gr_spill (mem, gen_rtx_REG (DImode, i)));
-             REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, tmp_reg, 0);
+             emit_insn (gen_gr_spill (mem1, gen_rtx_REG (DImode, i)));
+             emit_insn (gen_adddi3 (reg1, reg1, GEN_INT (8)));
            }
        }
       *pretend_size = ((MAX_ARGUMENT_SLOTS - cum.words - offset)
index f8e8609..d467ba1 100644 (file)
@@ -483,12 +483,7 @@ conflict_graph_compute (regs, p)
                 we're in SSA form, if a reg is set here it isn't set
                 anywhere elso, so this insn is where the reg is born.  */
              CLEAR_REG_SET (born);
-             note_stores (PATTERN (insn), mark_reg, (void *) born);
-#ifdef AUTO_INC_DEC
-             for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
-               if (REG_NOTE_KIND (link) == REG_INC)
-                 mark_reg (XEXP (link, 0), NULL_RTX, NULL);
-#endif
+             note_stores (PATTERN (insn), mark_reg, born);
              AND_REG_SET (born, regs);
          
              /* Regs born here were not live before this insn.  */