rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.

* config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
        (rs6000_split_multireg_move): Use replace_equiv_address instead of
        gen_rtx_MEM.

From-SVN: r103760
This commit is contained in:
David Edelsohn 2005-09-02 01:52:37 +00:00 committed by David Edelsohn
parent bef7d862e2
commit 13e2e16e7b
2 changed files with 13 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2005-09-01 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
(rs6000_split_multireg_move): Use replace_equiv_address instead of
gen_rtx_MEM.
2005-09-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
* c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls,

View file

@ -5459,7 +5459,8 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
mem = gen_rtx_MEM (BLKmode,
plus_constant (save_area,
first_reg_offset * reg_size)),
first_reg_offset * reg_size));
MEM_NOTRAP_P (mem) = 1;
set_mem_alias_set (mem, set);
set_mem_align (mem, BITS_PER_WORD);
@ -5494,6 +5495,7 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
fregno++, off += UNITS_PER_FP_WORD, nregs++)
{
mem = gen_rtx_MEM (DFmode, plus_constant (save_area, off));
MEM_NOTRAP_P (mem) = 1;
set_mem_alias_set (mem, set);
set_mem_align (mem, GET_MODE_ALIGNMENT (DFmode));
emit_move_insn (mem, gen_rtx_REG (DFmode, fregno));
@ -12249,16 +12251,14 @@ rs6000_split_multireg_move (rtx dst, rtx src)
emit_insn (TARGET_32BIT
? gen_addsi3 (breg, breg, delta_rtx)
: gen_adddi3 (breg, breg, delta_rtx));
src = gen_rtx_MEM (mode, breg);
src = replace_equiv_address (src, breg);
}
else if (! offsettable_memref_p (src))
{
rtx newsrc, basereg;
rtx basereg;
basereg = gen_rtx_REG (Pmode, reg);
emit_insn (gen_rtx_SET (VOIDmode, basereg, XEXP (src, 0)));
newsrc = gen_rtx_MEM (GET_MODE (src), basereg);
MEM_COPY_ATTRIBUTES (newsrc, src);
src = newsrc;
src = replace_equiv_address (src, basereg);
}
breg = XEXP (src, 0);
@ -12303,7 +12303,7 @@ rs6000_split_multireg_move (rtx dst, rtx src)
emit_insn (TARGET_32BIT
? gen_addsi3 (breg, breg, delta_rtx)
: gen_adddi3 (breg, breg, delta_rtx));
dst = gen_rtx_MEM (mode, breg);
dst = replace_equiv_address (dst, breg);
}
else
gcc_assert (offsettable_memref_p (dst));