wingo pushed a commit to branch lightning
in repository guile.
commit 5cef6494865f23d00b0075d9fa66b0f27f2b83a7
Author: Paulo César Pereira de Andrade <[email protected]>
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))