Mercurial > pub > dyncall > dyncall
diff dyncall/dyncall_call_mips_o32.h @ 302:d55f9d508074
- mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
- cleanup of some mips files, removed unnecessary file, renamings..
- doc/manual cleanups, changelog entry
author | Tassilo Philipp |
---|---|
date | Mon, 21 May 2018 02:48:12 +0200 |
parents | f5577f6bf97a |
children |
line wrap: on
line diff
--- a/dyncall/dyncall_call_mips_o32.h Sun May 20 02:23:44 2018 +0200 +++ b/dyncall/dyncall_call_mips_o32.h Mon May 21 02:48:12 2018 +0200 @@ -37,10 +37,13 @@ /* Call-kernel register data: Details: + The structure holds the argument data for transfering float/double arguments via registers as well. - The call-kernel implements loads two doubles, which involves four - 32-bit floating pointer registers. + The call-kernel on hardfloat platforms implements loads two doubles, which + involves four 32-bit floating pointer registers. It's unused for softfloat + platforms. + Float arguments map as following: float argument 0 is at u[0][0] for little, u[0][1] for big endian and @@ -49,12 +52,14 @@ */ -typedef struct DCRegData_mips_o32_ +typedef struct { +#if defined(DC__ABI_HARDFLOAT) union { double d; float f[2]; } u[2]; +#endif /* DC__ABI_HARDFLOAT */ } DCRegData_mips_o32;