(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"
"*
{
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);
}
(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")
\f
;; String/block move insn.