reload.c (find_reloads): Don't clear badop if we have a winreg alternative...
authorBernd Schmidt <bernds@codesourcery.com>
Fri, 9 Jul 2010 21:40:48 +0000 (21:40 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 9 Jul 2010 21:40:48 +0000 (21:40 +0000)
commitc033690d7e2108d2b7ddbb37d488a6f1519eedff
tree0f4ba6c4f6978df7d77d7f9b7c320a76b3712099
parente8edaf9523c61dfbdeac886069badf12ff981973
reload.c (find_reloads): Don't clear badop if we have a winreg alternative...

* reload.c (find_reloads): Don't clear badop if we have a
winreg alternative, but not win, and the class only has fixed
regs.
* hard-reg-set.h (class_only_fixed_regs): Declare.
* reginfo.c (class_only_fixed_regs): New array.
(init_reg_sets_1): Initialize it.
* config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
discourage alternatives using the stack pointer.

testsuite/
* gcc.dg/pr32370.c: Allow another kind of error message.

From-SVN: r162019
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/hard-reg-set.h
gcc/reginfo.c
gcc/reload.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr32370.c