diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2002-11-18 12:35:15 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2002-11-18 12:35:15 +0000 |
commit | 180bde4f78fdc3c07ed45f8219a130f94a214171 (patch) | |
tree | b2c6499d86283af51031fc33d53928642c892e4b /gcc/config/sh/sh.c | |
parent | e300c78c25b7afa6ebf258572c015cccb4897e38 (diff) | |
download | gcc-180bde4f78fdc3c07ed45f8219a130f94a214171.zip gcc-180bde4f78fdc3c07ed45f8219a130f94a214171.tar.gz gcc-180bde4f78fdc3c07ed45f8219a130f94a214171.tar.bz2 |
sh.c (calc_live_regs): Update check for PIC liveness in compact code.
* config/sh/sh.c (calc_live_regs): Update check for PIC liveness
in compact code.
From-SVN: r59212
Diffstat (limited to 'gcc/config/sh/sh.c')
-rw-r--r-- | gcc/config/sh/sh.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 0ce5e06..1b3f92d 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -4456,7 +4456,11 @@ calc_live_regs (count_ptr, live_regs_mask) && reg != RETURN_ADDRESS_POINTER_REGNUM && reg != T_REG && reg != GBR_REG) : (/* Only push those regs which are used and need to be saved. */ - regs_ever_live[reg] && ! call_used_regs[reg])) + (TARGET_SHCOMPACT + && flag_pic + && current_function_args_info.call_cookie + && reg == PIC_OFFSET_TABLE_REGNUM) + || (regs_ever_live[reg] && ! call_used_regs[reg]))) { live_regs_mask[reg / 32] |= 1 << (reg % 32); count += GET_MODE_SIZE (REGISTER_NATURAL_MODE (reg)); |