Commit 50dc89b5 by Stan Cox

(umulsidi3) Doesn't work for 88110 with mod/div changes

,.

From-SVN: r9538
parent 1dd4b7a8
;;- Machine description for the Motorola 88000 for GNU C compiler ;;- 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) ;; Contributed by Michael Tiemann (tiemann@mcc.com)
;; Additional changes by Michael Meissner (meissner@osf.org) ;; Additional changes by Michael Meissner (meissner@osf.org)
;; Version 2 port by Tom Wood (twood@pets.sps.mot.com) ;; Version 2 port by Tom Wood (twood@pets.sps.mot.com)
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
(define_expand "m88k_rcs_id" (define_expand "m88k_rcs_id"
[(match_operand:SI 0 "" "")] [(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; }") FAIL; }")
;; Attribute describing the processor. This attribute must match exactly ;; Attribute describing the processor. This attribute must match exactly
...@@ -2728,13 +2728,14 @@ ...@@ -2728,13 +2728,14 @@
"mul %0,%1,%2" "mul %0,%1,%2"
[(set_attr "type" "imul")]) [(set_attr "type" "imul")])
(define_insn "umulsidi3" ;; Loses for acvs/P60504.c (mod case) on 88110
[(set (match_operand:DI 0 "register_operand" "=r") ;; (define_insn "umulsidi3"
(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%r")) ;; [(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ;; (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "%r"))
"TARGET_88110" ;; (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))]
"mulu.d %0,%1,%2" ;; "TARGET_88110"
[(set_attr "type" "imul")]) ;; "mulu.d %0,%1,%2"
;; [(set_attr "type" "imul")])
;; patterns for mixed mode floating point ;; patterns for mixed mode floating point
;; Do not define patterns that utilize mixed mode arithmetic that result ;; Do not define patterns that utilize mixed mode arithmetic that result
...@@ -3852,7 +3853,7 @@ ...@@ -3852,7 +3853,7 @@
emit_jump_insn (gen_casesi_enter (label, index_diff, operands[3])); emit_jump_insn (gen_casesi_enter (label, index_diff, operands[3]));
else else
/* Load the table entry and jump to it. */ /* 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 /* Claim that flow drops into the table so it will be adjacent by not
emitting a barrier. */ emitting a barrier. */
...@@ -3864,10 +3865,18 @@ ...@@ -3864,10 +3865,18 @@
(mem:SI (plus:SI (match_operand:SI 1 "" "") (mem:SI (plus:SI (match_operand:SI 1 "" "")
(mult:SI (match_operand:SI 2 "" "") (mult:SI (match_operand:SI 2 "" "")
(const_int 4))))) (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 ;; The bsr.n instruction is directed to the END of the table. See
;; ASM_OUTPUT_CASE_END. ;; ASM_OUTPUT_CASE_END.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment