From 14cb388b743ba1222da261926d3b0934d695deb2 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Wed, 4 Mar 2020 13:29:39 +0100 Subject: [PATCH] IBM Z: zTPF: Prevent FPR usage For the zTPF we must not use floating point registers. gcc/ChangeLog: 2020-03-04 Andreas Krebbel * 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. --- 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 -- 2.30.2