Pseudo register replaced by a symbol_ref
Anders Ådland
aaadland@atmel.no
Fri Jul 25 16:15:00 GMT 2003
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
More information about the Gcc
mailing list