diff options
Diffstat (limited to 'gcc/config/mips/mips.h')
-rw-r--r-- | gcc/config/mips/mips.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 7e3d57e7300..e14073ab2be 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2081,12 +2081,20 @@ enum reg_class #define STACK_GROWS_DOWNWARD -/* The offset of the first local variable from the beginning of the frame. - See mips_compute_frame_info for details about the frame layout. */ +#define FRAME_GROWS_DOWNWARD flag_stack_protect -#define STARTING_FRAME_OFFSET \ - (crtl->outgoing_args_size \ - + (TARGET_CALL_CLOBBERED_GP ? MIPS_STACK_ALIGN (UNITS_PER_WORD) : 0)) +/* Size of the area allocated in the frame to save the GP. */ + +#define MIPS_GP_SAVE_AREA_SIZE \ + (TARGET_CALL_CLOBBERED_GP ? MIPS_STACK_ALIGN (UNITS_PER_WORD) : 0) + +/* The offset of the first local variable from the frame pointer. See + mips_compute_frame_info for details about the frame layout. */ + +#define STARTING_FRAME_OFFSET \ + (FRAME_GROWS_DOWNWARD \ + ? 0 \ + : crtl->outgoing_args_size + MIPS_GP_SAVE_AREA_SIZE) #define RETURN_ADDR_RTX mips_return_addr |