Re: GO_IF_LEGITIMATE_ADDRESS handling different addressing modes for load/store

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Jeff for the clue.  Much appreciated.

Regards
Ayonam


On 29 November 2012 00:14, Jeff Law <law@xxxxxxxxxx> wrote:
> On 11/28/2012 11:37 AM, Ayonam Ray wrote:
>>
>> Hi,
>>
>> My architecture allows base + immed and base + index for loads but
>> allows only base + immed for stores.  How do I differentiate between
>> them in the macro GO_IF_LEGITIMATE_ADDRESS?  I only get the MEM rtx in
>> that macro and have no clue whether the operand is an address for a
>> load or a store.  Is there any other way that I can differentiate
>> between them?
>
> You can't differentiate them.  Fundamentally the register allocator assumes
> that a memory address is either valid or invalid regardless of whether or
> not it's a load or store.
>
> What ports have done in the past with this situation is to support the
> lowest common denominator in the movxx pattern, then add special constraints
> for the cases that are only available on the load (or store).
>
> For an example, see how indexed addressing modes are handled on the PA.  It
> has integer indexed loads, but no integer indexed stores.  It has indexed
> loads and stores for floating point types.
>
> jeff


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux