diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-14 21:08:15 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-14 21:08:15 +0000 |
commit | 87bd3b5a456b91ec552576ae32d4d47836d0da22 (patch) | |
tree | 506df69be5be1bc0449c75a509bb0a7a977153e2 /gcc | |
parent | 0fa4c2115cbe76716697bbfa796aa38cbe93ff00 (diff) | |
download | gcc-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/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 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. */ |