diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d32d85660b7ebac9338facb8f6061c32b78fe40..e1180ac75fafa2a7520f14c712834755798bca22 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-01-23 Kazu Hirata <kazu@hxi.com> + + * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an + operand[3]. + 2002-01-23 Jason Merrill <jason@redhat.com> * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index e6229a2b94458d54de0dac017dea6085a1bc09dc..ab05d4966cb7e62210d6da5f3a660d1f8320bc86 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1061,11 +1061,12 @@ (define_insn "*andorhi3" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (and:HI (match_operand:HI 2 "register_operand" "r") - (match_operand:HI 3 "p_operand" "P")) + (match_operand:HI 3 "const_int_operand" "n")) (match_operand:HI 1 "register_operand" "0")))] - "" + "exact_log2 (INTVAL (operands[3]) & 0xffff) != -1" "* { + operands[3] = GEN_INT (INTVAL (operands[3]) & 0xffff); if (INTVAL (operands[3]) > 128) { operands[3] = GEN_INT (INTVAL (operands[3]) >> 8);