+Tue Apr 13 17:47:14 1999 John Wehle (john@feith.com)
+
+ * i386.md (movdi): Add splitter.
+
Wed Apr 14 10:04:27 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (storeqf_int, storeqf_int_clobber, loadqf_int,
[(set_attr "type" "integer,memory")
(set_attr "memory" "*,load")])
+(define_split
+ [(set (match_operand:DI 0 "nonimmediate_operand" "")
+ (match_operand:DI 1 "general_operand" ""))]
+ "reload_completed
+ && (offsettable_memref_p (operands[0])
+ || nonmemory_operand (operands[0], DImode))
+ && (offsettable_memref_p (operands[1])
+ || nonmemory_operand (operands[1], DImode))
+ && (! reg_overlap_mentioned_p (gen_lowpart (SImode, operands[0]),
+ operands[1])
+ || ! reg_overlap_mentioned_p (gen_highpart (SImode, operands[0]),
+ operands[1]))"
+ [(set (match_dup 2)
+ (match_dup 4))
+ (set (match_dup 3)
+ (match_dup 5))]
+ "
+{
+ split_di (&operands[0], 1, &operands[2], &operands[3]);
+ split_di (&operands[1], 1, &operands[4], &operands[5]);
+
+ if (reg_overlap_mentioned_p (operands[2], operands[1]))
+ {
+ rtx tmp;
+
+ tmp = operands[2];
+ operands[2] = operands[3];
+ operands[3] = tmp;
+
+ tmp = operands[4];
+ operands[4] = operands[5];
+ operands[5] = tmp;
+ }
+}")
\f
;;- conversion instructions
;;- NONE