diff options
Diffstat (limited to 'src/lj_asm.c')
-rw-r--r-- | src/lj_asm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c index 9cdbcf12..aed12043 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c | |||
@@ -3044,7 +3044,7 @@ static void asm_tail_sync(ASMState *as) | |||
3044 | SnapShot *snap = &as->T->snap[as->T->nsnap-1]; /* Last snapshot. */ | 3044 | SnapShot *snap = &as->T->snap[as->T->nsnap-1]; /* Last snapshot. */ |
3045 | MSize n, nent = snap->nent; | 3045 | MSize n, nent = snap->nent; |
3046 | SnapEntry *map = &as->T->snapmap[snap->mapofs]; | 3046 | SnapEntry *map = &as->T->snapmap[snap->mapofs]; |
3047 | SnapEntry *flinks = map + nent + 1; | 3047 | SnapEntry *flinks = map + nent + snap->depth; |
3048 | BCReg newbase = 0, topslot = 0; | 3048 | BCReg newbase = 0, topslot = 0; |
3049 | 3049 | ||
3050 | checkmclim(as); | 3050 | checkmclim(as); |
@@ -3102,11 +3102,11 @@ static void asm_tail_sync(ASMState *as) | |||
3102 | if (!(sn & (SNAP_CONT|SNAP_FRAME))) | 3102 | if (!(sn & (SNAP_CONT|SNAP_FRAME))) |
3103 | emit_movmroi(as, RID_BASE, ofs+4, irt_toitype(ir->t)); | 3103 | emit_movmroi(as, RID_BASE, ofs+4, irt_toitype(ir->t)); |
3104 | else if (s != 0) /* Do not overwrite link to previous frame. */ | 3104 | else if (s != 0) /* Do not overwrite link to previous frame. */ |
3105 | emit_movmroi(as, RID_BASE, ofs+4, (int32_t)(*flinks++)); | 3105 | emit_movmroi(as, RID_BASE, ofs+4, (int32_t)(*flinks--)); |
3106 | } | 3106 | } |
3107 | checkmclim(as); | 3107 | checkmclim(as); |
3108 | } | 3108 | } |
3109 | lua_assert(map + nent + 1 + snap->depth == flinks); | 3109 | lua_assert(map + nent == flinks); |
3110 | } | 3110 | } |
3111 | 3111 | ||
3112 | /* Fixup the tail code. */ | 3112 | /* Fixup the tail code. */ |