summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-06-14 21:08:15 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-06-14 21:08:15 +0000
commit87bd3b5a456b91ec552576ae32d4d47836d0da22 (patch)
tree506df69be5be1bc0449c75a509bb0a7a977153e2 /gcc
parent0fa4c2115cbe76716697bbfa796aa38cbe93ff00 (diff)
downloadgcc-87bd3b5a456b91ec552576ae32d4d47836d0da22.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34557 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/ia64/ia64.c16
-rw-r--r--gcc/conflict.c7
3 files changed, 13 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d639f361804..56ce1e5f64d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 88aa7d23d2c..dca06cd1c3e 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -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)
diff --git a/gcc/conflict.c b/gcc/conflict.c
index f8e86093058..d467ba1b87a 100644
--- a/gcc/conflict.c
+++ b/gcc/conflict.c
@@ -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. */