This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH, i386] Optionally use %xmm0 to return float and/ordouble values
- From: Andi Kleen <ak at muc dot de>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>,Richard Henderson <rth at redhat dot com>, uros at kss-loka dot si,Richard Guenther <richard dot guenther at gmail dot com>
- Date: Tue, 25 Jan 2005 17:09:51 +0100
- Subject: Re: [PATCH, i386] Optionally use %xmm0 to return float and/ordouble values
- References: <41F6642A.firstname.lastname@example.org><20050125160212.GW10340@devserv.devel.redhat.com>
Jakub Jelinek <email@example.com> writes:
> When you make the new ABI user visible (which I'm not 100% sure
> is the right thing, especially in the 4.0 timeframe), then it should IMHO be a
> full new ABI, that uses not just return value passing in register, but also
> argument passing in registers (at least float, double arguments,
> structs containing just one, two floats/doubles or something similar),
> otherwise we end up with a multitude of different ABIs.
Isn't this the long term goal anyways?
I would hope at some point the ABI will be dynamically adjusted
for local functions, e.g. so that you don't need to save registers in the
caller that are not clobbered (the impact on the register allocation
of the caller seems to be often the biggest cost for a function call)
There are probably other optimizations possible too.
I agree that it wouldn't be a good idea to make this all user visible