Mercurial > pub > dyncall > dyncall
comparison dyncallback/dyncall_args_mips.h @ 104:dbca6763f2be
- complete, working mips o32 callback (using hardware fp); fixes error from last commit, which ignored first 2 float args
* currently tested on little endian, only
* todo update, manual update, cleanups
author | cslag |
---|---|
date | Thu, 09 Jun 2016 15:13:53 +0200 |
parents | b7a9b524f0c3 |
children | 9e677d4c0b6b |
comparison
equal
deleted
inserted
replaced
103:b15d814ba274 | 104:dbca6763f2be |
---|---|
27 #ifndef DYNCALLBACK_ARGS_MIPS_H | 27 #ifndef DYNCALLBACK_ARGS_MIPS_H |
28 #define DYNCALLBACK_ARGS_MIPS_H | 28 #define DYNCALLBACK_ARGS_MIPS_H |
29 | 29 |
30 #include "dyncall_args.h" | 30 #include "dyncall_args.h" |
31 | 31 |
32 #if !defined(DC__ABI_MIPS_O32) | |
33 # define DCARGS_MIPS_PARAM_REGS 4 | |
34 #else | |
35 # define DCARGS_MIPS_PARAM_REGS 8 | |
36 #endif | |
37 | |
38 struct DCArgs | 32 struct DCArgs |
39 { | 33 { |
40 /* Don't change order! */ | 34 /* Don't change order! */ |
41 #if !defined(DC__ABI_MIPS_O32) | 35 #if defined(DC__ABI_MIPS_O32) |
36 int freg_count; | |
37 #else | |
38 # define DCARGS_MIPS_PARAM_REGS 8 | |
42 struct { int i; float f; } reg_data[DCARGS_MIPS_PARAM_REGS]; | 39 struct { int i; float f; } reg_data[DCARGS_MIPS_PARAM_REGS]; |
43 struct { int i; int f; } reg_count; | 40 struct { int i; int f; } reg_count; |
44 #endif | 41 #endif |
45 unsigned char* stackptr; | 42 unsigned char* stackptr; |
46 }; | 43 }; |