From dab4bcafba789c7954dc4f90623c81365dcedb7f Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 16 May 2011 02:43:14 +0200 Subject: [PATCH] Add target-specific macro for stack alignment in assembler backend. --- src/lj_asm.c | 2 +- src/lj_target_x86.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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 ---------------------------------------------------------- */