(floatsidf2_loadaddr): Correct syntax for cau instruction.

(load_multiple, store_multiple): Call change_address
instead of creating MEM from scratch.

From-SVN: r13674
This commit is contained in:
Jim Wilson 1997-02-23 14:17:29 -08:00
parent 2ba25f504d
commit 538bb15864
1 changed files with 7 additions and 4 deletions

View File

@ -3671,7 +3671,7 @@
xop[0] = operands[0];
xop[1] = (frame_pointer_needed) ? frame_pointer_rtx : stack_pointer_rtx;
xop[2] = GEN_INT ((rs6000_fpmem_offset >> 16) + ((rs6000_fpmem_offset & 0x8000) >> 15));
output_asm_insn (\"{cau %0,%2(%1)|addis %0,%1,%2}\", xop);
output_asm_insn (\"{cau|addis} %0,%1,%2\", xop);
}
else if (rs6000_fpmem_offset < 0)
abort ();
@ -6291,7 +6291,8 @@
for (i = 0; i < count; i++)
XVECEXP (operands[3], 0, i)
= gen_rtx (SET, VOIDmode, gen_rtx (REG, SImode, regno + i),
gen_rtx (MEM, SImode, plus_constant (from, i * 4)));
change_address (operands[1], SImode,
plus_constant (from, i * 4)));
}")
(define_insn ""
@ -6384,14 +6385,16 @@
to = force_reg (SImode, XEXP (operands[0], 0));
XVECEXP (operands[3], 0, 0)
= gen_rtx (SET, VOIDmode, gen_rtx (MEM, SImode, to), operands[1]);
= gen_rtx (SET, VOIDmode, change_address (operands[0], SImode, to),
operands[1]);
XVECEXP (operands[3], 0, 1) = gen_rtx (CLOBBER, VOIDmode,
gen_rtx (SCRATCH, SImode));
for (i = 1; i < count; i++)
XVECEXP (operands[3], 0, i + 1)
= gen_rtx (SET, VOIDmode,
gen_rtx (MEM, SImode, plus_constant (to, i * 4)),
change_address (operands[0], SImode,
plus_constant (to, i * 4)),
gen_rtx (REG, SImode, regno + i));
}")