* config/sh/sh.c (push_regs): Skip banked registers when
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Mar 2012 21:41:45 +0000 (21:41 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 30 Mar 2012 21:41:45 +0000 (21:41 +0000)
resbank attribute is specified.
(sh_expand_epilogue): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186024 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sh/sh.c

index 294ccaa..d043b8f 100644 (file)
@@ -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
index 1997300..3e85fcf 100644 (file)
@@ -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);