* config/h8300/h8300.md (*iorsi3_ashift_31): New.
authorKazu Hirata <kazu@cs.umass.edu>
Fri, 10 Jan 2003 15:02:01 +0000 (15:02 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Fri, 10 Jan 2003 15:02:01 +0000 (15:02 +0000)
From-SVN: r61158

gcc/ChangeLog
gcc/config/h8300/h8300.md

index 799f9baadbca65960ff51253b6e116e3c6fa4c92..ff7ff3344c72653f7a9c710930eceb198caf396f 100644 (file)
@@ -1,3 +1,7 @@
+2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (*iorsi3_ashift_31): New.
+
 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
 
        * jump.c (next_nonnote_insn_in_loop): New function.
index 1d1fdacd625e3ff565ae5028e46d5fb0215aba97..66c79e7d41be5fc58c5f0c58f8eecba00479b44c 100644 (file)
   [(set_attr "cc" "clobber")
    (set_attr "length" "2")])
 
+(define_insn "*iorsi3_ashift_31"
+  [(set (match_operand:SI 0 "register_operand" "=&r")
+       (ior:SI (ashift:SI (match_operand:SI 1 "register_operand" "r")
+                          (const_int 31))
+               (match_operand:SI 2 "register_operand" "0")))]
+  "TARGET_H8300H || TARGET_H8300S"
+  "rotxl.l\\t%S0\;bor\\t#0,%w1\;rotxr.l\\t%S0"
+  [(set_attr "length" "6")
+   (set_attr "cc" "set_znv")])
+
 ;; Used to OR the exponent of a float.
 
 (define_insn "*iorsi3_shift"