This is the mail archive of the
mailing list for the GCC project.
Re: dangerous cleverness? ppc int<->float conversions, subreg
- To: Joern Rennecke <amylaar at onetel dot net dot uk>
- Subject: Re: dangerous cleverness? ppc int<->float conversions, subreg
- From: Zack Weinberg <zack at codesourcery dot com>
- Date: Mon, 29 Oct 2001 22:14:16 -0800
- Cc: Richard Henderson <rth at redhat dot com>, gcc at gcc dot gnu dot org
- References: <20011026122447.G14501@codesourcery.com> <200110270125.CAA25058@meolyon.local>
On Sat, Oct 27, 2001 at 02:25:12AM +0100, Joern Rennecke wrote:
> OTOH, if you can get the compiler to understand the varargs call sites enough
> to determine if fp is used or not, you'll get more milage by having two
> entry points for varargs functions: one that does fp regs varargs setup
> and register saves where appropriate, and one that elides them.
This sounds sort of like what PPC turns out to do already: if bit 6 of
the condition register is set, the caller passed floating point
arguments; otherwise not.
I could probably recycle the code to do this for other targets with
the same problem. The main one that Wind River's interested in is
SH. I've been having trouble finding coherent docs of its ABI and
floating point model; maybe you can shed some light?
I am concerned about breaking compatibility with other compilers for
VxWorks if I start mucking with the calling convention like this -
there's another (proprietary) compiler used, and they have to
interoperate down to function call level. They do have the ability to
modify that compiler, though.