OSDN Git Service

(umulsidi3) Doesn't work for 88110 with mod/div changes
authorcoxs <coxs@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Apr 1995 17:04:06 +0000 (17:04 +0000)
committercoxs <coxs@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 28 Apr 1995 17:04:06 +0000 (17:04 +0000)
,.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9538 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/m88k/m88k.md

index 4507517..d102d11 100644 (file)
@@ -1,5 +1,5 @@
 ;;- 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)
@@ -28,7 +28,7 @@
 (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.