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. re

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 Vander

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
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 >

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 noth

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 Rb+imm)