From: Mike Pall Date: Thu, 24 Jul 2025 13:38:45 +0000 (+0200) Subject: x86/x64: Don't use undefined MUL/IMUL zero flag. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=thirdparty%2FLuaJIT.git x86/x64: Don't use undefined MUL/IMUL zero flag. Reported by VrIgHtEr. #1376 --- diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h index 239066d4..8b6ce479 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h @@ -1841,7 +1841,8 @@ static void asm_intarith(ASMState *as, IRIns *ir, x86Arith xa) RegSet allow = RSET_GPR; Reg dest, right; int32_t k = 0; - if (as->flagmcp == as->mcp) { /* Drop test r,r instruction. */ + if (as->flagmcp == as->mcp && xa != XOg_X_IMUL) { + /* Drop test r,r instruction. */ MCode *p = as->mcp + ((LJ_64 && *as->mcp < XI_TESTb) ? 3 : 2); MCode *q = p[0] == 0x0f ? p+1 : p; if ((*q & 15) < 14) {