* config/h8300/h8300.md (*extzv_8_8): New.
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Dec 2002 21:01:54 +0000 (21:01 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Dec 2002 21:01:54 +0000 (21:01 +0000)
(*extzv_8_16): Likewise.

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

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

index 76609c3..21fa83b 100644 (file)
@@ -1,3 +1,8 @@
+2002-12-04  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (*extzv_8_8): New.
+       (*extzv_8_16): Likewise.
+
 2002-12-04  Jason Merrill  <jason@redhat.com>
 
        PR c++/8461, c++/8625
index 8fac7dd..15ade25 100644 (file)
 ;; COMBINE PATTERNS
 ;; -----------------------------------------------------------------
 
+(define_insn "*extzv_8_8"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
+                        (const_int 8)
+                        (const_int 8)))]
+  "TARGET_H8300H || TARGET_H8300S"
+  "mov.b\\t%x1,%w0\;extu.w\\t%f0\;extu.l\\t%S0"
+  [(set_attr "cc" "set_znv")
+   (set_attr "length" "6")])
+
+(define_insn "*extzv_8_16"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
+                        (const_int 8)
+                        (const_int 16)))]
+  "TARGET_H8300H || TARGET_H8300S"
+  "mov.w\\t%e1,%f0\;extu.w\\t%f0\;extu.l\\t%S0"
+  [(set_attr "cc" "set_znv")
+   (set_attr "length" "6")])
+
 (define_insn ""
   [(set (match_operand:HI 0 "register_operand" "=r")
        (ior:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r"))