diff options
author | Daniel Jacobowitz <dan@codesourcery.com> | 2005-02-11 20:18:59 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@gcc.gnu.org> | 2005-02-11 20:18:59 +0000 |
commit | d04b77acc8b7660ee15f53de421fe0523465fd4b (patch) | |
tree | cda7d323c0e0ef6375bed0b5aa0a37a7d6a8db98 | |
parent | 70406574fcfe67e062bbb8cbc2ca8aa8ae2642a2 (diff) | |
download | gcc-d04b77acc8b7660ee15f53de421fe0523465fd4b.zip gcc-d04b77acc8b7660ee15f53de421fe0523465fd4b.tar.gz gcc-d04b77acc8b7660ee15f53de421fe0523465fd4b.tar.bz2 |
linux-unwind.h (mips_fallback_frame_state): Adjust offsets for the big-endian 32-bit case.
* config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
offsets for the big-endian 32-bit case.
From-SVN: r94888
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/mips/linux-unwind.h | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd6defd..f41bfac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-02-11 Daniel Jacobowitz <dan@codesourcery.com> + + * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust + offsets for the big-endian 32-bit case. + 2005-02-11 Joseph S. Myers <joseph@codesourcery.com> * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define. diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h index afe06cb..8a41c8c 100644 --- a/gcc/config/mips/linux-unwind.h +++ b/gcc/config/mips/linux-unwind.h @@ -86,6 +86,13 @@ mips_fallback_frame_state (struct _Unwind_Context *context, fs->cfa_reg = STACK_POINTER_REGNUM; fs->cfa_offset = new_cfa - (_Unwind_Ptr) context->cfa; +#if _MIPS_SIM == _ABIO32 && defined __MIPSEB__ + /* On o32 Linux, the register save slots in the sigcontext are + eight bytes. We need the lower half of each register slot, + so slide our view of the structure back four bytes. */ + new_cfa -= 4; +#endif + for (i = 0; i < 32; i++) { fs->regs.reg[i].how = REG_SAVED_OFFSET; fs->regs.reg[i].loc.offset |