Split movdf so it can go into a branch delay slot.
authorStan Cox <coxs@gnu.org>
Fri, 4 Feb 1994 16:29:24 +0000 (16:29 +0000)
committerStan Cox <coxs@gnu.org>
Fri, 4 Feb 1994 16:29:24 +0000 (16:29 +0000)
From-SVN: r6480

gcc/config/m88k/m88k.md

index 08510547f467102e64b9ce82f0f08fee03b60ea0..44d95a0cb9f2c3fdada63980d70579f87ca6afde 100644 (file)
@@ -2,7 +2,7 @@
 ;;  Copyright (C) 1988, 1989, 1990, 1991, 1993 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 (Tom_Wood@NeXT.com)
+;;  Version 2 port by Tom Wood (twood@pets.sps.mot.com)
 
 ;; This file is part of GNU CC.
 
 
 ;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.
 
-;; SCCS rev field.  This is a NOP, just to get the SCCS id into the
+;; RCS rev field.  This is a NOP, just to get the RCS id into the
 ;; program image.
-(define_expand "m88k_sccs_id"
+(define_expand "m88k_rcs_id"
   [(match_operand:SI 0 "" "")]
   ""
-  "{ static char sccs_id[] = \"@(#)m88k.md     2.3.3.2 12/16/92 08:26:12\";
+  "{ static char rcs_id[] = \"$What: <@(#) m88k.md,v   1.5> $\";
      FAIL; }")
 \f
-;; Attribute specifications
+;; Attribute describing the processor.  This attribute must match exactly
+;; with the processor_type enumeration in m88k.h.
 
 ; Target CPU.
 (define_attr "cpu" "m88100,m88110,m88000"
     DONE;
 }")
 
+(define_split
+  [(set (match_operand:DF 0 "register_operand" "=r")
+       (match_operand:DF 1 "register_operand" "r"))]
+  "reload_completed"
+  [(set (match_dup 2) (match_dup 3))
+   (set (match_dup 4) (match_dup 5))]
+  "
+{ operands[2] = operand_subword (operands[0], 0, 0, DFmode);
+  operands[3] = operand_subword (operands[1], 0, 0, DFmode);
+  operands[4] = operand_subword (operands[0], 1, 0, DFmode);
+  operands[5] = operand_subword (operands[1], 1, 0, DFmode); }")
+
 ;; @@ This pattern is incomplete and doesn't appear necessary.
 ;;
 ;; This pattern forces (set (reg:DF ...) (const_double ...))