diff options
author | Richard Stallman <rms@gnu.org> | 1993-11-10 04:39:00 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-11-10 04:39:00 +0000 |
commit | 4d889da99547edd69603738a14ea0560537bdb5e (patch) | |
tree | 1e179a43fe0bd389ebfa9121c7a74e83f9e27d65 | |
parent | 92b0556de3f14fcc8c10fde3b66f8dac95258b8e (diff) | |
download | gcc-4d889da99547edd69603738a14ea0560537bdb5e.zip gcc-4d889da99547edd69603738a14ea0560537bdb5e.tar.gz gcc-4d889da99547edd69603738a14ea0560537bdb5e.tar.bz2 |
(PIC_OFFSET_TABLE_MASK): New macro.
(function_epilogue): When -mabicalls, ignore
PIC_OFFSET_TABLE_REGNUM when calculating load_only_r31.
From-SVN: r6048
-rw-r--r-- | gcc/config/mips/mips.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 1cc3f01..6434224 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4502,6 +4502,7 @@ mips_expand_prologue () /* Do any necessary cleanup after a function to restore stack, frame, and regs. */ #define RA_MASK ((long) 0x80000000) /* 1 << 31 */ +#define PIC_OFFSET_TABLE_MASK (1 << (PIC_OFFSET_TABLE_REGNUM - GP_REG_FIRST)) void function_epilogue (file, size) @@ -4610,7 +4611,9 @@ function_epilogue (file, size) save_restore_insns (FALSE, tmp_rtx, tsize, file); - load_only_r31 = (current_frame_info.mask == RA_MASK + load_only_r31 = (((current_frame_info.mask + & ~ (TARGET_ABICALLS ? PIC_OFFSET_TABLE_MASK : 0)) + == RA_MASK) && current_frame_info.fmask == 0); if (noreorder) |