(define_expand "m88k_sccs_id"
[(match_operand:SI 0 "" "")]
""
- "{ static char sccs_id[] = \"@(#)m88k.md 2.1.3.1 07 Apr 1992 17:25:37\";
+ "{ static char sccs_id[] = \"@(#)m88k.md 2.1.4.2 15 Apr 1992 15:39:48\";
FAIL; }")
\f
;; Attribute specifications
(const_string "arith"))
; Convenience attributes.
+(define_attr "unit" "bit,memory,multiply,divide,fpadd,other"
+ (cond [(eq_attr "type" "bit,mbit") (const_string "bit")
+ (eq_attr "type" "load,store,mstore") (const_string "memory")
+ (eq_attr "type" "spmul,dpmul,imul") (const_string "multiply")
+ (eq_attr "type" "spdiv,dpdiv,idiv") (const_string "divide")
+ (eq_attr "type" "spadd,dpadd,spcmp,dpcmp,mfp") (const_string "fpadd")]
+ (const_string "other")))
+
(define_attr "fpu" "yes,no"
(if_then_else
(eq_attr "type" "spmul,dpmul,imul,spadd,dpadd,spcmp,dpcmp,spdiv,dpdiv,idiv,mfp")
"mul %0,%1,%2"
[(set_attr "type" "imul")])
-;; @@ This isn't fully implemented yet.
-
-(define_insn ""
+(define_insn "umulsidi3"
[(set (match_operand:DI 0 "register_operand" "=r")
- (mult:DI (match_operand:SI 1 "arith32_operand" "%r")
- (match_operand:SI 2 "arith32_operand" "rI")))]
+ (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%r"))
+ (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))]
"TARGET_88110"
"mulu.d %0,%1,%2"
[(set_attr "type" "imul")])