aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2003-02-14 16:22:03 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2003-02-14 16:22:03 +0000
commit60f469fa1e6a1aa6f950b68aaef78cf5f5ae0c9e (patch)
tree4a481d83049fd56ef4f832dd35fd56921b3bb3f9
parentb97991522d5592a47296f53fad359c1a80443de6 (diff)
downloadgcc-60f469fa1e6a1aa6f950b68aaef78cf5f5ae0c9e.zip
gcc-60f469fa1e6a1aa6f950b68aaef78cf5f5ae0c9e.tar.gz
gcc-60f469fa1e6a1aa6f950b68aaef78cf5f5ae0c9e.tar.bz2
* config/h8300/h8300.md (a peephole2): New.
From-SVN: r62900
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/h8300/h8300.md11
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9de0cb4..e52dce2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
+2003-02-14 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
+
2003-02-13 Adam Nemet <anemet@lnxw.com>
+
PR opt/2391
* combine.c: Fix spelling in comment.
(cached_nonzero_bits): New function.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index 8796dc0..7144b6e 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -2878,6 +2878,17 @@
(match_dup 0)))]
"operands[3] = gen_rtx_REG (HImode, REGNO (operands[2]));")
+(define_insn "*iorsi2_and_1_lshiftrt_1"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (ior:SI (and:SI (match_operand:SI 1 "register_operand" "0")
+ (const_int 1))
+ (lshiftrt:SI (match_dup 1)
+ (const_int 1))))]
+ "TARGET_H8300H || TARGET_H8300S"
+ "shlr.l\\t%S0\;bor\\t#0,%w0\;bst\\t#0,%w0"
+ [(set_attr "length" "6")
+ (set_attr "cc" "clobber")])
+
;; Used to add the exponent of a float.
(define_insn "*addsi3_shift"