diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_record.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 7f7a0b63..4fe1a056 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -2767,9 +2767,12 @@ void lj_record_setup(jit_State *J) | |||
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 && | 2771 | if (bc_op(*J->pc) == BC_JLOOP) { |
2772 | bc_op(traceref(J, bc_d(*J->pc))->startins) == BC_ITERN)) { | 2772 | BCIns startins = traceref(J, bc_d(*J->pc))->startins; |
2773 | if (bc_op(startins) == BC_ITERN) | ||
2774 | rec_itern(J, bc_a(startins), bc_b(startins)); | ||
2775 | } | ||
2773 | lj_record_stop(J, LJ_TRLINK_INTERP, 0); | 2776 | lj_record_stop(J, LJ_TRLINK_INTERP, 0); |
2774 | } | 2777 | } |
2775 | } else { /* Root trace. */ | 2778 | } else { /* Root trace. */ |