This is the mail archive of the
mailing list for the GCC project.
Re: Constraint modifier for partially overlaping operands
- From: Richard Henderson <rth at redhat dot com>
- To: gcc-help at gcc dot gnu dot org
- Cc: Andrew Hutchinson <andrewhutchinson at cox dot net>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Sat, 17 Oct 2009 10:01:40 -0700
- Subject: Re: Constraint modifier for partially overlaping operands
- References: <4AD927C3.email@example.com> <firstname.lastname@example.org>
On 10/16/2009 11:04 PM, Ian Lance Taylor wrote:
Andrew Hutchinson<email@example.com> 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.