This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Pseudo register replaced by a symbol_ref
- From: Anders Ãdland <aaadland at atmel dot no>
- To: gcc-list <gcc at gcc dot gnu dot org>
- Date: Fri, 25 Jul 2003 15:54:34 +0200
- Subject: Pseudo register replaced by a symbol_ref
- Organization: Atmel Norway
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