aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2003-03-29 14:39:54 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2003-03-29 14:39:54 +0000
commitd4048ff6030f6e71205618be035067993a7a7054 (patch)
treeb0926e64ed2c3ee5b1c138b41e23b4832d7704d2 /gcc
parent60ef8bddd7b475ef80d5ab102fd0ae224fe749cc (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/h8300/h8300.md38
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)