diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 52660f7409dec7044a7166f3c6f7f4e6ec245114..a3efa168ac920a1219edd1f0aa18d5f78b54349a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-12-29 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md: Reorder some insns. + 2002-12-29 Kazu Hirata <kazu@cs.umass.edu> * config/h8300/h8300-protos.h: Add prototypes for diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index b377961948be6db8f37e653bc96b7d48545592a8..87be3cbf61b09a790f0f931a403b411741ea7208 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2329,7 +2329,9 @@ [(set_attr "cc" "set_znv") (set_attr "length" "6")]) -(define_insn "" +;; ior:HI + +(define_insn "*iorhi3_zext" [(set (match_operand:HI 0 "register_operand" "=r") (ior:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "r")) (match_operand:HI 2 "register_operand" "0")))] @@ -2340,6 +2342,40 @@ [(set_attr "cc" "clobber") (set_attr "length" "2")]) +(define_insn "*iorhi3_ashift_8" + [(set (match_operand:HI 0 "register_operand" "=r") + (ior:HI (ashift:HI (match_operand:HI 1 "register_operand" "r") + (const_int 8)) + (match_operand:HI 2 "register_operand" "0")))] + "" + "or.b\\t%s1,%t0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + +(define_insn "*iorhi3_lshiftrt_8" + [(set (match_operand:HI 0 "register_operand" "=r") + (ior:HI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r") + (const_int 8)) + (match_operand:HI 2 "register_operand" "0")))] + "" + "or.b\t%t1,%s0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + +(define_insn "*iorhi3_two_qi" + [(set (match_operand:HI 0 "register_operand" "=r") + (ior:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "0")) + (ashift:HI (match_operand:HI 2 "register_operand" "r") + (const_int 8))))] + "REG_P (operands[0]) + && REG_P (operands[2]) + && REGNO (operands[0]) != REGNO (operands[2])" + "mov.b\\t%s2,%t0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + +;; ior:SI + (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "r")) @@ -2395,38 +2431,6 @@ [(set_attr "cc" "clobber") (set_attr "length" "2")]) -(define_insn "" - [(set (match_operand:HI 0 "register_operand" "=r") - (ior:HI (zero_extend:HI (match_operand:QI 1 "register_operand" "0")) - (ashift:HI (match_operand:HI 2 "register_operand" "r") - (const_int 8))))] - "REG_P (operands[0]) - && REG_P (operands[2]) - && REGNO (operands[0]) != REGNO (operands[2])" - "mov.b\\t%s2,%t0" - [(set_attr "cc" "clobber") - (set_attr "length" "2")]) - -(define_insn "*iorhi_ashift_8" - [(set (match_operand:HI 0 "register_operand" "=r") - (ior:HI (ashift:HI (match_operand:HI 1 "register_operand" "r") - (const_int 8)) - (match_operand:HI 2 "register_operand" "0")))] - "" - "or.b\\t%s1,%t0" - [(set_attr "cc" "clobber") - (set_attr "length" "2")]) - -(define_insn "*iorhi_lshiftrt_8" - [(set (match_operand:HI 0 "register_operand" "=r") - (ior:HI (lshiftrt:HI (match_operand:HI 1 "register_operand" "r") - (const_int 8)) - (match_operand:HI 2 "register_operand" "0")))] - "" - "or.b\t%t1,%s0" - [(set_attr "cc" "clobber") - (set_attr "length" "2")]) - (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (zero_extend:SI (match_operand:HI 1 "register_operand" "0"))