rs6000.c (rs6000_preferred_reload_class): Disallow reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS...
2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax constraint on constants to permit them being loaded into GENERAL_REGS or BASE_REGS. From-SVN: r208287
This commit is contained in:
parent
a10d35a8ba
commit
b46ed885d9
@ -1,3 +1,10 @@
|
||||
2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||
|
||||
* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
|
||||
reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
|
||||
constraint on constants to permit them being loaded into
|
||||
GENERAL_REGS or BASE_REGS.
|
||||
|
||||
2014-03-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
|
||||
|
@ -16751,8 +16751,14 @@ rs6000_preferred_reload_class (rtx x, enum reg_class rclass)
|
||||
&& easy_vector_constant (x, mode))
|
||||
return ALTIVEC_REGS;
|
||||
|
||||
if (CONSTANT_P (x) && reg_classes_intersect_p (rclass, FLOAT_REGS))
|
||||
return NO_REGS;
|
||||
if ((CONSTANT_P (x) || GET_CODE (x) == PLUS))
|
||||
{
|
||||
if (reg_class_subset_p (GENERAL_REGS, rclass))
|
||||
return GENERAL_REGS;
|
||||
if (reg_class_subset_p (BASE_REGS, rclass))
|
||||
return BASE_REGS;
|
||||
return NO_REGS;
|
||||
}
|
||||
|
||||
if (GET_MODE_CLASS (mode) == MODE_INT && rclass == NON_SPECIAL_REGS)
|
||||
return GENERAL_REGS;
|
||||
|
Loading…
Reference in New Issue
Block a user