This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [MIPS64] Problems when Passing TImode Parameters in EABI
- From: Richard Sandiford <richard at codesourcery dot com>
- To: "Fu, Chao-Ying" <fu at mips dot com>
- Cc: <gcc at gcc dot gnu dot org>, "Thekkath, Radhika" <radhika at mips dot com>, "Stephens, Nigel" <nigel at mips dot com>
- Date: Thu, 05 Oct 2006 12:26:55 +0100
- Subject: Re: [MIPS64] Problems when Passing TImode Parameters in EABI
- References: <3CB54817FDF733459B230DD27C690CEC012BB144@Exchange.mips.com>
"Fu, Chao-Ying" <fu@mips.com> writes:
> I think there is a bug in mips_pass_by_reference when the mips abi
> is EABI to pass TImode parameters.
Good catch.
> Does someone know how to pass TImode parameters in EABI? Thanks!
I imagine this case wasn't specifically considered. The EABI calls
for double-word integers to be passed by value on 32-bit targets,
so if 128-bit integers had been considered, I imagine the EABI
would call for them to be handled in the same way on 64-bit targets.
As it is, the EABI uses stack passing as the fallback case for
"parameters not otherwise handled above". So I think the type
!= NULL case is doing the right thing. Sticking with it also
has the advantage that it wouldn't break backward compatiblity
for cases that currently work. I don't think this particular
case has ever worked for libcalls.
I'll whip up a patch tonight. I imagine this is also the reason for the
gcc.dg/torture/fp-int-convert-timode.c failures on mipsisa64-elf, which
I haven't had the spare time to look at yet.
Richard