From c9b4de06772eb2125143f7f888cb7bd8050bedc2 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Sun, 15 Feb 1998 17:07:31 +0000 Subject: [PATCH] Fix Irix6 EH failures, was broken by mips16 patch. * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. From-SVN: r18013 --- gcc/ChangeLog | 4 ++++ gcc/config/mips/mips.h | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fdc3cb6be9e..48f76cf948d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sun Feb 15 17:05:41 1998 Jim Wilson + + * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. + Sun Feb 15 15:23:15 1998 John Carr * alias.c: Include and . diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 3204dee22c9..b68d660608d 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2152,8 +2152,12 @@ extern struct mips_frame_info current_frame_info; - ((mips_abi != ABI_32 && mips_abi != ABI_EABI) \ ? current_function_pretend_args_size \ : 0)); \ + /* Some ABIs store 64 bits to the stack, but Pmode is 32 bits, \ + so we must add 4 bytes to the offset to get the right value. */ \ else if ((FROM) == RETURN_ADDRESS_POINTER_REGNUM) \ - (OFFSET) = current_frame_info.gp_sp_offset; \ + (OFFSET) = current_frame_info.gp_sp_offset \ + + ((UNITS_PER_WORD - (POINTER_SIZE / BITS_PER_UNIT)) \ + * (BYTES_BIG_ENDIAN != 0)); \ } /* If we generate an insn to push BYTES bytes, -- 2.30.2