aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390/s390.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2015-08-06 10:23:38 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2015-08-06 10:23:38 +0000
commit7e5c37460676745c3ab8b92e4d08d5a702eb06b1 (patch)
tree76fdf257c9b26078be38123caa519b116b17fb92 /gcc/config/s390/s390.c
parentc914ac45c7670c710f3ec17dbd5341e55ae2380f (diff)
downloadgcc-7e5c37460676745c3ab8b92e4d08d5a702eb06b1.zip
gcc-7e5c37460676745c3ab8b92e4d08d5a702eb06b1.tar.gz
gcc-7e5c37460676745c3ab8b92e4d08d5a702eb06b1.tar.bz2
S/390: Fix dwarf reg size table for -m31 -mzarch.
gcc/ChangeLog: * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for all GPRs. gcc/testsuite/ChangeLog: * gcc.target/s390/dwarfregtable-1.c: New test. * gcc.target/s390/dwarfregtable-2.c: New test. * gcc.target/s390/dwarfregtable-3.c: New test. From-SVN: r226673
Diffstat (limited to 'gcc/config/s390/s390.c')
-rw-r--r--gcc/config/s390/s390.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 24a9290..5814694 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -6497,6 +6497,10 @@ s390_dwarf_frame_reg_mode (int regno)
{
machine_mode save_mode = default_dwarf_frame_reg_mode (regno);
+ /* Make sure not to return DImode for any GPR with -m31 -mzarch. */
+ if (GENERAL_REGNO_P (regno))
+ save_mode = Pmode;
+
/* The rightmost 64 bits of vector registers are call-clobbered. */
if (GET_MODE_SIZE (save_mode) > 8)
save_mode = DImode;