Commit b46ed885 by Bill Schmidt Committed by William Schmidt

rs6000.c (rs6000_preferred_reload_class): Disallow reload of PLUS rtx's outside…

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
parent a10d35a8
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> 2014-03-03 Nick Clifton <nickc@redhat.com>
* config/rl78/rl78-real.md (cbranchsi4_real_signed): Add * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
......
...@@ -16751,8 +16751,14 @@ rs6000_preferred_reload_class (rtx x, enum reg_class rclass) ...@@ -16751,8 +16751,14 @@ rs6000_preferred_reload_class (rtx x, enum reg_class rclass)
&& easy_vector_constant (x, mode)) && easy_vector_constant (x, mode))
return ALTIVEC_REGS; return ALTIVEC_REGS;
if (CONSTANT_P (x) && reg_classes_intersect_p (rclass, FLOAT_REGS)) if ((CONSTANT_P (x) || GET_CODE (x) == PLUS))
return NO_REGS; {
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) if (GET_MODE_CLASS (mode) == MODE_INT && rclass == NON_SPECIAL_REGS)
return GENERAL_REGS; return GENERAL_REGS;
......
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