[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 103/437: fix two bugs in load/store for i386
From: |
Andy Wingo |
Subject: |
[Guile-commits] 103/437: fix two bugs in load/store for i386 |
Date: |
Mon, 2 Jul 2018 05:13:54 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit 5cef6494865f23d00b0075d9fa66b0f27f2b83a7
Author: Paulo César Pereira de Andrade <address@hidden>
Date: Tue Aug 10 08:35:35 2010 -0400
fix two bugs in load/store for i386
* lightning/i386/core-32.h (jit_replace): Use MOVLrr, not MOVLir.
(jit_movbrm): Check index register as well.
---
lightning/i386/core-32.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lightning/i386/core-32.h b/lightning/i386/core-32.h
index 3813145..461869b 100644
--- a/lightning/i386/core-32.h
+++ b/lightning/i386/core-32.h
@@ -129,17 +129,17 @@ struct jit_local_state {
#define jit_replace(s, rep, op) \
(jit_pushr_i(rep), \
- MOVLir((s), (rep)), \
+ MOVLrr((s), (rep)), \
op, jit_popr_i(rep))
#define jit_movbrm(rs, dd, db, di, ds)
\
(jit_check8(rs)
\
? MOVBrm(jit_reg8(rs), dd, db, di, ds)
\
: jit_replace(rs,
\
- ((dd != _EAX && db != _EAX) ? _EAX :
\
- ((dd != _ECX && db != _ECX) ? _ECX : _EDX)),
\
- MOVBrm(((dd != _EAX && db != _EAX) ? _AL :
\
- ((dd != _ECX && db != _ECX) ? _CL :
_DL)), \
+ ((dd != _EAX && db != _EAX && di != _EAX) ? _EAX
: \
+ ((dd != _ECX && db != _ECX && di != _ECX) ? _ECX
: _EDX)), \
+ MOVBrm(((dd != _EAX && db != _EAX && di != _EAX)
? _AL : \
+ ((dd != _ECX && db != _ECX && di != _ECX)
? _CL : _DL)), \
dd, db, di, ds)))
#define jit_ldi_c(d, is) MOVSBLmr((is), 0, 0, 0, (d))
- [Guile-commits] 89/437: fix _rN vs. _rR, (continued)
- [Guile-commits] 89/437: fix _rN vs. _rR, Andy Wingo, 2018/07/02
- [Guile-commits] 90/437: fix IMULQir and IMULQirr, Andy Wingo, 2018/07/02
- [Guile-commits] 79/437: fix jit_replace8 for case when one of the operands is _EAX., Andy Wingo, 2018/07/02
- [Guile-commits] 87/437: rewrite x86-64 argument passing to support up to 6 arguments, Andy Wingo, 2018/07/02
- [Guile-commits] 92/437: fix installation bug, Andy Wingo, 2018/07/02
- [Guile-commits] 71/437: add missing x86-64 memory operations, Andy Wingo, 2018/07/02
- [Guile-commits] 84/437: move x86-64 JIT_V1/JIT_V2 in R12/R13, Andy Wingo, 2018/07/02
- [Guile-commits] 83/437: detect 32-/64-bit variant of i386 back-end at include time (not configure time), Andy Wingo, 2018/07/02
- [Guile-commits] 86/437: fix x86-64 jit_movi_l (x, 0) and 16-byte stack alignment in the prolog, Andy Wingo, 2018/07/02
- [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 <=
- [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, 2018/07/02
- [Guile-commits] 03/437: big merge, Andy Wingo, 2018/07/02