diff options
-rw-r--r-- | src/lj_record.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index e51c98ba..7f7a0b63 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -2765,9 +2765,11 @@ void lj_record_setup(jit_State *J) | |||
2765 | } | 2765 | } |
2766 | lj_snap_replay(J, T); | 2766 | lj_snap_replay(J, T); |
2767 | sidecheck: | 2767 | sidecheck: |
2768 | if (traceref(J, J->cur.root)->nchild >= J->param[JIT_P_maxside] || | 2768 | if ((traceref(J, J->cur.root)->nchild >= J->param[JIT_P_maxside] || |
2769 | T->snap[J->exitno].count >= J->param[JIT_P_hotexit] + | 2769 | T->snap[J->exitno].count >= J->param[JIT_P_hotexit] + |
2770 | J->param[JIT_P_tryside]) { | 2770 | J->param[JIT_P_tryside]) && |
2771 | !(bc_op(*J->pc) == BC_JLOOP && | ||
2772 | bc_op(traceref(J, bc_d(*J->pc))->startins) == BC_ITERN)) { | ||
2771 | lj_record_stop(J, LJ_TRLINK_INTERP, 0); | 2773 | lj_record_stop(J, LJ_TRLINK_INTERP, 0); |
2772 | } | 2774 | } |
2773 | } else { /* Root trace. */ | 2775 | } else { /* Root trace. */ |