[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
This commit is contained in:
parent
749f7c4466
commit
3717616ba7
2 changed files with 22 additions and 41 deletions
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
PR middle-end/72778
|
||||
|
|
|
@ -19599,50 +19599,11 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type,
|
|||
int cost = 0;
|
||||
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)
|
||||
{
|
||||
/* 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
|
||||
64-bit values back together. */
|
||||
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. */
|
||||
|
@ -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)
|
||||
{
|
||||
/* Handle moving 64-bit values from GPRs to floating point registers on
|
||||
|
|
Loading…
Add table
Reference in a new issue