]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
FFI: Fix alignment of C call structure.
authorMike Pall <mike>
Thu, 2 Aug 2012 13:13:28 +0000 (15:13 +0200)
committerMike Pall <mike>
Thu, 2 Aug 2012 13:13:28 +0000 (15:13 +0200)
src/lj_ccall.h

index 62f963e1bd81ff3bbb12c972906dd9f46b38cd74..26198a0246a010ee548d61b16253d18ba6b2b790 100644 (file)
@@ -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. */