(calc_live_regs): need not save MACL/MACH when not live, and in leaf function.
authorJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 11 Feb 1997 20:53:36 +0000 (20:53 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 11 Feb 1997 20:53:36 +0000 (20:53 +0000)
From-SVN: r13627

gcc/config/sh/sh.c

index 0ffdeae79caa200cf211d99da725da5234e64495..0f3a94f7420265dc063c332de13145463730de6f 100644 (file)
@@ -2590,10 +2590,9 @@ 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] && ! fixed_regs[reg]
-                  && regs_ever_live[PR_REG])
-              || reg == MACH_REG
-              || reg == MACL_REG)
+              || (call_used_regs[reg]
+                  && (! fixed_regs[reg] || reg == MACH_REG || reg == MACL_REG)
+                  && regs_ever_live[PR_REG]))
              && reg != STACK_POINTER_REGNUM && reg != ARG_POINTER_REGNUM
              && reg != RETURN_ADDRESS_POINTER_REGNUM
              && reg != T_REG && reg != GBR_REG)