[parisc-linux] libqthreads and hppa-linux

Alan Modra amodra@bigpond.net.au
Thu, 2 Aug 2001 16:18:17 +0930


On Thu, Aug 02, 2001 at 03:14:15PM +0930, Alan Modra wrote:
> Hmm, I wonder if you've found a gcc bug?

Curiousity got the better of me, and I dug up copy of the ABI.  Looks
like gcc is doing the right thing.

"Floating-Point (32 Bits, single-precision): One word, callee cannot assume
a valid floating-point number.

Floating-Point (64 Bits, double-precision): Two words, double word aligned
(high order word in odd arg word).  This may create a void in the argument
list.  64-bit floating-point value parameters mapped to the first and second
double-words of the argument list should be passed in farg1 and farg3,
respectively. farg0 and farg2 are never used for 64-bit floating-point
parameters.  Callee cannot assume a valid floating-point number."

Makes a weird sort of sense when you realise that the register args have
a mapping to stack slots, and there are only 4x32 bits of stack space,
or 2 doubles.

Alan