[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 124/437: Also reset alloca_slack after jit_prolog in i38
From: |
Andy Wingo |
Subject: |
[Guile-commits] 124/437: Also reset alloca_slack after jit_prolog in i386. |
Date: |
Mon, 2 Jul 2018 05:13:59 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit e98ff58a7e5425265a8849d0d44f43c1f3c10748
Author: PCPA <address@hidden>
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)), \
- [Guile-commits] 133/437: Correct integer multiplication and add extra test case., (continued)
- [Guile-commits] 133/437: Correct integer multiplication and add extra test case., Andy Wingo, 2018/07/02
- [Guile-commits] 116/437: Change jit_finish to work with varargs functions in x86_64., Andy Wingo, 2018/07/02
- [Guile-commits] 85/437: add (void) casts for C++ compatibility, Andy Wingo, 2018/07/02
- [Guile-commits] 127/437: Extra cleanup before update to new codebase., Andy Wingo, 2018/07/02
- [Guile-commits] 130/437: Add make rule to build test case dependencies., Andy Wingo, 2018/07/02
- [Guile-commits] 125/437: fix multiplication on x86_64, Andy Wingo, 2018/07/02
- [Guile-commits] 102/437: add ldst test, Andy Wingo, 2018/07/02
- [Guile-commits] 131/437: Add proper make clean rule to the check subdir., Andy Wingo, 2018/07/02
- [Guile-commits] 109/437: more fixes to fp branches, Andy Wingo, 2018/07/02
- [Guile-commits] 136/437: Update code to build and pass test cases in the arm port., Andy Wingo, 2018/07/02
- [Guile-commits] 124/437: Also reset alloca_slack after jit_prolog in i386.,
Andy Wingo <=
- [Guile-commits] 154/437: Correct test cases to work with x87 in ix86., Andy Wingo, 2018/07/02
- [Guile-commits] 148/437: Add better ppc support code, but still not functional., Andy Wingo, 2018/07/02
- [Guile-commits] 153/437: Make it clear stdarg like abstraction is not supported., Andy Wingo, 2018/07/02
- [Guile-commits] 76/437: fix several load/store patterns for x86-64., Andy Wingo, 2018/07/02
- [Guile-commits] 81/437: fix stack alignment for Apple 32-bit ABI, Andy Wingo, 2018/07/02
- [Guile-commits] 98/437: always set and replace lightning_frag, Andy Wingo, 2018/07/02
- [Guile-commits] 166/437: Correct extra regressions found by the call.tst test case., Andy Wingo, 2018/07/02
- [Guile-commits] 165/437: Add simple test case to test argument and return values., Andy Wingo, 2018/07/02
- [Guile-commits] 158/437: Add new test case to check stack integrity on complex stack frames., Andy Wingo, 2018/07/02
- [Guile-commits] 150/437: Add jit_ellipis and remove jit_prepare argument., Andy Wingo, 2018/07/02