aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-11-10 04:39:00 +0000
committerRichard Stallman <rms@gnu.org>1993-11-10 04:39:00 +0000
commit4d889da99547edd69603738a14ea0560537bdb5e (patch)
tree1e179a43fe0bd389ebfa9121c7a74e83f9e27d65
parent92b0556de3f14fcc8c10fde3b66f8dac95258b8e (diff)
downloadgcc-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.c5
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)