diff options
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r-- | src/lj_asm_x86.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h index 936ff438..774e77b4 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h | |||
@@ -2084,7 +2084,8 @@ static void asm_intarith(ASMState *as, IRIns *ir, x86Arith xa) | |||
2084 | RegSet allow = RSET_GPR; | 2084 | RegSet allow = RSET_GPR; |
2085 | Reg dest, right; | 2085 | Reg dest, right; |
2086 | int32_t k = 0; | 2086 | int32_t k = 0; |
2087 | if (as->flagmcp == as->mcp) { /* Drop test r,r instruction. */ | 2087 | if (as->flagmcp == as->mcp && xa != XOg_X_IMUL) { |
2088 | /* Drop test r,r instruction. */ | ||
2088 | MCode *p = as->mcp + ((LJ_64 && *as->mcp < XI_TESTb) ? 3 : 2); | 2089 | MCode *p = as->mcp + ((LJ_64 && *as->mcp < XI_TESTb) ? 3 : 2); |
2089 | MCode *q = p[0] == 0x0f ? p+1 : p; | 2090 | MCode *q = p[0] == 0x0f ? p+1 : p; |
2090 | if ((*q & 15) < 14) { | 2091 | if ((*q & 15) < 14) { |