aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1998-02-15 17:07:31 +0000
committerJim Wilson <wilson@gcc.gnu.org>1998-02-15 09:07:31 -0800
commitc9b4de06772eb2125143f7f888cb7bd8050bedc2 (patch)
tree07c9ed1a9216a95b9d6ffefa3b29b1ed0264f8c0
parent9f8f10de394cd89faec27bb02f8410eb0ea7742e (diff)
downloadgcc-c9b4de06772eb2125143f7f888cb7bd8050bedc2.zip
gcc-c9b4de06772eb2125143f7f888cb7bd8050bedc2.tar.gz
gcc-c9b4de06772eb2125143f7f888cb7bd8050bedc2.tar.bz2
Fix Irix6 EH failures, was broken by mips16 patch.
* mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. From-SVN: r18013
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/mips/mips.h6
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fdc3cb6..48f76cf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sun Feb 15 17:05:41 1998 Jim Wilson <wilson@cygnus.com>
+
+ * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change.
+
Sun Feb 15 15:23:15 1998 John Carr <jfc@mit.edu>
* alias.c: Include <stdlib.h> and <string.h>.
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 3204dee..b68d660 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,