1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 13:20:26 +02:00

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.
This commit is contained in:
Paulo César Pereira de Andrade 2010-08-10 08:35:35 -04:00 committed by Paolo Bonzini
parent 5ea118e8a9
commit 5cef649486

View file

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