From 57c7433fdc3fcb7b0cfd7b13bd11360a5e17c624 Mon Sep 17 00:00:00 2001
From: "Naveen H.S" <naveen.S@kpitcummins.com>
Date: Fri, 30 Mar 2012 21:41:45 +0000
Subject: [PATCH] sh.c (push_regs): Skip banked registers when resbank
 attribute is specified.

	* config/sh/sh.c (push_regs): Skip banked registers when
	resbank attribute is specified.
	(sh_expand_epilogue): Likewise.


Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>

From-SVN: r186024
---
 gcc/ChangeLog      | 7 +++++++
 gcc/config/sh/sh.c | 8 ++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 294ccaa22e64..d043b8f4de79 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2012-03-30  Naveen H.S  <naveen.S@kpitcummins.com>
+	    Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/sh.c (push_regs): Skip banked registers when
+	resbank attribute is specified.
+	(sh_expand_epilogue): Likewise.
+
 2012-03-30  Richard Henderson  <rth@redhat.com>
 
 	PR debug/52727
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 19973005be72..3e85fcf3e6ce 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -6487,7 +6487,9 @@ push_regs (HARD_REG_SET *mask, int interrupt_handler)
 	    use_movml = true;
 	}
 
-      if (use_movml)
+      if (sh_cfun_resbank_handler_p ())
+	; /* Do nothing.  */
+      else if (use_movml)
 	{
 	  rtx x, mem, reg, set;
 	  rtx sp_reg = gen_rtx_REG (SImode, STACK_POINTER_REGNUM);
@@ -7485,7 +7487,9 @@ sh_expand_epilogue (bool sibcall_p)
 		use_movml = true;
 	    }
 
-	  if (use_movml)
+	  if (sh_cfun_resbank_handler_p ())
+	    ; /* Do nothing.  */
+	  else if (use_movml)
 	    {
 	      rtx sp_reg = gen_rtx_REG (SImode, STACK_POINTER_REGNUM);
 
-- 
GitLab