diff options
-rw-r--r-- | src/lj_parse.c | 6 |
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 | } |