summaryrefslogtreecommitdiffstats
path: root/libgcc
diff options
context:
space:
mode:
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-23 07:20:52 +0000
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-23 07:20:52 +0000
commite6270f6ff6bc097f9431084a109b767c5c4d1373 (patch)
tree096e6f760e02e2f9ccab0cdd8e6ba149d4784f2b /libgcc
parent3498b414fef5ad852f6f1feb4ab22b8e7529186b (diff)
downloadppe42-gcc-e6270f6ff6bc097f9431084a109b767c5c4d1373.tar.gz
ppe42-gcc-e6270f6ff6bc097f9431084a109b767c5c4d1373.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201156 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/s390/linux-unwind.h4
2 files changed, 8 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 9020a643946..78700d7a15c 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 e497ce38d3a..68609169707 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)&regs->fprs[i] - new_cfa;
+ (long)&regs->fprs[dwarf_to_fpr_map[i]] - new_cfa;
}
/* Load return addr from PSW into dummy register 32. */
OpenPOWER on IntegriCloud