From 77183e75f205cce3ffeabadfcd96504014b179f6 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 2 Aug 2012 15:13:28 +0200 Subject: [PATCH] FFI: Fix alignment of C call structure. --- src/lj_ccall.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lj_ccall.h b/src/lj_ccall.h index 62f963e1..26198a02 100644 --- a/src/lj_ccall.h +++ b/src/lj_ccall.h @@ -36,6 +36,7 @@ #endif #define CCALL_SPS_FREE 1 +#define CCALL_ALIGN_CALLSTATE 16 typedef LJ_ALIGN(16) union FPRArg { double d[2]; @@ -117,6 +118,9 @@ typedef union FPRArg { #ifndef CCALL_ALIGN_STACKARG #define CCALL_ALIGN_STACKARG 1 #endif +#ifndef CCALL_ALIGN_CALLSTATE +#define CCALL_ALIGN_CALLSTATE 8 +#endif #define CCALL_NUM_GPR \ (CCALL_NARG_GPR > CCALL_NRET_GPR ? CCALL_NARG_GPR : CCALL_NRET_GPR) @@ -131,7 +135,7 @@ LJ_STATIC_ASSERT(CCALL_NUM_FPR <= CCALL_MAX_FPR); /* -- C call state -------------------------------------------------------- */ -typedef LJ_ALIGN(8) struct CCallState { +typedef LJ_ALIGN(CCALL_ALIGN_CALLSTATE) struct CCallState { void (*func)(void); /* Pointer to called function. */ uint32_t spadj; /* Stack pointer adjustment. */ uint8_t nsp; /* Number of stack slots. */