fix IRCOV_TRUNC issue

relate commit: db1b399af1
This commit is contained in:
liuyan 2022-04-17 00:29:14 +08:00
parent 93a65d3cc2
commit 7411720364

View File

@ -501,7 +501,8 @@ TRef LJ_FASTCALL lj_opt_narrow_cindex(jit_State *J, TRef tr)
{ {
lua_assert(tref_isnumber(tr)); lua_assert(tref_isnumber(tr));
if (tref_isnum(tr)) if (tref_isnum(tr))
return emitir(IRT(IR_CONV, IRT_INTP), tr, (IRT_INTP<<5)|IRT_NUM|IRCONV_ANY); return emitir(IRT(IR_CONV, IRT_INTP), tr,
(IRT_INTP<<5)|IRT_NUM|IRCONV_TRUNC|IRCONV_ANY);
/* Undefined overflow semantics allow stripping of ADDOV, SUBOV and MULOV. */ /* Undefined overflow semantics allow stripping of ADDOV, SUBOV and MULOV. */
return narrow_stripov(J, tr, IR_MULOV, return narrow_stripov(J, tr, IR_MULOV,
LJ_64 ? ((IRT_INTP<<5)|IRT_INT|IRCONV_SEXT) : LJ_64 ? ((IRT_INTP<<5)|IRT_INT|IRCONV_SEXT) :