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 };