diff options
author | Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | 2013-07-23 07:20:52 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2013-07-23 07:20:52 +0000 |
commit | 902a3fafbee71c3ad798555c0f6f2732a17fb8fc (patch) | |
tree | 096e6f760e02e2f9ccab0cdd8e6ba149d4784f2b /libgcc | |
parent | 5f9ae7f2d6fa96a0107bbfc9e8d7cd3727fcf2d0 (diff) | |
download | gcc-902a3fafbee71c3ad798555c0f6f2732a17fb8fc.zip gcc-902a3fafbee71c3ad798555c0f6f2732a17fb8fc.tar.gz gcc-902a3fafbee71c3ad798555c0f6f2732a17fb8fc.tar.bz2 |
linux-unwind.h: Use the proper dwarf to hard reg mapping for FPRs when...
2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/linux-unwind.h: Use the proper dwarf to hard reg
mapping for FPRs when creating the fallback framestate.
From-SVN: r201156
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config/s390/linux-unwind.h | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 9020a64..78700d7 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + + * config/s390/linux-unwind.h: Use the proper dwarf to hard reg + mapping for FPRs when creating the fallback framestate. + 2013-07-19 Georg-Johann Lay <avr@gjlay.de> PR target/57516 diff --git a/libgcc/config/s390/linux-unwind.h b/libgcc/config/s390/linux-unwind.h index e497ce3..6860916 100644 --- a/libgcc/config/s390/linux-unwind.h +++ b/libgcc/config/s390/linux-unwind.h @@ -31,6 +31,8 @@ static _Unwind_Reason_Code s390_fallback_frame_state (struct _Unwind_Context *context, _Unwind_FrameState *fs) { + static const unsigned char dwarf_to_fpr_map[16] = + { 0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15 }; unsigned char *pc = context->ra; long new_cfa; int i; @@ -112,7 +114,7 @@ s390_fallback_frame_state (struct _Unwind_Context *context, { fs->regs.reg[16+i].how = REG_SAVED_OFFSET; fs->regs.reg[16+i].loc.offset = - (long)®s->fprs[i] - new_cfa; + (long)®s->fprs[dwarf_to_fpr_map[i]] - new_cfa; } /* Load return addr from PSW into dummy register 32. */ |