Commit 3717616b by Alan Modra Committed by Alan Modra

[RS6000] Delete duplicate code

This removes the duplicate (TARGET_POWERPC64 && size == 16) block.

	* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
	Delete duplicated code.

From-SVN: r239009
parent 749f7c44
2016-08-03 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
Delete duplicated code.
2016-08-02 Vladimir Makarov <vmakarov@redhat.com> 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/72778 PR middle-end/72778
......
...@@ -19599,50 +19599,11 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type, ...@@ -19599,50 +19599,11 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type,
int cost = 0; int cost = 0;
int size = GET_MODE_SIZE (mode); int size = GET_MODE_SIZE (mode);
if (TARGET_POWERPC64)
{
if (size == 16)
{
/* Handle moving 128-bit values from GPRs to VSX point registers on
ISA 2.07 (power8, power9) when running in 64-bit mode using
XXPERMDI to glue the two 64-bit values back together. */
if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 3; /* 2 mtvsrd's, 1 xxpermdi. */
icode = reg_addr[mode].reload_vsx_gpr;
}
/* Handle moving 128-bit values from VSX point registers to GPRs on
ISA 2.07 when running in 64-bit mode using XXPERMDI to get access to the
bottom 64-bit value. */
else if (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)
{
cost = 3; /* 2 mfvsrd's, 1 xxpermdi. */
icode = reg_addr[mode].reload_gpr_vsx;
}
}
else if (mode == SFmode)
{
if (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)
{
cost = 3; /* xscvdpspn, mfvsrd, and. */
icode = reg_addr[mode].reload_gpr_vsx;
}
else if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 2; /* mtvsrz, xscvspdpn. */
icode = reg_addr[mode].reload_vsx_gpr;
}
}
}
if (TARGET_POWERPC64 && size == 16) if (TARGET_POWERPC64 && size == 16)
{ {
/* Handle moving 128-bit values from GPRs to VSX point registers on /* Handle moving 128-bit values from GPRs to VSX point registers on
ISA 2.07 when running in 64-bit mode using XXPERMDI to glue the two ISA 2.07 (power8, power9) when running in 64-bit mode using
64-bit values back together. */ XXPERMDI to glue the two 64-bit values back together. */
if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE) if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{ {
cost = 3; /* 2 mtvsrd's, 1 xxpermdi. */ cost = 3; /* 2 mtvsrd's, 1 xxpermdi. */
...@@ -19659,6 +19620,21 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type, ...@@ -19659,6 +19620,21 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type,
} }
} }
else if (TARGET_POWERPC64 && mode == SFmode)
{
if (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)
{
cost = 3; /* xscvdpspn, mfvsrd, and. */
icode = reg_addr[mode].reload_gpr_vsx;
}
else if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 2; /* mtvsrz, xscvspdpn. */
icode = reg_addr[mode].reload_vsx_gpr;
}
}
else if (!TARGET_POWERPC64 && size == 8) else if (!TARGET_POWERPC64 && size == 8)
{ {
/* Handle moving 64-bit values from GPRs to floating point registers on /* Handle moving 64-bit values from GPRs to floating point registers on
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