[gcc(refs/users/marxin/heads/marxin-gcc-benchmark-branch)] IBM Z: zTPF: Prevent FPR usage
Martin Liska
marxin@gcc.gnu.org
Mon Mar 30 10:36:07 GMT 2020
https://gcc.gnu.org/g:14cb388b743ba1222da261926d3b0934d695deb2
commit 14cb388b743ba1222da261926d3b0934d695deb2
Author: Andreas Krebbel <krebbel@linux.ibm.com>
Date: Wed Mar 4 13:29:39 2020 +0100
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.
Diff:
---
gcc/config/s390/s390.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 31af842eb35..ae2be36e65d 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
More information about the Gcc-cvs
mailing list