guile-commits
[Top][All Lists]
Advanced

[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)),                                 \



reply via email to

[Prev in Thread] Current Thread [Next in Thread]