diff --git a/src/compile-x86.S b/src/compile-x86.S index 6bf13a5bfb..3f839ce3c5 100644 --- a/src/compile-x86.S +++ b/src/compile-x86.S @@ -26,9 +26,15 @@ #define THREAD_STACK 2224 #define THREAD_SCRATCH 2232 +#ifdef AVIAN_USE_FRAME_POINTER +# define ALIGNMENT_ADJUSTMENT 0 +#else +# define ALIGNMENT_ADJUSTMENT 8 +#endif + #if defined __MINGW32__ || defined __CYGWIN32__ -#define CALLEE_SAVED_REGISTER_FOOTPRINT 64 +#define CALLEE_SAVED_REGISTER_FOOTPRINT 64 + ALIGNMENT_ADJUSTMENT .globl GLOBAL(vmInvoke) GLOBAL(vmInvoke): @@ -163,7 +169,7 @@ LOCAL(vmJumpAndInvoke_argumentTest): #else // not __MINGW32__ || __CYGWIN32__ -#define CALLEE_SAVED_REGISTER_FOOTPRINT 48 +#define CALLEE_SAVED_REGISTER_FOOTPRINT 48 + ALIGNMENT_ADJUSTMENT .globl GLOBAL(vmInvoke) GLOBAL(vmInvoke): @@ -296,7 +302,13 @@ LOCAL(vmJumpAndInvoke_argumentTest): #define THREAD_STACK 2148 #define THREAD_SCRATCH 2152 -#define CALLEE_SAVED_REGISTER_FOOTPRINT 16 +#ifdef AVIAN_USE_FRAME_POINTER +# define ALIGNMENT_ADJUSTMENT 0 +#else +# define ALIGNMENT_ADJUSTMENT 12 +#endif + +#define CALLEE_SAVED_REGISTER_FOOTPRINT 16 + ALIGNMENT_ADJUSTMENT .globl GLOBAL(vmInvoke) GLOBAL(vmInvoke):