From: Richard Kenner Date: Wed, 28 Jun 1995 15:31:07 +0000 (-0400) Subject: ({load,store}_multiple): Don't use indirect_operand in define_insn; X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4c99e795dd7133876f72471f26a488b09291f9ac;p=gcc.git ({load,store}_multiple): Don't use indirect_operand in define_insn; use explicit MEM of register_operand instead. From-SVN: r10066 --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index b9a8f707f98..549c55d7a55 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -4627,7 +4627,7 @@ (define_insn "" [(match_parallel 0 "load_multiple_operation" [(set (match_operand:SI 1 "gpc_reg_operand" "=r") - (match_operand:SI 2 "indirect_operand" "Q"))])] + (mem:SI (match_operand:SI 2 "register_operand" "b")))])] "TARGET_STRING" "* { @@ -4640,14 +4640,14 @@ char newload[40]; int i; - strcpy (result, \"{lsi|lswi} %1,%P2,%N0\"); + strcpy (result, \"{lsi|lswi} %1,%2,%N0\"); for (i = 0; i < XVECLEN (operands[0], 0); i++) if (refers_to_regno_p (REGNO (operands[1]) + i, REGNO (operands[1]) + i + 1, operands[2], 0)) { sprintf (newload, \"\;{l|lwz} %d,%d(%d)\", REGNO (operands[1]) + i, - i * 4, REGNO (XEXP (operands[2], 0))); + i * 4, REGNO (operands[2])); strcat (result, newload); } @@ -4709,11 +4709,11 @@ (define_insn "" [(match_parallel 0 "store_multiple_operation" - [(set (match_operand:SI 1 "indirect_operand" "=Q") + [(set (mem:SI (match_operand:SI 1 "register_operand" "b")) (match_operand:SI 2 "gpc_reg_operand" "r")) (clobber (match_scratch:SI 3 "X"))])] "TARGET_STRING && !TARGET_POWER" - "{stsi|stswi} %2,%P1,%O0") + "{stsi|stswi} %2,%1,%O0") ;; String/block move insn.