aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ccall.h
diff options
context:
space:
mode:
authorMike Pall <mike>2011-04-16 23:28:51 +0200
committerMike Pall <mike>2011-04-16 23:28:51 +0200
commitd636a3decdf8dc503e707fad8b0e2745c0cabd21 (patch)
treed23c1122b288819eca73d2b54d1008275a7de7d6 /src/lj_ccall.h
parentfc4021427964de06b6ba445172c7345a208a725d (diff)
downloadluajit-d636a3decdf8dc503e707fad8b0e2745c0cabd21.tar.gz
luajit-d636a3decdf8dc503e707fad8b0e2745c0cabd21.tar.bz2
luajit-d636a3decdf8dc503e707fad8b0e2745c0cabd21.zip
ARM: Add partial support for FFI.
Diffstat (limited to '')
-rw-r--r--src/lj_ccall.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lj_ccall.h b/src/lj_ccall.h
index 83e2403d..d0979781 100644
--- a/src/lj_ccall.h
+++ b/src/lj_ccall.h
@@ -47,6 +47,16 @@ typedef LJ_ALIGN(16) union FPRArg {
47 47
48typedef intptr_t GPRArg; 48typedef intptr_t GPRArg;
49 49
50#elif LJ_TARGET_ARM
51
52#define CCALL_NARG_GPR 4
53#define CCALL_NARG_FPR 0
54#define CCALL_NRET_GPR 2 /* For softfp double. */
55#define CCALL_NRET_FPR 0
56#define CCALL_SPS_FREE 0 /* NYI */
57
58typedef intptr_t GPRArg;
59
50#elif LJ_TARGET_PPCSPE 60#elif LJ_TARGET_PPCSPE
51 61
52#define CCALL_NARG_GPR 8 62#define CCALL_NARG_GPR 8
@@ -91,10 +101,10 @@ typedef struct CCallState {
91#elif LJ_TARGET_X86 101#elif LJ_TARGET_X86
92 uint8_t resx87; /* Result on x87 stack: 1:float, 2:double. */ 102 uint8_t resx87; /* Result on x87 stack: 1:float, 2:double. */
93#endif 103#endif
94 GPRArg gpr[CCALL_NUM_GPR]; /* Arguments/results in GPRs. */
95#if CCALL_NUM_FPR 104#if CCALL_NUM_FPR
96 FPRArg fpr[CCALL_NUM_FPR]; /* Arguments/results in FPRs. */ 105 FPRArg fpr[CCALL_NUM_FPR]; /* Arguments/results in FPRs. */
97#endif 106#endif
107 GPRArg gpr[CCALL_NUM_GPR]; /* Arguments/results in GPRs. */
98 GPRArg stack[CCALL_MAXSTACK]; /* Stack slots. */ 108 GPRArg stack[CCALL_MAXSTACK]; /* Stack slots. */
99} CCallState; 109} CCallState;
100 110