aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 91282768..ca12ae6b 100644
--- a/src/lj_parse.c
+++ b/src/lj_parse.c
@@ -687,10 +687,12 @@ static BCPos bcemit_jmp(FuncState *fs)
687 BCPos j = fs->pc - 1; 687 BCPos j = fs->pc - 1;
688 BCIns *ip = &fs->bcbase[j].ins; 688 BCIns *ip = &fs->bcbase[j].ins;
689 fs->jpc = NO_JMP; 689 fs->jpc = NO_JMP;
690 if ((int32_t)j >= (int32_t)fs->lasttarget && bc_op(*ip) == BC_UCLO) 690 if ((int32_t)j >= (int32_t)fs->lasttarget && bc_op(*ip) == BC_UCLO) {
691 setbc_j(ip, NO_JMP); 691 setbc_j(ip, NO_JMP);
692 else 692 fs->lasttarget = j+1;
693 } else {
693 j = bcemit_AJ(fs, BC_JMP, fs->freereg, NO_JMP); 694 j = bcemit_AJ(fs, BC_JMP, fs->freereg, NO_JMP);
695 }
694 jmp_append(fs, &j, jpc); 696 jmp_append(fs, &j, jpc);
695 return j; 697 return j;
696} 698}