diff options
author | Mike Pall <mike> | 2014-02-28 14:09:09 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2014-02-28 14:09:09 +0100 |
commit | ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e (patch) | |
tree | 5a39b349dcca007f180216e3794c27049caa5f04 | |
parent | 900d0ce2764008c5326340bc66265e79222128b0 (diff) | |
download | luajit-ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e.tar.gz luajit-ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e.tar.bz2 luajit-ef3cc47f9fb7df9ed2d92c420162cdabed81dc0e.zip |
Fix recording of BC_VARG.
-rw-r--r-- | src/lj_record.c | 6 |
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; |