aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/h8300/h8300.md16
2 files changed, 15 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 715b380..f323ff1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-11-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (*andorqi3): Use bor between bld and
+ bst. Update the insn length.
+ (*andorhi3): Likewise.
+ (*andorsi3): Likewise.
+
2002-11-18 Richard Sandiford <rsandifo@redhat.com>
* config/sh/sh-protos.h (sh_mark_label): Declare.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index 1e02883..82cfabd 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -1095,8 +1095,8 @@
(match_operand:QI 3 "single_one_operand" "n"))
(match_operand:QI 1 "register_operand" "0")))]
""
- "bld\\t%V3,%X2\;bst\\t%V3,%X0"
- [(set_attr "length" "4")
+ "bld\\t%V3,%X2\;bor\\t%V3,%X0\;bst\\t%V3,%X0"
+ [(set_attr "length" "6")
(set_attr "cc" "clobber")])
(define_insn "*andorhi3"
@@ -1111,11 +1111,11 @@
if (INTVAL (operands[3]) > 128)
{
operands[3] = GEN_INT (INTVAL (operands[3]) >> 8);
- return \"bld\\t%V3,%t2\;bst\\t%V3,%t0\";
+ return \"bld\\t%V3,%t2\;bor\\t%V3,%t0\;bst\\t%V3,%t0\";
}
- return \"bld\\t%V3,%s2\;bst\\t%V3,%s0\";
+ return \"bld\\t%V3,%s2\;bor\\t%V3,%s0\;bst\\t%V3,%s0\";
}"
- [(set_attr "length" "4")
+ [(set_attr "length" "6")
(set_attr "cc" "clobber")])
(define_insn "*andorsi3"
@@ -1130,11 +1130,11 @@
if (INTVAL (operands[3]) > 128)
{
operands[3] = GEN_INT (INTVAL (operands[3]) >> 8);
- return \"bld\\t%V3,%x2\;bst\\t%V3,%x0\";
+ return \"bld\\t%V3,%x2\;bor\\t%V3,%x0\;bst\\t%V3,%x0\";
}
- return \"bld\\t%V3,%w2\;bst\\t%V3,%w0\";
+ return \"bld\\t%V3,%w2\;bor\\t%V3,%w0\;bst\\t%V3,%w0\";
}"
- [(set_attr "length" "4")
+ [(set_attr "length" "6")
(set_attr "cc" "clobber")])
(define_expand "andsi3"