diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-03-20 21:12:01 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-03-20 21:12:01 +0000 |
commit | d0940a55f800ad463e270ab8c86dfc53600a49a6 (patch) | |
tree | c20967808a2eb37a541ef93e04e6ce091c235500 /gcc | |
parent | c876997fea9c48f53d567cc40f1b9a5fb2bdb97e (diff) | |
download | gcc-d0940a55f800ad463e270ab8c86dfc53600a49a6.zip gcc-d0940a55f800ad463e270ab8c86dfc53600a49a6.tar.gz gcc-d0940a55f800ad463e270ab8c86dfc53600a49a6.tar.bz2 |
h8300.md (*insv_si_1_n): New.
* config/h8300/h8300.md (*insv_si_1_n): New.
(*insv_si_1_n_lshiftrt): Likewise.
From-SVN: r64620
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 25 |
2 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b16b1b..6f248a8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-03-20 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (*insv_si_1_n): New. + (*insv_si_1_n_lshiftrt): Likewise. + 2003-03-20 Roger Sayle <roger@eyesopen.com> * fold-const.c (fold_mathfn_compare): New function to simplify diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 50db771..dbe5446 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2643,6 +2643,31 @@ ;; COMBINE PATTERNS ;; ----------------------------------------------------------------- +;; insv:SI + +(define_insn "*insv_si_1_n" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") + (const_int 1) + (match_operand:SI 1 "const_int_operand" "n")) + (match_operand:SI 2 "register_operand" "r"))] + "(TARGET_H8300H || TARGET_H8300S) + && INTVAL (operands[1]) < 16" + "bld\\t#0,%w2\;bst\\t%Z1,%Y0" + [(set_attr "cc" "clobber") + (set_attr "length" "4")]) + +(define_insn "*insv_si_1_n_lshiftrt" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") + (const_int 1) + (match_operand:SI 1 "const_int_operand" "n")) + (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") + (match_operand:SI 3 "const_int_operand" "n")))] + "(TARGET_H8300H || TARGET_H8300S) + && INTVAL (operands[1]) < 16" + "bld\\t%Z3,%Y2\;bst\\t%Z1,%Y0" + [(set_attr "cc" "clobber") + (set_attr "length" "4")]) + ;; extzv:SI (define_insn "*extzv_8_8" |