aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2014-02-28 14:09:09 +0100
committerMike Pall <mike>2014-02-28 14:09:09 +0100
commitef3cc47f9fb7df9ed2d92c420162cdabed81dc0e (patch)
tree5a39b349dcca007f180216e3794c27049caa5f04
parent900d0ce2764008c5326340bc66265e79222128b0 (diff)
downloadluajit-ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e.tar.gz
luajit-ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e.tar.bz2
luajit-ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e.zip
Fix recording of BC_VARG.
-rw-r--r--src/lj_record.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 0dfc10b3..c6848fc0 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1508,10 +1508,8 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
1508 } else if (dst + nresults > J->maxslot) { 1508 } else if (dst + nresults > J->maxslot) {
1509 J->maxslot = dst + (BCReg)nresults; 1509 J->maxslot = dst + (BCReg)nresults;
1510 } 1510 }
1511 for (i = 0; i < nresults; i++) { 1511 for (i = 0; i < nresults; i++)
1512 J->base[dst+i] = i < nvararg ? J->base[i - nvararg - 1] : TREF_NIL; 1512 J->base[dst+i] = i < nvararg ? getslot(J, i - nvararg - 1) : TREF_NIL;
1513 lua_assert(J->base[dst+i] != 0);
1514 }
1515 } else { /* Unknown number of varargs passed to trace. */ 1513 } else { /* Unknown number of varargs passed to trace. */
1516 TRef fr = emitir(IRTI(IR_SLOAD), 0, IRSLOAD_READONLY|IRSLOAD_FRAME); 1514 TRef fr = emitir(IRTI(IR_SLOAD), 0, IRSLOAD_READONLY|IRSLOAD_FRAME);
1517 int32_t frofs = 8*(1+numparams)+FRAME_VARG; 1515 int32_t frofs = 8*(1+numparams)+FRAME_VARG;