diff options
author | Mike Pall <mike> | 2018-05-20 12:45:01 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2018-05-20 12:45:01 +0200 |
commit | b708297aba2b07648bddd16867e44efc9d72666b (patch) | |
tree | 7fbcea6fe01c114f88a0d4dde243d6753a224c36 | |
parent | 362f034c1b91d52ea2cf971314ed4e0c24348bff (diff) | |
parent | fb5e522fbc0750c838ef6a926b11c5d870826183 (diff) | |
download | luajit-b708297aba2b07648bddd16867e44efc9d72666b.tar.gz luajit-b708297aba2b07648bddd16867e44efc9d72666b.tar.bz2 luajit-b708297aba2b07648bddd16867e44efc9d72666b.zip |
Merge branch 'master' into v2.1
-rw-r--r-- | src/lj_emit_x86.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_emit_x86.h b/src/lj_emit_x86.h index 5b139bd3..b3dc4ea5 100644 --- a/src/lj_emit_x86.h +++ b/src/lj_emit_x86.h | |||
@@ -274,10 +274,12 @@ static void emit_movmroi(ASMState *as, Reg base, int32_t ofs, int32_t i) | |||
274 | /* mov r, i / xor r, r */ | 274 | /* mov r, i / xor r, r */ |
275 | static void emit_loadi(ASMState *as, Reg r, int32_t i) | 275 | static void emit_loadi(ASMState *as, Reg r, int32_t i) |
276 | { | 276 | { |
277 | /* XOR r,r is shorter, but modifies the flags. This is bad for HIOP. */ | 277 | /* XOR r,r is shorter, but modifies the flags. This is bad for HIOP/jcc. */ |
278 | if (i == 0 && !(LJ_32 && (IR(as->curins)->o == IR_HIOP || | 278 | if (i == 0 && !(LJ_32 && (IR(as->curins)->o == IR_HIOP || |
279 | (as->curins+1 < as->T->nins && | 279 | (as->curins+1 < as->T->nins && |
280 | IR(as->curins+1)->o == IR_HIOP)))) { | 280 | IR(as->curins+1)->o == IR_HIOP))) && |
281 | !((*as->mcp == 0x0f && (as->mcp[1] & 0xf0) == XI_JCCn) || | ||
282 | (*as->mcp & 0xf0) == XI_JCCs)) { | ||
281 | emit_rr(as, XO_ARITH(XOg_XOR), r, r); | 283 | emit_rr(as, XO_ARITH(XOg_XOR), r, r); |
282 | } else { | 284 | } else { |
283 | MCode *p = as->mcp; | 285 | MCode *p = as->mcp; |