From 5e77c6f9326314df6d3cb47c94ad3e689046826e Mon Sep 17 00:00:00 2001
From: Kaz Kojima <kkojima@gcc.gnu.org>
Date: Fri, 1 Jun 2007 04:58:23 +0000
Subject: [PATCH] sh.c (fpscr_set_from_mem): Call get_free_reg only after
 no_new_pseudos.

	* config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
	only after no_new_pseudos.

From-SVN: r125258
---
 gcc/ChangeLog      | 5 +++++
 gcc/config/sh/sh.c | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e622c34817b3..87ce2f1fcac2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
+	only after no_new_pseudos.
+
 2007-05-31  Eric Christopher  <echristo@apple.com>
 
 	* expr.c (convert_move): Assert that we don't have a BLKmode
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index b3c46ab46882..10d7a86fdd0c 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -8542,8 +8542,9 @@ fpscr_set_from_mem (int mode, HARD_REG_SET regs_live)
 {
   enum attr_fp_mode fp_mode = mode;
   enum attr_fp_mode norm_mode = ACTUAL_NORMAL_MODE (FP_MODE);
-  rtx addr_reg = get_free_reg (regs_live);
+  rtx addr_reg;
 
+  addr_reg = no_new_pseudos ? get_free_reg (regs_live) : NULL_RTX;
   emit_fpu_switch (addr_reg, fp_mode == norm_mode);
 }
 
-- 
GitLab