aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-06-15 20:35:05 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-06-15 20:35:05 -0400
commitf63184aca66eaab4eee2369604f70dfc15caa516 (patch)
tree1ea26324166c0984872a3ef3cb8e8067ce76fdc9 /gcc
parent0725d62132a544a72b6d8c1f9809b25e39ed00eb (diff)
downloadgcc-f63184aca66eaab4eee2369604f70dfc15caa516.zip
gcc-f63184aca66eaab4eee2369604f70dfc15caa516.tar.gz
gcc-f63184aca66eaab4eee2369604f70dfc15caa516.tar.bz2
(maxsf3, minsf3, maxdf3, mindf3): Fix predicate of define_split.
(muldi3): Fix predicate. (movdf matcher): Allow update and indexed for lfd instruction. From-SVN: r7497
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.md13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 2576c34..3bff980 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -1210,6 +1210,7 @@
FAIL;
else
operands[2] = force_reg (SImode, operands[2]);
+
if (! TARGET_POWER && ! TARGET_POWERPC)
{
emit_move_insn (gen_rtx (REG, SImode, 3), operands[1]);
@@ -2750,7 +2751,7 @@
(define_split
[(set (match_operand:SF 0 "gpc_reg_operand" "")
(smax:SF (match_operand:SF 1 "gpc_reg_operand" "")
- (match_operand:SF 2 "reg_or_short_operand" "")))
+ (match_operand:SF 2 "gpc_reg_operand" "")))
(clobber (match_operand:SF 3 "gpc_reg_operand" ""))]
"TARGET_PPC_GFXOPT"
[(set (match_dup 3)
@@ -2778,7 +2779,7 @@
(define_split
[(set (match_operand:SF 0 "gpc_reg_operand" "")
(smin:SF (match_operand:SF 1 "gpc_reg_operand" "")
- (match_operand:SF 2 "reg_or_short_operand" "")))
+ (match_operand:SF 2 "gpc_reg_operand" "")))
(clobber (match_operand:SF 3 "gpc_reg_operand" ""))]
"TARGET_PPC_GFXOPT"
[(set (match_dup 3)
@@ -2917,7 +2918,7 @@
(define_split
[(set (match_operand:DF 0 "gpc_reg_operand" "")
(smax:DF (match_operand:DF 1 "gpc_reg_operand" "")
- (match_operand:DF 2 "reg_or_short_operand" "")))
+ (match_operand:DF 2 "gpc_reg_operand" "")))
(clobber (match_operand:DF 3 "gpc_reg_operand" ""))]
"TARGET_PPC_GFXOPT"
[(set (match_dup 3)
@@ -2945,7 +2946,7 @@
(define_split
[(set (match_operand:DF 0 "gpc_reg_operand" "")
(smin:DF (match_operand:DF 1 "gpc_reg_operand" "")
- (match_operand:DF 2 "reg_or_short_operand" "")))
+ (match_operand:DF 2 "gpc_reg_operand" "")))
(clobber (match_operand:DF 3 "gpc_reg_operand" ""))]
"TARGET_PPC_GFXOPT"
[(set (match_dup 3)
@@ -3422,7 +3423,7 @@
(define_insn "muldi3"
[(set (match_operand:DI 0 "gpc_reg_operand" "=r")
(mult:DI (match_operand:DI 1 "gpc_reg_operand" "%r")
- (match_operand:DI 2 "reg_or_short_operand" "r")))]
+ (match_operand:DI 2 "gpc_reg_operand" "r")))]
"TARGET_POWERPC64"
"mulld %0,%1,%2"
[(set_attr "type" "imul")])
@@ -3944,7 +3945,7 @@
sd%U0%X0 %1,%0
#
fmr %0,%1
- lfd %0,%1
+ lfd%U1%X1 %0,%1
stfd%U0%X0 %1,%0"
[(set_attr "type" "*,load,*,*,fp,fpload,*")])