Merge branch 'master' into v2.1
This commit is contained in:
commit
a471ab78c7
@ -1395,7 +1395,7 @@ static TRef crec_arith_int64(jit_State *J, TRef *sp, CType **s, MMS mm)
|
|||||||
sp[i] = emitconv(sp[i], dt, st, IRCONV_ANY);
|
sp[i] = emitconv(sp[i], dt, st, IRCONV_ANY);
|
||||||
else if (!(st == IRT_I64 || st == IRT_U64))
|
else if (!(st == IRT_I64 || st == IRT_U64))
|
||||||
sp[i] = emitconv(sp[i], dt, IRT_INT,
|
sp[i] = emitconv(sp[i], dt, IRT_INT,
|
||||||
(s[i]->info & CTF_UNSIGNED) ? 0 : IRCONV_SEXT);
|
((st - IRT_I8) & 1) ? 0 : IRCONV_SEXT);
|
||||||
}
|
}
|
||||||
if (mm < MM_add) {
|
if (mm < MM_add) {
|
||||||
comp:
|
comp:
|
||||||
|
|||||||
@ -1144,14 +1144,10 @@ LJFOLDF(simplify_conv_i64_num)
|
|||||||
fins->op2 = ((IRT_I64<<5)|IRT_INT|IRCONV_SEXT);
|
fins->op2 = ((IRT_I64<<5)|IRT_INT|IRCONV_SEXT);
|
||||||
return RETRYFOLD;
|
return RETRYFOLD;
|
||||||
} else if ((fleft->op2 & IRCONV_SRCMASK) == IRT_U32) {
|
} else if ((fleft->op2 & IRCONV_SRCMASK) == IRT_U32) {
|
||||||
#if LJ_TARGET_X64
|
|
||||||
return fleft->op1;
|
|
||||||
#else
|
|
||||||
/* Reduce to a zero-extension. */
|
/* Reduce to a zero-extension. */
|
||||||
fins->op1 = fleft->op1;
|
fins->op1 = fleft->op1;
|
||||||
fins->op2 = (IRT_I64<<5)|IRT_U32;
|
fins->op2 = (IRT_I64<<5)|IRT_U32;
|
||||||
return RETRYFOLD;
|
return RETRYFOLD;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return NEXTFOLD;
|
return NEXTFOLD;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user