--- gcc-4.4.7.orig/gcc/config/sh/sh.h	2010-10-13 10:29:19.000000000 -0400
+++ gcc-4.4.7/gcc/config/sh/sh.h	2010-10-14 00:00:39.000000000 -0400
@@ -712,8 +712,9 @@
       /* Never run scheduling before reload, since that can		\
 	 break global alloc, and generates slower code anyway due	\
 	 to the pressure on R0.  */					\
-      /* Enable sched1 for SH4; ready queue will be reordered by	\
-	 the target hooks when pressure is high. We can not do this for \
+      /* Enable sched1 for SH4 if the user explicitly requests.    \
+  When sched1 is enabled, the ready queue will be reordered by \
+  the target hooks if pressure is high.  We can not do this for  \
 	 PIC, SH3 and lower as they give spill failures for R0.  */	\
       if (!TARGET_HARD_SH4 || flag_pic)					\
         flag_schedule_insns = 0;		 			\
@@ -728,6 +729,8 @@
 	    warning (0, "ignoring -fschedule-insns because of exception handling bug");	\
 	  flag_schedule_insns = 0;		 			\
 	}								\
+      else if (flag_schedule_insns == 2)       \
+ flag_schedule_insns = 0;          \
     }									\
 									\
   if (align_loops == 0)							\
