aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-06-28 11:31:07 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-06-28 11:31:07 -0400
commit4c99e795dd7133876f72471f26a488b09291f9ac (patch)
treef8a2558eec163ee64baacb359a271fa4cfeb8203
parent2dfd595d54c67a32874655b81ccba1c63947e31a (diff)
downloadgcc-4c99e795dd7133876f72471f26a488b09291f9ac.zip
gcc-4c99e795dd7133876f72471f26a488b09291f9ac.tar.gz
gcc-4c99e795dd7133876f72471f26a488b09291f9ac.tar.bz2
({load,store}_multiple): Don't use indirect_operand in define_insn;
use explicit MEM of register_operand instead. From-SVN: r10066
-rw-r--r--gcc/config/rs6000/rs6000.md10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index b9a8f70..549c55d 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.