[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 79/437: fix jit_replace8 for case when one of the operan
From: |
Andy Wingo |
Subject: |
[Guile-commits] 79/437: fix jit_replace8 for case when one of the operands is _EAX. |
Date: |
Mon, 2 Jul 2018 05:13:49 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit 1e9000649cf1ff66570092f217837a793e48ee4d
Author: Laurent Michel <address@hidden>
Date: Tue Jun 10 16:46:50 2008 -0700
fix jit_replace8 for case when one of the operands is _EAX.
2008-06-10 Laurent Michel <address@hidden>
* lightning/i386/core-i386.h: Fix jit_replace8 for
case when one of the operands is _EAX.
---
ChangeLog | 5 +++++
lightning/i386/core-i386.h | 12 ++++++++----
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 675d9ba..16890e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-10 Laurent Michel <address@hidden>
+
+ * lightning/i386/core-i386.h: Fix jit_replace8 for
+ case when one of the operands is _EAX.
+
2008-05-19 Paolo Bonzini <address@hidden>
* tests/run-test: Avoid CRLF issues on mingw.
diff --git a/lightning/i386/core-i386.h b/lightning/i386/core-i386.h
index dec15fb..b57f9a5 100644
--- a/lightning/i386/core-i386.h
+++ b/lightning/i386/core-i386.h
@@ -69,10 +69,14 @@
(rs == forced) ? op : (jit_pushr_i(forced), MOVLrr(rs, forced), op,
jit_popr_i(forced)))
/* For LT, LE, ... */
-#define jit_replace8(d, cmp, op) \
- (jit_check8(d) \
- ? (XORLrr(d, d), (cmp), op(_rN(d) | _AL))
\
- : (jit_pushr_i(_EAX), XORLrr(_EAX, _EAX), (cmp), op(_AL),
MOVLrr(_EAX, (d)), jit_popr_i(_EAX)))
+#define jit_replace8(d, cmp, op) \
+ (jit_check8(d) \
+ ? ((cmp), \
+ MOVLir(0, (d)), \
+ op(_rN(d) | _AL)) \
+ : (jit_pushr_i(_EAX), (cmp), \
+ MOVLir(0, _EAX), \
+ op(_AL), MOVLrr(_EAX, (d)), jit_popr_i(_EAX)))
#define jit_bool_r(d, s1, s2, op) \
(jit_replace8(d, CMPLrr(s2, s1), op))
- [Guile-commits] 82/437: use MOVLir directly to implement i386 32-bit jit_movi_p, (continued)
- [Guile-commits] 82/437: use MOVLir directly to implement i386 32-bit jit_movi_p, Andy Wingo, 2018/07/02
- [Guile-commits] 72/437: misc. x86-64 bugfixes, Andy Wingo, 2018/07/02
- [Guile-commits] 78/437: avoid CRLF issues on mingw, Andy Wingo, 2018/07/02
- [Guile-commits] 62/437: commit source files for separate using/porting manuals, Andy Wingo, 2018/07/02
- [Guile-commits] 80/437: fix C++ incompatibility in i386 back-end, Andy Wingo, 2018/07/02
- [Guile-commits] 45/437: add floating-point for x86-64, Andy Wingo, 2018/07/02
- [Guile-commits] 28/437: first merge of x86-64 backend and related configury changes, Andy Wingo, 2018/07/02
- [Guile-commits] 74/437: add long boolean operations for x86-64, Andy Wingo, 2018/07/02
- [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 <=
- [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, 2018/07/02
- [Guile-commits] 58/437: use CALLsr, not CALLLsr, Andy Wingo, 2018/07/02