New pattern for ior between SImode target and zero_extended value.
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 7 Dec 1994 21:51:43 +0000 (16:51 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 7 Dec 1994 21:51:43 +0000 (16:51 -0500)
From-SVN: r8624

gcc/config/m68k/m68k.md

index bd826e16313b939fab91533e45b25977e48fe970..2afdedc7fd0598c88c442d7bf143cef7f225e789 100644 (file)
                (match_dup 0)))]
   ""
   "or%.b %1,%0")
+
+(define_insn ""
+  [(set (match_operand:SI 0 "general_operand" "=o,d")
+    (ior:SI (zero_extend:SI (match_operand 1 "general_operand" "dn,dmn"))
+        (match_operand:SI 2 "general_operand" "0,0")))]
+  ""
+  "*
+{
+  int byte_mode;
+
+  CC_STATUS_INIT;
+  byte_mode = (GET_MODE(operands[1]) == QImode);
+  if (GET_CODE (operands[0]) == MEM)
+    operands[0] = adj_offsettable_operand (operands[0], byte_mode ? 3 : 2);
+  if (byte_mode)
+       return \"or%.b %1,%0\";
+  else
+       return \"or%.w %1,%0\";
+}")
 \f
 ;; xor instructions