aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-01-28 04:20:20 +0100
committerMike Pall <mike>2010-01-28 04:20:20 +0100
commit2ed0bb7f1edd189f8af9a5420be9b0718eadcbd5 (patch)
treee244d938bc4b4f60cd4779b4d41c6ad9b3e8ecc7 /src
parenta6565d21fa56756cf4ecb1aec3da38d4cd23b9f1 (diff)
downloadluajit-2ed0bb7f1edd189f8af9a5420be9b0718eadcbd5.tar.gz
luajit-2ed0bb7f1edd189f8af9a5420be9b0718eadcbd5.tar.bz2
luajit-2ed0bb7f1edd189f8af9a5420be9b0718eadcbd5.zip
Drop obsolete frame shrinking after continuation return.
Diffstat (limited to 'src')
-rw-r--r--src/lj_record.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index b7832752..f24c287d 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1529,13 +1529,10 @@ static void rec_ret(jit_State *J, BCReg rbase, int gotresults)
1529 J->base -= cbase+1; 1529 J->base -= cbase+1;
1530 } else if (frame_iscont(frame)) { 1530 } else if (frame_iscont(frame)) {
1531 ASMFunction cont = frame_contf(frame); 1531 ASMFunction cont = frame_contf(frame);
1532 BCReg i, cbase = (BCReg)frame_delta(frame); 1532 BCReg cbase = (BCReg)frame_delta(frame);
1533 J->pc = frame_contpc(frame)-1; 1533 J->pc = frame_contpc(frame)-1;
1534 J->baseslot -= (BCReg)cbase; 1534 J->baseslot -= (BCReg)cbase;
1535 J->base -= cbase; 1535 J->base -= cbase;
1536 /* Shrink maxslot as much as possible after return from continuation. */
1537 for (i = cbase-2; i > 0 && J->base[i] == 0; i--) ;
1538 J->maxslot = i;
1539 if (cont == lj_cont_ra) { 1536 if (cont == lj_cont_ra) {
1540 /* Copy result to destination slot. */ 1537 /* Copy result to destination slot. */
1541 BCReg dst = bc_a(*J->pc); 1538 BCReg dst = bc_a(*J->pc);