summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2013-11-22 05:42:56 +0100
committerMike Pall <mike>2013-11-22 05:42:56 +0100
commitf371ed6bd8741834b4b0278cf2c9e95e32f2cb26 (patch)
tree52c4c461288427cf2705a36af2f8d485bf6b50d8 /src/lj_record.c
parent9d909883474e0079227aed20a50122b5969ed429 (diff)
downloadluajit-f371ed6bd8741834b4b0278cf2c9e95e32f2cb26.tar.gz
luajit-f371ed6bd8741834b4b0278cf2c9e95e32f2cb26.tar.bz2
luajit-f371ed6bd8741834b4b0278cf2c9e95e32f2cb26.zip
Respect jit.off(func) when returning to a function, too.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r--src/lj_record.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 7336e0ac..30b9efc1 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -722,6 +722,8 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults)
722 ptrdiff_t nresults = bc_b(callins) ? (ptrdiff_t)bc_b(callins)-1 :gotresults; 722 ptrdiff_t nresults = bc_b(callins) ? (ptrdiff_t)bc_b(callins)-1 :gotresults;
723 BCReg cbase = bc_a(callins); 723 BCReg cbase = bc_a(callins);
724 GCproto *pt = funcproto(frame_func(frame - (cbase+1))); 724 GCproto *pt = funcproto(frame_func(frame - (cbase+1)));
725 if ((pt->flags & PROTO_NOJIT))
726 lj_trace_err(J, LJ_TRERR_CJITOFF);
725 if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { 727 if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) {
726 if (check_downrec_unroll(J, pt)) { 728 if (check_downrec_unroll(J, pt)) {
727 J->maxslot = (BCReg)(rbase + gotresults); 729 J->maxslot = (BCReg)(rbase + gotresults);