From bd6758592b13f86328bb6ed590a2af3522e1caeb Mon Sep 17 00:00:00 2001
From: Bernd Schmidt <bernds@redhat.co.uk>
Date: Mon, 20 Nov 2000 14:17:59 +0000
Subject: [PATCH] Fix sh problems at -O0

From-SVN: r37582
---
 gcc/ChangeLog      |  6 ++++++
 gcc/config/sh/sh.c | 24 ------------------------
 gcc/toplev.c       | 21 +++++++++------------
 3 files changed, 15 insertions(+), 36 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 958880dc38c2..a7c688a55640 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2000-11-20  Bernd Schmidt  <bernds@redhat.co.uk>
+
+	* toplev.c (rest_of_compilation): Run optimize_mode_switching even
+	if not optimizing.
+	* sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
+
 2000-11-19  Richard Henderson  <rth@redhat.com>
 
 	* crtstuff.c (force_to_data): Use array size 1 not 0.
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 4a03dd842350..675920fdd133 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -5014,38 +5014,14 @@ void
 emit_sf_insn (pat)
      rtx pat;
 {
-  rtx addr;
-  /* When generating reload insns,  we must not create new registers.  FPSCR
-     should already have the correct value, so do nothing to change it.  */
-  if (! TARGET_FPU_SINGLE && ! reload_in_progress && optimize < 1)
-    {
-      addr = gen_reg_rtx (SImode);
-      emit_insn (gen_fpu_switch0 (addr));
-    }
   emit_insn (pat);
-  if (! TARGET_FPU_SINGLE && ! reload_in_progress && optimize < 1)
-    {
-      addr = gen_reg_rtx (SImode);
-      emit_insn (gen_fpu_switch1 (addr));
-    }
 }
 
 void
 emit_df_insn (pat)
      rtx pat;
 {
-  rtx addr;
-  if (TARGET_FPU_SINGLE && ! reload_in_progress && optimize < 1)
-    {
-      addr = gen_reg_rtx (SImode);
-      emit_insn (gen_fpu_switch0 (addr));
-    }
   emit_insn (pat);
-  if (TARGET_FPU_SINGLE && ! reload_in_progress && optimize < 1)
-    {
-      addr = gen_reg_rtx (SImode);
-      emit_insn (gen_fpu_switch1 (addr));
-    }
 }
 
 void
diff --git a/gcc/toplev.c b/gcc/toplev.c
index de74f28968c9..536e496daed2 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3345,20 +3345,17 @@ rest_of_compilation (decl)
     register_life_up_to_date = 0;
 
 #ifdef OPTIMIZE_MODE_SWITCHING
-  if (optimize)
-    {
-      timevar_push (TV_GCSE);
-
-      if (optimize_mode_switching (NULL_PTR))
-	{
-	  /* We did work, and so had to regenerate global life information.
-	     Take advantage of this and don't re-recompute register life
-	     information below.  */
-	  register_life_up_to_date = 1;
-	}
+  timevar_push (TV_GCSE);
 
-      timevar_pop (TV_GCSE);
+  if (optimize_mode_switching (NULL_PTR))
+    {
+      /* We did work, and so had to regenerate global life information.
+	 Take advantage of this and don't re-recompute register life
+	 information below.  */
+      register_life_up_to_date = 1;
     }
+
+  timevar_pop (TV_GCSE);
 #endif
 
 #ifdef INSN_SCHEDULING
-- 
GitLab