OSDN Git Service

(floatsidf2_loadaddr): Correct syntax for cau instruction.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Feb 1997 22:17:29 +0000 (22:17 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Feb 1997 22:17:29 +0000 (22:17 +0000)
(load_multiple, store_multiple): Call change_address
instead of creating MEM from scratch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13674 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/rs6000/rs6000.md

index a5cae5e..a85ee89 100644 (file)
       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 ();
   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 ""
   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));
 }")