This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Pseudo register replaced by a symbol_ref


In my port I can't load from a symbol_ref. Because of this the pattern
(set (reg:DF 25)
(mem:DF (symbol_ref:SI ("*LLC0"))))
is replaced by a
(set (reg:DF 25)
(mem:DF (reg:SI 38)))
in movdf using force_reg. The problem is that if GCC can't find a hard register for this pseudo it is replacing it with a symbol_ref again. This is done in find_reloads() in reload.c:2687 (version 3.2.3). How can I tell GCC that it can't do that?


In the documentation, I have read that the strict version of GO_IF_LEGATIMATE_ADDRESS has to handle a pseudo register as a memory reference. reload.c is using the strict version. Do I have to handle it as a potensial symbol_ref too?

Thanks,

Anders


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]