From 999f57de83180c4edd928eb9051e58602ba7e20a Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 5 Jan 2015 23:39:37 +0100 Subject: [PATCH] Fix BC_UCLO/BC_JMP join optimization in Lua parser. --- src/lj_parse.c | 6 ++++-- 1 file 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) BCPos j = fs->pc - 1; BCIns *ip = &fs->bcbase[j].ins; fs->jpc = NO_JMP; - if ((int32_t)j >= (int32_t)fs->lasttarget && bc_op(*ip) == BC_UCLO) + if ((int32_t)j >= (int32_t)fs->lasttarget && bc_op(*ip) == BC_UCLO) { setbc_j(ip, NO_JMP); - else + fs->lasttarget = j+1; + } else { j = bcemit_AJ(fs, BC_JMP, fs->freereg, NO_JMP); + } jmp_append(fs, &j, jpc); return j; } -- 2.11.4.GIT