aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-05-04 21:34:21 +0200
committerMike Pall <mike>2011-05-04 21:34:21 +0200
commitb4006ba9a8bf506c98d12f32c182219bb8d9cd4f (patch)
tree2b8b12b5eca975875fa7a133d5182156191fc1d9 /src
parent139175f8c48af3ceefb6838dabc0f1222fd150b1 (diff)
downloadluajit-b4006ba9a8bf506c98d12f32c182219bb8d9cd4f.tar.gz
luajit-b4006ba9a8bf506c98d12f32c182219bb8d9cd4f.tar.bz2
luajit-b4006ba9a8bf506c98d12f32c182219bb8d9cd4f.zip
Fix stack slot updates for down-recursion.
Diffstat (limited to 'src')
-rw-r--r--src/lj_record.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 41b2221a..472597b6 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -666,7 +666,8 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults)
666 GCproto *pt = funcproto(frame_func(frame - (cbase+1))); 666 GCproto *pt = funcproto(frame_func(frame - (cbase+1)));
667 if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { 667 if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) {
668 if (check_downrec_unroll(J, pt)) { 668 if (check_downrec_unroll(J, pt)) {
669 J->maxslot = (BCReg)(rbase + nresults); 669 J->maxslot = (BCReg)(rbase + gotresults);
670 lj_snap_purge(J);
670 rec_stop(J, J->cur.traceno); /* Down-recursion. */ 671 rec_stop(J, J->cur.traceno); /* Down-recursion. */
671 return; 672 return;
672 } 673 }