OSDN Git Service

(PIC_OFFSET_TABLE_MASK): New macro.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Nov 1993 04:39:00 +0000 (04:39 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Nov 1993 04:39:00 +0000 (04:39 +0000)
(function_epilogue): When -mabicalls, ignore
PIC_OFFSET_TABLE_REGNUM when calculating load_only_r31.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6048 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/mips/mips.c

index 1cc3f01..6434224 100644 (file)
@@ -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)