summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-29 21:33:18 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-29 21:33:18 +0000
commit4b76236fe2978158e569743be92ac6f016987096 (patch)
treeae3eefb133ca39f121f6d81c5de90dcc983a4aab
parent36123bb52691802271fc60f2d464f50d28b40a95 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/config/h8300/h8300.md70
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")