[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 118/437: Account stack alignment on jit functions with o
From: |
Andy Wingo |
Subject: |
[Guile-commits] 118/437: Account stack alignment on jit functions with odd number of arguments. |
Date: |
Mon, 2 Jul 2018 05:13:56 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit 67e10518277beb68729a9240a8d254100687cfb6
Author: Paulo Cesar Pereira de Andrade <address@hidden>
Date: Wed Aug 25 20:50:41 2010 -0300
Account stack alignment on jit functions with odd number of arguments.
The x86_64 correction to keep stack aligned in jit_finish* was only
correct for functions being called, but did not correctly handle alignment
of stack arguments.
---
lightning/i386/core-64.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lightning/i386/core-64.h b/lightning/i386/core-64.h
index ea53845..48a8996 100644
--- a/lightning/i386/core-64.h
+++ b/lightning/i386/core-64.h
@@ -133,7 +133,7 @@ struct jit_local_state {
#define jit_popr_i(rs) POPQr(rs)
/* A return address is 8 bytes, plus 5 registers = 40 bytes, total = 48 bytes.
*/
-#define jit_prolog(n) (_jitl.framesize = 48, _jitl.nextarg_getfp =
_jitl.nextarg_geti = 0, _jitl.alloca_offset = 0, \
+#define jit_prolog(n) (_jitl.framesize = ((n) & 1) ? 56 : 48,
_jitl.nextarg_getfp = _jitl.nextarg_geti = 0, _jitl.alloca_offset = 0, \
PUSHQr(_EBX), PUSHQr(_R12), PUSHQr(_R13), PUSHQr(_R14),
PUSHQr(_EBP), MOVQrr(_ESP, _EBP))
#define jit_calli(sub) (MOVQir((long) (sub), JIT_REXTMP),
CALLsr(JIT_REXTMP))
- [Guile-commits] 91/437: fix miscellaneous PPC-32 back-end bugs, (continued)
- [Guile-commits] 91/437: fix miscellaneous PPC-32 back-end bugs, Andy Wingo, 2018/07/02
- [Guile-commits] 103/437: fix two bugs in load/store for i386, Andy Wingo, 2018/07/02
- [Guile-commits] 100/437: fix jit_movbrm in the i386 backend, Andy Wingo, 2018/07/02
- [Guile-commits] 58/437: use CALLsr, not CALLLsr, Andy Wingo, 2018/07/02
- [Guile-commits] 60/437: don't use _VOID symbol, reserved by newlib (cygwin), Andy Wingo, 2018/07/02
- [Guile-commits] 96/437: fix blunder in operand order (i386), Andy Wingo, 2018/07/02
- [Guile-commits] 97/437: fix x86 shifts, Andy Wingo, 2018/07/02
- [Guile-commits] 104/437: fix jit_extr_f_d and jit_extr_d_f for x86-64, Andy Wingo, 2018/07/02
- [Guile-commits] 107/437: fix -D_ASM_SAFETY compilation of beqr_d and bne_d, Andy Wingo, 2018/07/02
- [Guile-commits] 101/437: fix i386 jit_replace and x86_64 jit_movi_f, Andy Wingo, 2018/07/02
- [Guile-commits] 118/437: Account stack alignment on jit functions with odd number of arguments.,
Andy Wingo <=
- [Guile-commits] 03/437: big merge, Andy Wingo, 2018/07/02
- [Guile-commits] 111/437: Define extra SSE2 xmmN registers and set JIT_FPTMP to the topmost one., Andy Wingo, 2018/07/02
- [Guile-commits] 94/437: fix problems with i386 32-bit floating point branches, Andy Wingo, 2018/07/02
- [Guile-commits] 115/437: Change JIT_FPR_NUM to 7 to prevent clobber of JIT_FPR(7), Andy Wingo, 2018/07/02
- [Guile-commits] 112/437: Add safety check on number of integer and float arguments on x86_64., Andy Wingo, 2018/07/02
- [Guile-commits] 95/437: another fix to jit_fp_btest, Andy Wingo, 2018/07/02
- [Guile-commits] 110/437: Change jit_getarg_{c, uc, s, us, i, ui} to extr_l to sign extend on 64 bits., Andy Wingo, 2018/07/02
- [Guile-commits] 117/437: Implement x86_64 support for multiple integer and float arguments., Andy Wingo, 2018/07/02
- [Guile-commits] 105/437: fix 64-bit load with sign extension, Andy Wingo, 2018/07/02
- [Guile-commits] 70/437: add _s32P, Andy Wingo, 2018/07/02