[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 100/437: fix jit_movbrm in the i386 backend
From: |
Andy Wingo |
Subject: |
[Guile-commits] 100/437: fix jit_movbrm in the i386 backend |
Date: |
Mon, 2 Jul 2018 05:13:53 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit 2ecf6a2c28a8780f0bbf28af6d1bceb73666bb0c
Author: Paolo Bonzini <address@hidden>
Date: Mon Jul 26 09:14:18 2010 +0200
fix jit_movbrm in the i386 backend
2010-07-26 Paolo Bonzini <address@hidden>
* lightning/i386/core-32.h (jit_replace): Move here (removed
2009-03-01).
---
ChangeLog | 5 +++++
lightning/i386/core-32.h | 10 +++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1b0836c..77975c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-26 Paolo Bonzini <address@hidden>
+
+ * lightning/i386/core-32.h (jit_replace): Move here (removed
+ 2009-03-01).
+
2010-07-19 Paolo Bonzini <address@hidden>
* build-aux/lightning.m4: Always set and replace lightning_frag.
diff --git a/lightning/i386/core-32.h b/lightning/i386/core-32.h
index 46b3516..e176370 100644
--- a/lightning/i386/core-32.h
+++ b/lightning/i386/core-32.h
@@ -127,11 +127,15 @@ struct jit_local_state {
#define jit_reg8(rs) ( ((rs) == _SI || (rs) == _DI) ? _AL :
(_rN(rs) | _AL ))
#define jit_reg16(rs) ( _rN(rs) | _AX )
-/* In jit_replace below, _EBX is dummy */
-#define jit_movbrm(rs, dd, db, di, ds)
\
+#define jit_replace(s, rep, cmp, op) \
+ (jit_pushr_i(rep), \
+ MOVLir((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(_EBX, rs,
\
+ : jit_replace(rs,
\
((dd != _EAX && db != _EAX) ? _EAX :
\
((dd != _ECX && db != _ECX) ? _ECX : _EDX)),
\
MOVBrm(((dd != _EAX && db != _EAX) ? _AL :
\
- [Guile-commits] 90/437: fix IMULQir and IMULQirr, (continued)
- [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, 2018/07/02
- [Guile-commits] 100/437: fix jit_movbrm in the i386 backend,
Andy Wingo <=
- [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
- [Guile-commits] 111/437: Define extra SSE2 xmmN registers and set JIT_FPTMP to the topmost one., Andy Wingo, 2018/07/02