aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2011-05-16 02:43:14 +0200
committerMike Pall <mike>2011-05-16 02:43:14 +0200
commitdab4bcafba789c7954dc4f90623c81365dcedb7f (patch)
treeae42f472bdb16213617307193fdf80fc8a25cf13
parent6cb123bb99d496b1714a76a6c8ec4760867cdd7a (diff)
downloadluajit-dab4bcafba789c7954dc4f90623c81365dcedb7f.tar.gz
luajit-dab4bcafba789c7954dc4f90623c81365dcedb7f.tar.bz2
luajit-dab4bcafba789c7954dc4f90623c81365dcedb7f.zip
Add target-specific macro for stack alignment in assembler backend.
-rw-r--r--src/lj_asm.c2
-rw-r--r--src/lj_target_x86.h1
2 files changed, 2 insertions, 1 deletions
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)
729{ 729{
730 if (as->evenspill <= SPS_FIXED) 730 if (as->evenspill <= SPS_FIXED)
731 return 0; 731 return 0;
732 return sps_scale((as->evenspill - SPS_FIXED + 3) & ~3); 732 return sps_scale(sps_align(as->evenspill));
733} 733}
734 734
735/* Must match with hash*() in lj_tab.c. */ 735/* 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 {
136#endif 136#endif
137 137
138#define sps_scale(slot) (4 * (int32_t)(slot)) 138#define sps_scale(slot) (4 * (int32_t)(slot))
139#define sps_align(slot) (((slot) - SPS_FIXED + 3) & ~3)
139 140
140/* -- Exit state ---------------------------------------------------------- */ 141/* -- Exit state ---------------------------------------------------------- */
141 142