Commit 14cb388b by Andreas Krebbel

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.
parent 0993851d
...@@ -4647,7 +4647,8 @@ s390_secondary_memory_needed (machine_mode mode, ...@@ -4647,7 +4647,8 @@ s390_secondary_memory_needed (machine_mode mode,
&& reg_classes_intersect_p (class2, GENERAL_REGS)) && reg_classes_intersect_p (class2, GENERAL_REGS))
|| (reg_classes_intersect_p (class1, GENERAL_REGS) || (reg_classes_intersect_p (class1, GENERAL_REGS)
&& reg_classes_intersect_p (class2, VEC_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) && (!TARGET_VX || (SCALAR_FLOAT_MODE_P (mode)
&& GET_MODE_SIZE (mode) > 8))); && GET_MODE_SIZE (mode) > 8)));
} }
...@@ -9554,7 +9555,7 @@ s390_register_info_gprtofpr () ...@@ -9554,7 +9555,7 @@ s390_register_info_gprtofpr ()
int save_reg_slot = FPR0_REGNUM; int save_reg_slot = FPR0_REGNUM;
int i, j; int i, j;
if (!TARGET_Z10 || !TARGET_HARD_FLOAT || !crtl->is_leaf) if (TARGET_TPF || !TARGET_Z10 || !TARGET_HARD_FLOAT || !crtl->is_leaf)
return; return;
/* builtin_eh_return needs to be able to modify the return address /* builtin_eh_return needs to be able to modify the return address
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment