This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 32bit Calling conventions on linux/ppc.



On Dec 12, 2006, at 11:42 AM, David Edelsohn wrote:


Joslwah writes:

Joslwah> Looking at the Linux 32bit PowerPC ABI spec, it appears to me that
Joslwah> floats in excess of those that are passed in registers are supposed to
Joslwah> be promoted to doubles and passed on the stack. Examing the resulting
Joslwah> stack from a gcc generated C call it appears they are passed as
Joslwah> floats.


Joslwah> Can someone confirm/refute this, or else point me to an ABI that says
Joslwah> that they should be passed as floats.


I have not been able to find any motivation for promoting floats
passed ont the stack. Does this provide some form of compatibility with
SPARC?

It may have been intended to allow the callee to be a K&R-style or varargs function, where all float args get promoted to double.
In particular, printf was often called without being declared in K&R- era code. This is one way to make that code work in a C90 environment.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]