Looking at the Linux 32bit PowerPC ABI spec, it appears to me that floats in excess of those that are passed in registers are supposed to be promoted to doubles and passed on the stack. Examing the resulting stack from a gcc generated C call it appears they are passed as floats.
Can someone confirm/refute this, or else point me to an ABI that says that they should be passed as floats. Thanks very much.