diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 16 |
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" |