*** empty log message ***
authorTorbjorn Granlund <tege@gnu.org>
Thu, 7 May 1992 20:51:59 +0000 (20:51 +0000)
committerTorbjorn Granlund <tege@gnu.org>
Thu, 7 May 1992 20:51:59 +0000 (20:51 +0000)
From-SVN: r934

gcc/config/m68k/m68k.md

index 4a901dddd374927813945ed60a983c02f556bd3d..017f47eb1a5e6a1ffe629bbb03b2f9b8a3fa9d77 100644 (file)
 
 (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")))]
   ""
   "*
 {
 
 (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")))]
   ""
   "*
 {
 
 (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")))]
   ""
   "*
 {
 (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")))]
   ""
   "*
 {
   [(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")
 
        (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"))))]
   ""
   "*
 {
        (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"))))]
   ""
   "*
 {
           (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
         (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
   "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)
           (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
         (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
   "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" "")