diff options
author | Mike Pall <mike> | 2023-11-09 11:02:36 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2023-11-09 11:02:36 +0100 |
commit | 65c849390702b1150d52e64db86cbc6b3c98413e (patch) | |
tree | 7bc5b97b147fd06e7a894ee450e93bda890cdf67 | |
parent | 433d7e8d8d182f44e88b5cfdc4b2d3026469dfb7 (diff) | |
download | luajit-65c849390702b1150d52e64db86cbc6b3c98413e.tar.gz luajit-65c849390702b1150d52e64db86cbc6b3c98413e.tar.bz2 luajit-65c849390702b1150d52e64db86cbc6b3c98413e.zip |
Invalidate SCEV entry when returning to lower frame.
Thanks to Zhongwei Yao. #1115
-rw-r--r-- | src/lj_record.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index a49f942a..0122105b 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -755,6 +755,7 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) | |||
755 | emitir(IRTG(IR_RETF, IRT_P32), trpt, trpc); | 755 | emitir(IRTG(IR_RETF, IRT_P32), trpt, trpc); |
756 | J->retdepth++; | 756 | J->retdepth++; |
757 | J->needsnap = 1; | 757 | J->needsnap = 1; |
758 | J->scev.idx = REF_NIL; | ||
758 | lua_assert(J->baseslot == 1); | 759 | lua_assert(J->baseslot == 1); |
759 | /* Shift result slots up and clear the slots of the new frame below. */ | 760 | /* Shift result slots up and clear the slots of the new frame below. */ |
760 | memmove(J->base + cbase, J->base-1, sizeof(TRef)*nresults); | 761 | memmove(J->base + cbase, J->base-1, sizeof(TRef)*nresults); |