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"))