Merge branch 'master' into v2.1

This commit is contained in:
Mike Pall 2023-12-23 19:49:43 +01:00
commit dbd363ca25
2 changed files with 3 additions and 0 deletions

View File

@ -383,6 +383,7 @@ typedef struct IRType1 { uint8_t irt; } IRType1;
#define irt_isu32(t) (irt_type(t) == IRT_U32) #define irt_isu32(t) (irt_type(t) == IRT_U32)
#define irt_isi64(t) (irt_type(t) == IRT_I64) #define irt_isi64(t) (irt_type(t) == IRT_I64)
#define irt_isu64(t) (irt_type(t) == IRT_U64) #define irt_isu64(t) (irt_type(t) == IRT_U64)
#define irt_isp32(t) (irt_type(t) == IRT_P32)
#define irt_isfp(t) (irt_isnum(t) || irt_isfloat(t)) #define irt_isfp(t) (irt_isnum(t) || irt_isfloat(t))
#define irt_isinteger(t) (irt_typerange((t), IRT_I8, IRT_INT)) #define irt_isinteger(t) (irt_typerange((t), IRT_I8, IRT_INT))

View File

@ -960,6 +960,8 @@ int lj_opt_fwd_wasnonnil(jit_State *J, IROpT loadop, IRRef xref)
if (skref == xkref || !irref_isk(skref) || !irref_isk(xkref)) if (skref == xkref || !irref_isk(skref) || !irref_isk(xkref))
return 0; /* A nil store with same const key or var key MAY alias. */ return 0; /* A nil store with same const key or var key MAY alias. */
/* Different const keys CANNOT alias. */ /* Different const keys CANNOT alias. */
} else if (irt_isp32(IR(skref)->t) != irt_isp32(IR(xkref)->t)) {
return 0; /* HREF and HREFK MAY alias. */
} /* Different key types CANNOT alias. */ } /* Different key types CANNOT alias. */
} /* Other non-nil stores MAY alias. */ } /* Other non-nil stores MAY alias. */
ref = store->prev; ref = store->prev;