summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2020-10-12 15:51:31 +0200
committerMike Pall <mike>2020-10-12 15:51:31 +0200
commit675e08cf069725a004284b4e1e67fbf0e8fcb4dd (patch)
tree5650c89fee60c6a0e41a3fed713dff094e7660fd /src/lj_record.c
parent4bb2e4a547330c59adadf206451944921219c6ed (diff)
parent5c46f47736f7609be407c88d531ecd1689d40a79 (diff)
downloadluajit-675e08cf069725a004284b4e1e67fbf0e8fcb4dd.tar.gz
luajit-675e08cf069725a004284b4e1e67fbf0e8fcb4dd.tar.bz2
luajit-675e08cf069725a004284b4e1e67fbf0e8fcb4dd.zip
Merge branch 'master' into v2.1
Diffstat (limited to 'src/lj_record.c')
-rw-r--r--src/lj_record.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 9e41ce05..46482aa2 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -571,10 +571,10 @@ static LoopEvent rec_iterl(jit_State *J, const BCIns iterins)
571} 571}
572 572
573/* Record LOOP/JLOOP. Now, that was easy. */ 573/* Record LOOP/JLOOP. Now, that was easy. */
574static LoopEvent rec_loop(jit_State *J, BCReg ra) 574static LoopEvent rec_loop(jit_State *J, BCReg ra, int skip)
575{ 575{
576 if (ra < J->maxslot) J->maxslot = ra; 576 if (ra < J->maxslot) J->maxslot = ra;
577 J->pc++; 577 J->pc += skip;
578 return LOOPEV_ENTER; 578 return LOOPEV_ENTER;
579} 579}
580 580
@@ -2424,7 +2424,7 @@ void lj_record_ins(jit_State *J)
2424 rec_loop_interp(J, pc, rec_iterl(J, *pc)); 2424 rec_loop_interp(J, pc, rec_iterl(J, *pc));
2425 break; 2425 break;
2426 case BC_LOOP: 2426 case BC_LOOP:
2427 rec_loop_interp(J, pc, rec_loop(J, ra)); 2427 rec_loop_interp(J, pc, rec_loop(J, ra, 1));
2428 break; 2428 break;
2429 2429
2430 case BC_JFORL: 2430 case BC_JFORL:
@@ -2434,7 +2434,8 @@ void lj_record_ins(jit_State *J)
2434 rec_loop_jit(J, rc, rec_iterl(J, traceref(J, rc)->startins)); 2434 rec_loop_jit(J, rc, rec_iterl(J, traceref(J, rc)->startins));
2435 break; 2435 break;
2436 case BC_JLOOP: 2436 case BC_JLOOP:
2437 rec_loop_jit(J, rc, rec_loop(J, ra)); 2437 rec_loop_jit(J, rc, rec_loop(J, ra,
2438 !bc_isret(bc_op(traceref(J, rc)->startins))));
2438 break; 2439 break;
2439 2440
2440 case BC_IFORL: 2441 case BC_IFORL: