Commit 1dd03b91 by Andreas Krebbel Committed by Andreas Krebbel

s390.c (s390_register_move_cost): Don't impose the FPR<->GPR move cost penalty…

s390.c (s390_register_move_cost): Don't impose the FPR<->GPR move cost penalty if ldgr/lgdr can be used.

2013-05-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_register_move_cost): Don't impose the
	FPR<->GPR move cost penalty if ldgr/lgdr can be used.

From-SVN: r198923
parent 3b2453a9
2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_register_move_cost): Don't impose the
FPR<->GPR move cost penalty if ldgr/lgdr can be used.
2013-05-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/57275
......
......@@ -2432,11 +2432,13 @@ static int
s390_register_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
reg_class_t from, reg_class_t to)
{
/* On s390, copy between fprs and gprs is expensive. */
if ((reg_classes_intersect_p (from, GENERAL_REGS)
&& reg_classes_intersect_p (to, FP_REGS))
|| (reg_classes_intersect_p (from, FP_REGS)
&& reg_classes_intersect_p (to, GENERAL_REGS)))
/* On s390, copy between fprs and gprs is expensive as long as no
ldgr/lgdr can be used. */
if ((!TARGET_Z10 || GET_MODE_SIZE (mode) != 8)
&& ((reg_classes_intersect_p (from, GENERAL_REGS)
&& reg_classes_intersect_p (to, FP_REGS))
|| (reg_classes_intersect_p (from, FP_REGS)
&& reg_classes_intersect_p (to, GENERAL_REGS))))
return 10;
return 1;
......
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