This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [cft] subreg validation round 2
Richard Henderson <rth@redhat.com> writes:
> On Wed, Nov 17, 2004 at 11:18:41AM -0800, Bob Wilson wrote:
>> Is this my bug?
>
> Yes. BLKmode REGs are illegal.
I realise that they are in general, but it's fairly clear that,
for example, FUNCTION_VALUE is allowed to return BLKmode REGs.
Routines like hard_function_value have code that specifically
handles such cases. I'd always thought that FUNCTION_ARG was
in the same boat, and that the argument handling code interpreted
(reg:BLK X) as meaning "as many consecutive registers as necessary,
starting at X".
MIPS's FUNCTION_ARG has returned (reg:BLK reg) for as long as I've
been working on it and it always seems to have been interpreted in
the right way.
Are you saying that FUNCTION_ARG isn't an exception, and that it can
never return a BLKmode REG? If so, what's the correct mode for, say,
a 33 byte value passed in 5 consecutive 64-bit registers? I suppose
the answer is probably "there isn't one, use a PARALLEL", but like I
say, returning BLKmode REGs has worked fine until now, so this does
seem like an interface change.
Richard