Hi, as Richard said, only a subset of rclass is allowed to be returned by preferred_reload_class. I've tested the attached patched in Thumb mode, on ARMv5, A9 and A9hf and on cross A15 without regression.
Yvan 2013-11-20 Yvan Roux <yvan.r...@linaro.org> PR target/58785 * config/arm/arm.c (arm_preferred_reload_class): Only return LO_REGS when rclass is GENERAL_REGS.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 5c53440..63f10bd 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -6882,10 +6882,7 @@ arm_preferred_reload_class (rtx x ATTRIBUTE_UNUSED, reg_class_t rclass) return rclass; else { - if (rclass == GENERAL_REGS - || rclass == HI_REGS - || rclass == NO_REGS - || rclass == STACK_REG) + if (rclass == GENERAL_REGS) return LO_REGS; else return rclass;