From: Mike Pall Date: Mon, 16 May 2011 00:43:14 +0000 (+0200) Subject: Add target-specific macro for stack alignment in assembler backend. X-Git-Tag: v2.0.0-beta8~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dab4bcafba789c7954dc4f90623c81365dcedb7f;p=thirdparty%2FLuaJIT.git Add target-specific macro for stack alignment in assembler backend. --- diff --git a/src/lj_asm.c b/src/lj_asm.c index 87c09bb9..8b984d8e 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c @@ -729,7 +729,7 @@ static int32_t asm_stack_adjust(ASMState *as) { if (as->evenspill <= SPS_FIXED) return 0; - return sps_scale((as->evenspill - SPS_FIXED + 3) & ~3); + return sps_scale(sps_align(as->evenspill)); } /* Must match with hash*() in lj_tab.c. */ diff --git a/src/lj_target_x86.h b/src/lj_target_x86.h index 48b53b6d..5c24761e 100644 --- a/src/lj_target_x86.h +++ b/src/lj_target_x86.h @@ -136,6 +136,7 @@ enum { #endif #define sps_scale(slot) (4 * (int32_t)(slot)) +#define sps_align(slot) (((slot) - SPS_FIXED + 3) & ~3) /* -- Exit state ---------------------------------------------------------- */