OSDN Git Service

* config/h8300/h8300.md (zero_extendqihi2): Changes to
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Aug 2001 17:17:17 +0000 (17:17 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Aug 2001 17:17:17 +0000 (17:17 +0000)
define_expand to accomodate target-specific attributes.
(anonymous zero_extendqihi2 patterns): New.

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

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

index 735a3a1..e0661aa 100644 (file)
@@ -1,3 +1,9 @@
+2001-08-30  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md (zero_extendqihi2): Changes to
+       define_expand to accomodate target-specific attributes.
+       (anonymous zero_extendqihi2 patterns): New.
+
 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
 
        * h8300.md (*andorhi3): New pattern.
index 8fb3271..eb7dc77 100644 (file)
 ;; EXTEND INSTRUCTIONS
 ;; ----------------------------------------------------------------------
 
-(define_insn "zero_extendqihi2"
+(define_expand "zero_extendqihi2"
+  [(set (match_operand:HI 0 "register_operand" "")
+       (zero_extend:HI (match_operand:QI 1 "general_operand_src" "")))]
+  ""
+  "")
+
+(define_insn ""
   [(set (match_operand:HI 0 "register_operand" "=r,r")
        (zero_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>")))]
-  ""
+  "TARGET_H8300"
   "@
   mov.b        #0,%t0
   mov.b        %R1,%s0\;mov.b  #0,%t0"
   [(set_attr "length" "2,10")
    (set_attr "cc" "clobber,clobber")])
 
+(define_insn ""
+  [(set (match_operand:HI 0 "register_operand" "=r,r")
+       (zero_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>")))]
+  "TARGET_H8300H || TARGET_H8300S"
+  "@
+  extu.w       %T0
+  mov.b        %R1,%s0\;extu.w %T0"
+  [(set_attr "length" "2,10")
+   (set_attr "cc" "set_znv,set_znv")])
+
 ;; The compiler can synthesize a 300H variant of this which is
 ;; just as efficient as one that we'd create
 (define_insn "zero_extendqisi2"