Constraint modifier for partially overlaping operands

Richard Henderson rth@redhat.com
Sat Oct 17 17:35:00 GMT 2009


On 10/16/2009 11:04 PM, Ian Lance Taylor wrote:
> Andrew Hutchinson<andrewhutchinson@cox.net>  writes:
>
>> I can use "=" modifier to make operands use same register and early
>> clobber "&" to avoid overlaps.
>>
>> Is it possible to have or construct a contraint that permits partial
>> overlap operands. (which neither = or&  would allow)
>> The case would be  wide types taking multiple hard registers.
>>
>> eg Input r20..23 Output r22..25
>
> There is no such constraint today.  I suppose it would be possible to
> define such a constraint if it seemed useful.

I'd much prefer if the port decomposed its double word operations and 
used the lower-subreg pass to decompose the double word registers.  At 
which point the register allocator has all of the information it needs 
to do the right thing.


r~



More information about the Gcc mailing list