[Bug target/63762] [ARM]GCC generates UNPREDICTABLE STR with Rn = Rt when hard-float abi is used

renlin.li at arm dot com gcc-bugzilla@gcc.gnu.org
Thu Nov 13 15:12:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63762

--- Comment #2 from Renlin Li <renlin.li at arm dot com> ---
r278 is derived from r224 which is a VFP_LO_REGS.

find_cost_and_classes assigns r278's class as GENERAL_REGS, and assign it
hard_reg 2. Another new pseudo register r290 is created from r278, and assigned
to the same hard_register and register class (GENERAL_REGS).

The pref_class of r290 is derived from its original reg (r224), which is
VFP_LO_REGS

In lra during the hard register assignment process, conflict is checked for
r302 which is a GENERAL_REGS. r290 is not considered, because of different
register classes(reg_pref[290].pref_class == VFP_LO_REGS ). Hard register
number 2 is chosen in this case.



More information about the Gcc-bugs mailing list