[parisc-linux] floating point calling convention on pa

John David Anglin dave@hiauly1.hia.nrc.ca
Sun, 20 Apr 2003 12:20:12 -0400 (EDT)


> I thought I understood it, but this one baffles me:
> 
> static int floating(int a, float b, double c, long double d, int e)
> 
> i would have guessed this mapped to:
> 
> a -> gr26   (sp-36)
> b -> fr4L   (sp-40)
> c -> fr7    (sp-48)
> d -> sp-56
> e -> sp-64
> 
> but according to gcc, e is at sp-60.

int arguments only need word alignment. 'd' occupies bytes sp-56 to sp-49.

A long double is the same as a double (64-bits) on hppa-linux.  I'd hoped
that HP would make their quad library available but so far it hasn't
happened.  As far as I know, quad precision has never been implemented
in hardware.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)