aboutsummaryrefslogtreecommitdiff
path: root/src/lj_dispatch.c
diff options
context:
space:
mode:
authorMike Pall <mike>2010-03-01 06:45:30 +0100
committerMike Pall <mike>2010-03-01 06:45:30 +0100
commite7b737aa1202b06950b4ca4ec206b04bdd5a3681 (patch)
tree464258d534bfb05c1b8ee7d13cadc1422f689e4a /src/lj_dispatch.c
parent69ea553024155638c89bc12dca648c87a625ab5f (diff)
downloadluajit-e7b737aa1202b06950b4ca4ec206b04bdd5a3681.tar.gz
luajit-e7b737aa1202b06950b4ca4ec206b04bdd5a3681.tar.bz2
luajit-e7b737aa1202b06950b4ca4ec206b04bdd5a3681.zip
Implement down-recursion.
Diffstat (limited to 'src/lj_dispatch.c')
-rw-r--r--src/lj_dispatch.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c
index 83bb4fd8..f956aa1b 100644
--- a/src/lj_dispatch.c
+++ b/src/lj_dispatch.c
@@ -380,11 +380,8 @@ void LJ_FASTCALL lj_dispatch_ins(lua_State *L, const BCIns *pc)
380 L->top = L->base + slots; /* Fix top again. */ 380 L->top = L->base + slots; /* Fix top again. */
381 } 381 }
382 } 382 }
383 if ((g->hookmask & LUA_MASKRET)) { 383 if ((g->hookmask & LUA_MASKRET) && bc_isret(bc_op(pc[-1])))
384 BCOp op = bc_op(pc[-1]); 384 callhook(L, LUA_HOOKRET, -1);
385 if (op == BC_RETM || op == BC_RET || op == BC_RET0 || op == BC_RET1)
386 callhook(L, LUA_HOOKRET, -1);
387 }
388} 385}
389 386
390/* Initialize call. Ensure stack space and clear missing parameters. */ 387/* Initialize call. Ensure stack space and clear missing parameters. */