diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3985860a60c5..55e15d3ea61c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-03-21 Kazu Hirata + + * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New. + 2003-03-21 Dale Johannesen * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Increase diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 417975405d1d..54994211a005 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2669,6 +2669,18 @@ [(set_attr "cc" "clobber") (set_attr "length" "4")]) +(define_insn "*insv_si_1_n_lshiftrt_16" + [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") + (const_int 1) + (match_operand:SI 1 "const_int_operand" "n")) + (lshiftrt:SI (match_operand:SI 2 "register_operand" "r") + (const_int 16)))] + "(TARGET_H8300H || TARGET_H8300S) + && INTVAL (operands[1]) < 16" + "rotr.w\\t%e2\;rotl.w\\t%e2\;bst\\t%Z1,%Y0" + [(set_attr "cc" "clobber") + (set_attr "length" "6")]) + ;; extzv:SI (define_insn "*extzv_8_8"