(calc_live_regs): For pragma_interrupt case...
authorJim Wilson <wilson@gcc.gnu.org>
Mon, 8 Jul 1996 22:33:09 +0000 (15:33 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Mon, 8 Jul 1996 22:33:09 +0000 (15:33 -0700)
(calc_live_regs): For pragma_interrupt case, exclude call
clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG.

From-SVN: r12415

gcc/config/sh/sh.c

index 7e0d8cc8f96e8c86c5668522cefa28611fbec50e..33fc6acfeba0e1e610d5b337035a8e5e53b350af 100644 (file)
@@ -1879,7 +1879,10 @@ calc_live_regs (count_ptr, live_regs_mask2)
        {
          /* Need to save all the regs ever live.  */
          if ((regs_ever_live[reg]
-              || (call_used_regs[reg] && regs_ever_live[PR_REG]))
+              || (call_used_regs[reg] && ! fixed_regs[reg]
+                  && regs_ever_live[PR_REG])
+              || reg == MACH_REG
+              || reg == MACL_REG)
              && reg != STACK_POINTER_REGNUM && reg != ARG_POINTER_REGNUM
              && reg != T_REG && reg != GBR_REG)
            {