From: Mike Pall Date: Thu, 2 Aug 2012 13:13:28 +0000 (+0200) Subject: FFI: Fix alignment of C call structure. X-Git-Tag: v2.0.0-beta11~107 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=77183e75f205cce3ffeabadfcd96504014b179f6;p=thirdparty%2FLuaJIT.git FFI: Fix alignment of C call structure. --- 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. */