OSDN Git Service

(calc_live_regs): For pragma_interrupt case, exclude call
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Jul 1996 22:33:09 +0000 (22:33 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Jul 1996 22:33:09 +0000 (22:33 +0000)
clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG.

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

gcc/config/sh/sh.c

index 7e0d8cc..33fc6ac 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)
            {