diff options
author | Richard Henderson <rth@cygnus.com> | 2000-06-14 14:08:15 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-06-14 14:08:15 -0700 |
commit | d98a8d38dd84a3ffff7bf7366ca5972997245129 (patch) | |
tree | 506df69be5be1bc0449c75a509bb0a7a977153e2 /gcc | |
parent | f6a0cc964a749ad25542911497f66a8b9b27a4ac (diff) | |
download | gcc-d98a8d38dd84a3ffff7bf7366ca5972997245129.zip gcc-d98a8d38dd84a3ffff7bf7366ca5972997245129.tar.gz gcc-d98a8d38dd84a3ffff7bf7366ca5972997245129.tar.bz2 |
conflict.c (conflict_graph_compute): Don't look for REG_INC.
* 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.
From-SVN: r34557
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 16 | ||||
-rw-r--r-- | gcc/conflict.c | 7 |
3 files changed, 13 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d639f36..56ce1e5 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 88aa7d2..dca06cd 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 f8e8609..d467ba1 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. */ |