diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-03-29 14:39:54 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-03-29 14:39:54 +0000 |
commit | d4048ff6030f6e71205618be035067993a7a7054 (patch) | |
tree | b0926e64ed2c3ee5b1c138b41e23b4832d7704d2 /gcc | |
parent | 60ef8bddd7b475ef80d5ab102fd0ae224fe749cc (diff) | |
download | gcc-d4048ff6030f6e71205618be035067993a7a7054.zip gcc-d4048ff6030f6e71205618be035067993a7a7054.tar.gz gcc-d4048ff6030f6e71205618be035067993a7a7054.tar.bz2 |
h8300.md (*insv_si_8_8): New.
* config/h8300/h8300.md (*insv_si_8_8): New.
(*insv_si_8_8_lshiftrt_8): Likewise.
(a peephole2): Likewise.
From-SVN: r65018
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 38 |
2 files changed, 44 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3098109..fa5e274 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-03-29 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (*insv_si_8_8): New. + (*insv_si_8_8_lshiftrt_8): Likewise. + (a peephole2): Likewise. + 2003-03-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> * doc/contrib.texi: Add Eric Botcazou and Roger Sayle. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 8e46ec1..30fa1a9 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2681,6 +2681,27 @@ [(set_attr "cc" "clobber") (set_attr "length" "6")]) +(define_insn "*insv_si_8_8" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") + (const_int 8) + (const_int 8)) + (match_operand:SI 1 "register_operand" "r"))] + "TARGET_H8300H || TARGET_H8300S" + "mov.b\\t%w1,%x0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + +(define_insn "*insv_si_8_8_lshiftrt_8" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") + (const_int 8) + (const_int 8)) + (lshiftrt:SI (match_operand:SI 1 "register_operand" "r") + (const_int 8)))] + "TARGET_H8300H || TARGET_H8300S" + "mov.b\\t%x1,%x0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + ;; extzv:SI (define_insn "*extzv_8_8" @@ -3846,6 +3867,23 @@ (define_peephole2 [(set (match_operand:SI 0 "register_operand" "") + (match_operand:SI 1 "register_operand" "")) + (set (match_dup 0) + (and:SI (match_dup 0) + (const_int 65280)))] + "(TARGET_H8300H || TARGET_H8300S) + && !reg_overlap_mentioned_p (operands[0], operands[1])" + [(set (match_dup 0) + (const_int 0)) + (set (zero_extract:SI (match_dup 0) + (const_int 8) + (const_int 8)) + (lshiftrt:SI (match_dup 1) + (const_int 8)))] + "") + +(define_peephole2 + [(set (match_operand:SI 0 "register_operand" "") (match_operand:SI 1 "memory_operand" "")) (set (match_dup 0) (and:SI (match_dup 0) |