diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1996-07-08 15:33:09 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1996-07-08 15:33:09 -0700 |
commit | 20fef67b3a838159549878ac4436e748d4f446dc (patch) | |
tree | e16d327ca1dc332d5aa2e2a490a595481a138b03 /gcc | |
parent | 2b4092f276fb36dec91e680adde30c6be13248fd (diff) | |
download | gcc-20fef67b3a838159549878ac4436e748d4f446dc.zip gcc-20fef67b3a838159549878ac4436e748d4f446dc.tar.gz gcc-20fef67b3a838159549878ac4436e748d4f446dc.tar.bz2 |
(calc_live_regs): For pragma_interrupt case...
(calc_live_regs): For pragma_interrupt case, exclude call
clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG.
From-SVN: r12415
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sh/sh.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 7e0d8cc..33fc6ac 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -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) { |