wingo pushed a commit to branch lightning
in repository guile.
commit e98ff58a7e5425265a8849d0d44f43c1f3c10748
Author: PCPA <[email protected]>
Date: Sat Aug 28 15:15:55 2010 -0300
Also reset alloca_slack after jit_prolog in i386.
There is no guarantee of order of jit_function calls, so, it must
reset it for every function. This should correct possible issues in
OS/X, and will be required when i386 code is updated to use MMX/SSE*
registers, possibly as some kind of extended interface, and then,
would require 16 bytes aligned stack. This is already an issue if
calling C code that uses SSE, and currently requires "manually"
padding the stack by using jit_allocai.
---
lightning/i386/core-32.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lightning/i386/core-32.h b/lightning/i386/core-32.h
index 6645c8f..9c07104 100644
--- a/lightning/i386/core-32.h
+++ b/lightning/i386/core-32.h
@@ -52,7 +52,7 @@ struct jit_local_state {
/* Whether a register is used for the user-accessible registers. */
#define jit_save(reg) 1
-#define jit_base_prolog() (_jitl.framesize = 20, _jitl.alloca_offset = 0, \
+#define jit_base_prolog() (_jitl.framesize = 20, _jitl.alloca_offset =
_jitl.alloca_slack = 0, \
PUSHLr(_EBX), PUSHLr(_ESI), PUSHLr(_EDI), PUSHLr(_EBP), MOVLrr(_ESP, _EBP))
#define jit_base_ret(ofs) \
(((ofs) < 0 ? LEAVE_() : POPLr(_EBP)), \