I would appreciate any help in this reload problem
that I have been struggling with for some time:
I completed a gcc back end port to a processor that
supports both displaced and indexed addressing modes
for load, but only displaced for store. For example:
ld.w Rd Rb imm(load from
On 08 June 2006 17:44, Juul Vanderspek wrote:
Tracing all this in find_reloads (reload.c), I see a
call to find_reloads_address, indeed with reload type
RELOAD_FOR_OUTPUT_ADDRESS, but this function
immediately discovers that the address is a
strict_memory_address, and decides to do nothing.
Um, this just is a collapse of some large macro.
The original compiles into a compiler that refuses to
reload.
#define GO_IF_LEGITIMATE_ADDRESS ... \
-- recognizes register, displaced, and indexed --
Oh, yes. That's not valid C at all.
cheers,
DaveK
--
Can't
On 08 June 2006 18:54, Juul Vanderspek wrote:
Um, this just is a collapse of some large macro.
The original compiles into a compiler that refuses to
reload.
The point I was making was that if you think there's a problem with that
macro, and you've posted to the list to ask if anyone can
I collapsed the macro exactly because I am pretty sure
that this macro is ok (I have extensively verified
that it works), and to keep the
initial message small. I have attached my complete
configuration file this time.
--- Dave Korn [EMAIL PROTECTED] wrote:
On 08 June 2006 18:54, Juul
Juul Vanderspek wrote:
In order to enable indexed loads, I extended
GO_IF_LEGITIMATE_ADDRESS to also match indexed
addresses, added a memory constraint 'R' to match
nonindexed addresses, and used R for stores in the
'mov' rule (see below).
This may be easier if you do it the other way. I.e.