;;- Machine description for the Motorola 88000 for GNU C compiler
-;; Copyright (C) 1988, 89, 90, 91, 93, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 92, 93, 94, 1995 Free Software Foundation, Inc.
;; Contributed by Michael Tiemann (tiemann@mcc.com)
;; Additional changes by Michael Meissner (meissner@osf.org)
;; Version 2 port by Tom Wood (twood@pets.sps.mot.com)
(define_expand "m88k_rcs_id"
[(match_operand:SI 0 "" "")]
""
- "{ static char rcs_id[] = \"$What: <@(#) m88k.md,v 1.5> $\";
+ "{ static char rcs_id[] = \"$What: <@(#) m88k.md,v 1.1.1.2.2.2> $\";
FAIL; }")
\f
;; Attribute describing the processor. This attribute must match exactly
"mul %0,%1,%2"
[(set_attr "type" "imul")])
-(define_insn "umulsidi3"
- [(set (match_operand:DI 0 "register_operand" "=r")
- (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")])
+;; Loses for acvs/P60504.c (mod case) on 88110
+;; (define_insn "umulsidi3"
+;; [(set (match_operand:DI 0 "register_operand" "=r")
+;; (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")])
;; patterns for mixed mode floating point
;; Do not define patterns that utilize mixed mode arithmetic that result
emit_jump_insn (gen_casesi_enter (label, index_diff, operands[3]));
else
/* Load the table entry and jump to it. */
- emit_jump_insn (gen_casesi_jump (gen_reg_rtx (SImode), base, index_diff));
+ emit_jump_insn (gen_casesi_jump (gen_reg_rtx (SImode), base, index_diff, operands[3]));
/* Claim that flow drops into the table so it will be adjacent by not
emitting a barrier. */
(mem:SI (plus:SI (match_operand:SI 1 "" "")
(mult:SI (match_operand:SI 2 "" "")
(const_int 4)))))
- (set (pc) (match_dup 0))]
+ (parallel [(set (pc) (match_dup 0))
+ (use (label_ref (match_operand 3 "" "")))])]
""
"")
+(define_insn ""
+ [(set (pc) (match_operand:SI 0 "register_operand" "r"))
+ (use (label_ref (match_operand 1 "" "")))]
+ ""
+ "jmp%. %0"
+ [(set_attr "type" "jump")])
+
;; The bsr.n instruction is directed to the END of the table. See
;; ASM_OUTPUT_CASE_END.