1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-28 16:00:22 +02:00

fix jit_replace8 for case when one of the operands is _EAX.

2008-06-10  Laurent Michel  <ldm@engr.uconn.edu>

	* lightning/i386/core-i386.h: Fix jit_replace8 for
	case when one of the operands is _EAX.
This commit is contained in:
Laurent Michel 2008-06-10 16:46:50 -07:00 committed by Paolo Bonzini
parent 5ab8cddd61
commit 1e9000649c
2 changed files with 13 additions and 4 deletions

View file

@ -1,3 +1,8 @@
2008-06-10 Laurent Michel <ldm@engr.uconn.edu>
* lightning/i386/core-i386.h: Fix jit_replace8 for
case when one of the operands is _EAX.
2008-05-19 Paolo Bonzini <bonzini@gnu.org>
* tests/run-test: Avoid CRLF issues on mingw.

View file

@ -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))