[PING^3] Fix reloading of paradoxical subregs into even-only registers
Richard Sandiford
rdsandiford@googlemail.com
Wed Aug 20 19:45:00 GMT 2008
Michael Matz <matz@suse.de> writes:
> Hi,
>
> On Tue, 19 Aug 2008, H.J. Lu wrote:
>
>> I still got
>>
>> +FAIL: gcc.dg/compat/scalar-by-value-3 c_compat_x_tst.o compile,
>> (internal compiler error)
>> +FAIL: gcc.dg/compat/scalar-by-value-6 c_compat_x_tst.o compile,
>> (internal compiler error)
>> +FAIL: gcc.dg/compat/scalar-return-3 c_compat_x_tst.o compile,
>> (internal compiler error)
>> +FAIL: gcc.dg/compat/struct-by-value-18 c_compat_x_tst.o compile,
>> (internal compiler error)
>
> Lovely. The ia64 port disallows XFmode and XCmode in integer registers,
> but nevertheless insists on putting such values into outgoing regs for
> function calls (with stdarg/vararg). It expects that the movxf expander
> fixes this up (and it does). This invalid subreg never lands in any
> instruction.
>
> Richard S.: any ideas?
'Fraid not. I agree that using PARALLEL is the right way to express an
argument that isn't OK for the complete mode. But the ia64 port clearly
thinks that it should be allowed to do what it's doing, so the rules are
different from what I thought they were. I've reverted the patch.
I suppose we need a new predicate: "can we simply this subreg to a reg?"
Richard
More information about the Gcc-patches
mailing list