aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gnu.org>1992-05-07 20:51:59 +0000
committerTorbjorn Granlund <tege@gnu.org>1992-05-07 20:51:59 +0000
commit58ff42b3521597a81f72d8db166b683b56e61870 (patch)
tree2f6328062f4a6183c3e2cb984b6dd6205e231eaa /gcc
parentb31a5831c29c0d8e8f5afbf7e0f2e0d1a93a838b (diff)
downloadgcc-58ff42b3521597a81f72d8db166b683b56e61870.zip
gcc-58ff42b3521597a81f72d8db166b683b56e61870.tar.gz
gcc-58ff42b3521597a81f72d8db166b683b56e61870.tar.bz2
*** empty log message ***
From-SVN: r934
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.md54
1 files changed, 43 insertions, 11 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 4a901dd..017f47e 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -1270,7 +1270,7 @@
(define_insn ""
[(set (match_operand:SI 0 "general_operand" "=do<>,d<")
- (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "rn,m")))]
+ (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "r,m")))]
""
"*
{
@@ -1299,7 +1299,7 @@
(define_insn ""
[(set (match_operand:HI 0 "general_operand" "=do<>,d")
- (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "dn,m")))]
+ (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
""
"*
{
@@ -1339,7 +1339,7 @@
(define_insn ""
[(set (match_operand:SI 0 "general_operand" "=do<>,d")
- (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "dn,m")))]
+ (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
""
"*
{
@@ -1393,7 +1393,7 @@
(define_insn "extendhisi2"
[(set (match_operand:SI 0 "general_operand" "=*d,a")
(sign_extend:SI
- (match_operand:HI 1 "nonimmediate_operand" "0,rmn")))]
+ (match_operand:HI 1 "nonimmediate_operand" "0,rm")))]
""
"*
{
@@ -2171,7 +2171,7 @@
[(set (match_operand:SI 0 "general_operand" "=a")
(minus:SI (match_operand:SI 1 "general_operand" "0")
(sign_extend:SI
- (match_operand:HI 2 "nonimmediate_operand" "rmn"))))]
+ (match_operand:HI 2 "nonimmediate_operand" "rm"))))]
""
"sub%.w %2,%0")
@@ -2294,7 +2294,7 @@
(mult:SI (sign_extend:SI
(match_operand:HI 1 "nonimmediate_operand" "%0"))
(sign_extend:SI
- (match_operand:HI 2 "nonimmediate_operand" "dmn"))))]
+ (match_operand:HI 2 "nonimmediate_operand" "dm"))))]
""
"*
{
@@ -2332,7 +2332,7 @@
(mult:SI (zero_extend:SI
(match_operand:HI 1 "nonimmediate_operand" "%0"))
(zero_extend:SI
- (match_operand:HI 2 "nonimmediate_operand" "dmn"))))]
+ (match_operand:HI 2 "nonimmediate_operand" "dm"))))]
""
"*
{
@@ -2368,7 +2368,7 @@
(mult:DI (zero_extend:DI
(match_operand:SI 1 "register_operand" ""))
(zero_extend:DI
- (match_operand:SI 2 "general_operand" ""))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" ""))) 1))
(set (subreg:SI (match_dup 0) 0)
(subreg:SI
(mult:DI (zero_extend:DI
@@ -2384,7 +2384,7 @@
(mult:DI (zero_extend:DI
(match_operand:SI 1 "register_operand" "%0"))
(zero_extend:DI
- (match_operand:SI 2 "general_operand" "dmsK"))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" "dm"))) 1))
(set (match_operand:SI 3 "register_operand" "=d")
(subreg:SI
(mult:DI (zero_extend:DI
@@ -2394,6 +2394,22 @@
"TARGET_68020"
"mulu%.l %2,%3:%0")
+(define_insn ""
+ [(set (match_operand:SI 0 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (zero_extend:DI
+ (match_operand:SI 1 "register_operand" "%0"))
+ (match_operand:SI 2 "immediate_operand" "sK")) 1))
+ (set (match_operand:SI 3 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (zero_extend:DI
+ (match_dup 1))
+ (match_dup 2)) 0))]
+ "TARGET_68020
+ && (GET_CODE (operands[2]) != CONST_INT
+ || CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'K'))"
+ "mulu%.l %2,%3:%0")
+
(define_expand "mulsidi3"
[(parallel
[(set (subreg:SI (match_operand:DI 0 "register_operand" "") 1)
@@ -2401,7 +2417,7 @@
(mult:DI (sign_extend:DI
(match_operand:SI 1 "register_operand" ""))
(sign_extend:DI
- (match_operand:SI 2 "general_operand" ""))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" ""))) 1))
(set (subreg:SI (match_dup 0) 0)
(subreg:SI
(mult:DI (sign_extend:DI
@@ -2417,7 +2433,7 @@
(mult:DI (sign_extend:DI
(match_operand:SI 1 "register_operand" "%0"))
(sign_extend:DI
- (match_operand:SI 2 "general_operand" "dmKs"))) 1))
+ (match_operand:SI 2 "nonimmediate_operand" "dm"))) 1))
(set (match_operand:SI 3 "register_operand" "=d")
(subreg:SI
(mult:DI (sign_extend:DI
@@ -2427,6 +2443,22 @@
"TARGET_68020"
"muls%.l %2,%3:%0")
+(define_insn ""
+ [(set (match_operand:SI 0 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (sign_extend:DI
+ (match_operand:SI 1 "register_operand" "%0"))
+ (match_operand:SI 2 "immediate_operand" "sK")) 1))
+ (set (match_operand:SI 3 "register_operand" "=d")
+ (subreg:SI
+ (mult:DI (sign_extend:DI
+ (match_dup 1))
+ (match_dup 2)) 0))]
+ "TARGET_68020
+ && (GET_CODE (operands[2]) != CONST_INT
+ || CONST_OK_FOR_LETTER_P (INTVAL (operands[2]), 'K'))"
+ "muls%.l %2,%3:%0")
+
(define_expand "muldf3"
[(set (match_operand:DF 0 "general_operand" "")
(mult:DF (match_operand:DF 1 "general_operand" "")