diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-08 13:10:20 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-10-08 13:10:20 +0000 |
commit | 67978980fdbd384ebb0577412b5edb247cd2b978 (patch) | |
tree | bf17679e8067210228afcef645120edb21a5132d /gcc/config/h8300 | |
parent | 6cca0980ca780e5d761d823d6861e771da52d593 (diff) | |
download | gcc-67978980fdbd384ebb0577412b5edb247cd2b978.tar.gz |
2000-10-07 Will Cohen <wcohen@redhat.com>, Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.md: Remove the memory alternative and correct
the insn lengths in the templates for sign extention and zero
extention.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36787 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/h8300')
-rw-r--r-- | gcc/config/h8300/h8300.md | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index f75fad509f4..9ade006aa24 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1632,7 +1632,7 @@ (define_expand "zero_extendhisi2" [(set (match_operand:SI 0 "register_operand" "") - (zero_extend:SI (match_operand:HI 1 "general_operand" "")))] + (zero_extend:SI (match_operand:HI 1 "register_operand" "")))] "" " { @@ -1667,18 +1667,16 @@ (set_attr "cc" "clobber,clobber,clobber")]) (define_insn "" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (zero_extend:SI (match_operand:HI 1 "general_operand_src" "0,g>")))] + [(set (match_operand:SI 0 "register_operand" "=r") + (zero_extend:SI (match_operand:HI 1 "register_operand" "0")))] "TARGET_H8300H || TARGET_H8300S" - "@ - extu.l %S0 - mov.w %T1,%T0\;extu.l %S0" - [(set_attr "length" "2,4") - (set_attr "cc" "set_znv,set_znv")]) + "extu.l %S0" + [(set_attr "length" "2") + (set_attr "cc" "set_znv")]) (define_expand "extendqihi2" [(set (match_operand:HI 0 "register_operand" "") - (sign_extend:HI (match_operand:QI 1 "general_operand" "")))] + (sign_extend:HI (match_operand:QI 1 "register_operand" "")))] "" "") @@ -1693,14 +1691,12 @@ (set_attr "cc" "clobber,clobber")]) (define_insn "" - [(set (match_operand:HI 0 "register_operand" "=r,r") - (sign_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>")))] + [(set (match_operand:HI 0 "register_operand" "=r") + (sign_extend:HI (match_operand:QI 1 "register_operand" "0")))] "TARGET_H8300H || TARGET_H8300S" - "@ - exts.w %T0 - mov.b %R1,%s0\;exts.w %T0" - [(set_attr "length" "2,4") - (set_attr "cc" "set_znv,set_znv")]) + "exts.w %T0" + [(set_attr "length" "2") + (set_attr "cc" "set_znv")]) ;; The compiler can synthesize a 300H variant of this which is ;; just as efficient as one that we'd create @@ -1716,7 +1712,7 @@ (define_expand "extendhisi2" [(set (match_operand:SI 0 "register_operand" "") - (sign_extend:SI (match_operand:HI 1 "general_operand" "")))] + (sign_extend:SI (match_operand:HI 1 "register_operand" "")))] "" " { @@ -1749,14 +1745,12 @@ (set_attr "cc" "clobber,clobber")]) (define_insn "" - [(set (match_operand:SI 0 "register_operand" "=r,r") - (sign_extend:SI (match_operand:HI 1 "general_operand_src" "0,g>")))] + [(set (match_operand:SI 0 "register_operand" "=r") + (sign_extend:SI (match_operand:HI 1 "register_operand" "0")))] "TARGET_H8300H || TARGET_H8300S" - "@ - exts.l %S0 - mov.w %T1,%T0\;exts.l %S0" - [(set_attr "length" "2,4") - (set_attr "cc" "set_znv,set_znv")]) + "exts.l %S0" + [(set_attr "length" "2") + (set_attr "cc" "set_znv")]) ;; ---------------------------------------------------------------------- ;; SHIFTS |