Problem with address reloading

2006-06-08 Thread Juul Vanderspek
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

RE: Problem with address reloading

2006-06-08 Thread Dave Korn
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.

RE: Problem with address reloading

2006-06-08 Thread Juul Vanderspek
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

RE: Problem with address reloading

2006-06-08 Thread Dave Korn
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

RE: Problem with address reloading

2006-06-08 Thread Juul Vanderspek
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

Re: Problem with address reloading

2006-06-08 Thread Jim Wilson
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.