comparison 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
comparison
equal deleted inserted replaced
301:74948b02cfa0 302:d55f9d508074
35 #endif 35 #endif
36 36
37 /* Call-kernel register data: 37 /* Call-kernel register data:
38 38
39 Details: 39 Details:
40
40 The structure holds the argument data for transfering float/double arguments 41 The structure holds the argument data for transfering float/double arguments
41 via registers as well. 42 via registers as well.
42 The call-kernel implements loads two doubles, which involves four 43 The call-kernel on hardfloat platforms implements loads two doubles, which
43 32-bit floating pointer registers. 44 involves four 32-bit floating pointer registers. It's unused for softfloat
45 platforms.
46
44 Float arguments map as following: 47 Float arguments map as following:
45 48
46 float argument 0 is at u[0][0] for little, u[0][1] for big endian and 49 float argument 0 is at u[0][0] for little, u[0][1] for big endian and
47 float argument 1 is at u[1][0] for little, u[1][1] for big endian of 50 float argument 1 is at u[1][0] for little, u[1][1] for big endian of
48 DCRegData_mips_o32 union. 51 DCRegData_mips_o32 union.
49 52
50 */ 53 */
51 54
52 typedef struct DCRegData_mips_o32_ 55 typedef struct
53 { 56 {
57 #if defined(DC__ABI_HARDFLOAT)
54 union { 58 union {
55 double d; 59 double d;
56 float f[2]; 60 float f[2];
57 } u[2]; 61 } u[2];
62 #endif /* DC__ABI_HARDFLOAT */
58 } DCRegData_mips_o32; 63 } DCRegData_mips_o32;
59 64
60 65
61 /* Call kernel. */ 66 /* Call kernel. */
62 67