diff options
author | Mike Pall <mike> | 2023-12-23 19:49:43 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2023-12-23 19:49:43 +0100 |
commit | dbd363ca256bbc671834253e7cbe226b397af8c8 (patch) | |
tree | d5ffa1e36f474366cd6fa389ee38b1d9b5066129 /src | |
parent | 293199c5eba1e3036d975c045947051d9e160b48 (diff) | |
parent | 658530562c2ac7ffa8e4ca5d18856857471244e9 (diff) | |
download | luajit-dbd363ca256bbc671834253e7cbe226b397af8c8.tar.gz luajit-dbd363ca256bbc671834253e7cbe226b397af8c8.tar.bz2 luajit-dbd363ca256bbc671834253e7cbe226b397af8c8.zip |
Merge branch 'master' into v2.1
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_ir.h | 1 | ||||
-rw-r--r-- | src/lj_opt_mem.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/lj_ir.h b/src/lj_ir.h index dbfba258..cc73a849 100644 --- a/src/lj_ir.h +++ b/src/lj_ir.h | |||
@@ -383,6 +383,7 @@ typedef struct IRType1 { uint8_t irt; } IRType1; | |||
383 | #define irt_isu32(t) (irt_type(t) == IRT_U32) | 383 | #define irt_isu32(t) (irt_type(t) == IRT_U32) |
384 | #define irt_isi64(t) (irt_type(t) == IRT_I64) | 384 | #define irt_isi64(t) (irt_type(t) == IRT_I64) |
385 | #define irt_isu64(t) (irt_type(t) == IRT_U64) | 385 | #define irt_isu64(t) (irt_type(t) == IRT_U64) |
386 | #define irt_isp32(t) (irt_type(t) == IRT_P32) | ||
386 | 387 | ||
387 | #define irt_isfp(t) (irt_isnum(t) || irt_isfloat(t)) | 388 | #define irt_isfp(t) (irt_isnum(t) || irt_isfloat(t)) |
388 | #define irt_isinteger(t) (irt_typerange((t), IRT_I8, IRT_INT)) | 389 | #define irt_isinteger(t) (irt_typerange((t), IRT_I8, IRT_INT)) |
diff --git a/src/lj_opt_mem.c b/src/lj_opt_mem.c index 55b40c3b..29b33f29 100644 --- a/src/lj_opt_mem.c +++ b/src/lj_opt_mem.c | |||
@@ -960,6 +960,8 @@ int lj_opt_fwd_wasnonnil(jit_State *J, IROpT loadop, IRRef xref) | |||
960 | if (skref == xkref || !irref_isk(skref) || !irref_isk(xkref)) | 960 | if (skref == xkref || !irref_isk(skref) || !irref_isk(xkref)) |
961 | return 0; /* A nil store with same const key or var key MAY alias. */ | 961 | return 0; /* A nil store with same const key or var key MAY alias. */ |
962 | /* Different const keys CANNOT alias. */ | 962 | /* Different const keys CANNOT alias. */ |
963 | } else if (irt_isp32(IR(skref)->t) != irt_isp32(IR(xkref)->t)) { | ||
964 | return 0; /* HREF and HREFK MAY alias. */ | ||
963 | } /* Different key types CANNOT alias. */ | 965 | } /* Different key types CANNOT alias. */ |
964 | } /* Other non-nil stores MAY alias. */ | 966 | } /* Other non-nil stores MAY alias. */ |
965 | ref = store->prev; | 967 | ref = store->prev; |