diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-12-29 21:33:18 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-12-29 21:33:18 +0000 |
commit | 4b76236fe2978158e569743be92ac6f016987096 (patch) | |
tree | ae3eefb133ca39f121f6d81c5de90dcc983a4aab | |
parent | 36123bb52691802271fc60f2d464f50d28b40a95 (diff) | |
download | gcc-4b76236fe2978158e569743be92ac6f016987096.tar.gz |
* config/h8300/h8300.md: Reorder some insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60611 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 70 |
2 files changed, 41 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 52660f7409d..a3efa168ac9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 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 const_int_qi_operand and const_int_hi_operand. * config/h8300/h8300.c (const_int_qi_operand): New. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index b377961948b..87be3cbf61b 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")) @@ -2396,38 +2432,6 @@ (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")) (ashift:SI (match_operand:SI 2 "register_operand" "r") |