From dfb2792ac3b24e9cf88b2d4edc4d3c0bca50c9d4 Mon Sep 17 00:00:00 2001 From: kazu Date: Thu, 30 Aug 2001 17:17:17 +0000 Subject: [PATCH] * config/h8300/h8300.md (zero_extendqihi2): Changes to 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 | 6 ++++++ gcc/config/h8300/h8300.md | 20 ++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 735a3a1..e0661aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-08-30 Kazu Hirata + + * 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 * h8300.md (*andorhi3): New pattern. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 8fb3271..eb7dc77 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1604,16 +1604,32 @@ ;; 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" -- 2.7.4