diff --git a/lightning/i386/core-32.h b/lightning/i386/core-32.h index 3813145a5..461869b28 100644 --- a/lightning/i386/core-32.h +++ b/lightning/i386/core-32.h @@ -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))