aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_parse.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_parse.c b/src/lj_parse.c
index e8aafba2..5ced1dd8 100644
--- a/src/lj_parse.c
+++ b/src/lj_parse.c
@@ -685,10 +685,12 @@ static BCPos bcemit_jmp(FuncState *fs)
685 BCPos j = fs->pc - 1; 685 BCPos j = fs->pc - 1;
686 BCIns *ip = &fs->bcbase[j].ins; 686 BCIns *ip = &fs->bcbase[j].ins;
687 fs->jpc = NO_JMP; 687 fs->jpc = NO_JMP;
688 if ((int32_t)j >= (int32_t)fs->lasttarget && bc_op(*ip) == BC_UCLO) 688 if ((int32_t)j >= (int32_t)fs->lasttarget && bc_op(*ip) == BC_UCLO) {
689 setbc_j(ip, NO_JMP); 689 setbc_j(ip, NO_JMP);
690 else 690 fs->lasttarget = j+1;
691 } else {
691 j = bcemit_AJ(fs, BC_JMP, fs->freereg, NO_JMP); 692 j = bcemit_AJ(fs, BC_JMP, fs->freereg, NO_JMP);
693 }
692 jmp_append(fs, &j, jpc); 694 jmp_append(fs, &j, jpc);
693 return j; 695 return j;
694} 696}