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 /src | |
| 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
Diffstat (limited to 'src')
| -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); |
