diff options
author | Andreas Krebbel <krebbel@linux.ibm.com> | 2020-03-04 13:29:39 +0100 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.ibm.com> | 2020-03-04 13:52:28 +0100 |
commit | 14cb388b743ba1222da261926d3b0934d695deb2 (patch) | |
tree | af9c2072e65a3631d348c8e71f4ac2085e7b5513 /gcc | |
parent | 0993851dc131608a49da294a9ca7dd102df349ab (diff) | |
download | gcc-14cb388b743ba1222da261926d3b0934d695deb2.zip gcc-14cb388b743ba1222da261926d3b0934d695deb2.tar.gz gcc-14cb388b743ba1222da261926d3b0934d695deb2.tar.bz2 |
IBM Z: zTPF: Prevent FPR usage
For the zTPF we must not use floating point registers.
gcc/ChangeLog:
2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
* config/s390/s390.c (s390_secondary_memory_needed): Disallow
direct FPR-GPR copies.
(s390_register_info_gprtofpr): Disallow GPR content to be saved in
FPRs.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/s390/s390.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 31af842..ae2be36 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -4647,7 +4647,8 @@ s390_secondary_memory_needed (machine_mode mode, && reg_classes_intersect_p (class2, GENERAL_REGS)) || (reg_classes_intersect_p (class1, GENERAL_REGS) && reg_classes_intersect_p (class2, VEC_REGS))) - && (!TARGET_DFP || !TARGET_64BIT || GET_MODE_SIZE (mode) != 8) + && (TARGET_TPF || !TARGET_DFP || !TARGET_64BIT + || GET_MODE_SIZE (mode) != 8) && (!TARGET_VX || (SCALAR_FLOAT_MODE_P (mode) && GET_MODE_SIZE (mode) > 8))); } @@ -9554,7 +9555,7 @@ s390_register_info_gprtofpr () int save_reg_slot = FPR0_REGNUM; int i, j; - if (!TARGET_Z10 || !TARGET_HARD_FLOAT || !crtl->is_leaf) + if (TARGET_TPF || !TARGET_Z10 || !TARGET_HARD_FLOAT || !crtl->is_leaf) return; /* builtin_eh_return needs to be able to modify the return address |