1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 21:30:29 +02:00

fix jit_movbrm in the i386 backend

2010-07-26  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core-32.h (jit_replace): Move here (removed
	2009-03-01).
This commit is contained in:
Paolo Bonzini 2010-07-26 09:14:18 +02:00
parent 21ece8cdcd
commit 2ecf6a2c28
2 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2010-07-26 Paolo Bonzini <bonzini@gnu.org>
* lightning/i386/core-32.h (jit_replace): Move here (removed
2009-03-01).
2010-07-19 Paolo Bonzini <bonzini@gnu.org> 2010-07-19 Paolo Bonzini <bonzini@gnu.org>
* build-aux/lightning.m4: Always set and replace lightning_frag. * build-aux/lightning.m4: Always set and replace lightning_frag.

View file

@ -127,11 +127,15 @@ struct jit_local_state {
#define jit_reg8(rs) ( ((rs) == _SI || (rs) == _DI) ? _AL : (_rN(rs) | _AL )) #define jit_reg8(rs) ( ((rs) == _SI || (rs) == _DI) ? _AL : (_rN(rs) | _AL ))
#define jit_reg16(rs) ( _rN(rs) | _AX ) #define jit_reg16(rs) ( _rN(rs) | _AX )
/* In jit_replace below, _EBX is dummy */ #define jit_replace(s, rep, cmp, op) \
#define jit_movbrm(rs, dd, db, di, ds) \ (jit_pushr_i(rep), \
MOVLir((s), (rep)), \
op, jit_popr_i(rep))
#define jit_movbrm(rs, dd, db, di, ds) \
(jit_check8(rs) \ (jit_check8(rs) \
? MOVBrm(jit_reg8(rs), dd, db, di, ds) \ ? MOVBrm(jit_reg8(rs), dd, db, di, ds) \
: jit_replace(_EBX, rs, \ : jit_replace(rs, \
((dd != _EAX && db != _EAX) ? _EAX : \ ((dd != _EAX && db != _EAX) ? _EAX : \
((dd != _ECX && db != _ECX) ? _ECX : _EDX)), \ ((dd != _ECX && db != _ECX) ? _ECX : _EDX)), \
MOVBrm(((dd != _EAX && db != _EAX) ? _AL : \ MOVBrm(((dd != _EAX && db != _EAX) ? _AL : \