diff options
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 8718f8bb..7620ae4c 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -550,7 +550,7 @@ static void rec_loop_interp(jit_State *J, const BCIns *pc, LoopEvent ev) | |||
550 | ** an inner loop even in a root trace. But it's better to be a bit | 550 | ** an inner loop even in a root trace. But it's better to be a bit |
551 | ** more conservative here and only do it for very short loops. | 551 | ** more conservative here and only do it for very short loops. |
552 | */ | 552 | */ |
553 | if (!innerloopleft(J, pc)) | 553 | if (bc_j(*pc) != -1 && !innerloopleft(J, pc)) |
554 | lj_trace_err(J, LJ_TRERR_LINNER); /* Root trace hit an inner loop. */ | 554 | lj_trace_err(J, LJ_TRERR_LINNER); /* Root trace hit an inner loop. */ |
555 | if ((ev != LOOPEV_ENTERLO && | 555 | if ((ev != LOOPEV_ENTERLO && |
556 | J->loopref && J->cur.nins - J->loopref > 24) || --J->loopunroll < 0) | 556 | J->loopref && J->cur.nins - J->loopref > 24) || --J->loopunroll < 0) |