aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2012-09-12 11:02:19 +0200
committerMike Pall <mike>2012-09-12 11:02:19 +0200
commit039bf85e2610927119254b9c922eab484820e6a7 (patch)
tree8b7bb6d8df89652e2991b08db3f711f53ab7e849 /src
parent76ab3709da40dd3cc3ab9223dde33050430cd789 (diff)
downloadluajit-039bf85e2610927119254b9c922eab484820e6a7.tar.gz
luajit-039bf85e2610927119254b9c922eab484820e6a7.tar.bz2
luajit-039bf85e2610927119254b9c922eab484820e6a7.zip
Add more assertions for stack consistency during recording.
Diffstat (limited to 'src')
-rw-r--r--src/lj_dispatch.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c
index f795954b..7dc600e8 100644
--- a/src/lj_dispatch.c
+++ b/src/lj_dispatch.c
@@ -392,8 +392,12 @@ void LJ_FASTCALL lj_dispatch_ins(lua_State *L, const BCIns *pc)
392 { 392 {
393 jit_State *J = G2J(g); 393 jit_State *J = G2J(g);
394 if (J->state != LJ_TRACE_IDLE) { 394 if (J->state != LJ_TRACE_IDLE) {
395#ifdef LUA_USE_ASSERT
396 ptrdiff_t delta = L->top - L->base;
397#endif
395 J->L = L; 398 J->L = L;
396 lj_trace_ins(J, pc-1); /* The interpreter bytecode PC is offset by 1. */ 399 lj_trace_ins(J, pc-1); /* The interpreter bytecode PC is offset by 1. */
400 lua_assert(L->top - L->base == delta);
397 } 401 }
398 } 402 }
399#endif 403#endif
@@ -448,8 +452,12 @@ ASMFunction LJ_FASTCALL lj_dispatch_call(lua_State *L, const BCIns *pc)
448#if LJ_HASJIT 452#if LJ_HASJIT
449 J->L = L; 453 J->L = L;
450 if ((uintptr_t)pc & 1) { /* Marker for hot call. */ 454 if ((uintptr_t)pc & 1) { /* Marker for hot call. */
455#ifdef LUA_USE_ASSERT
456 ptrdiff_t delta = L->top - L->base;
457#endif
451 pc = (const BCIns *)((uintptr_t)pc & ~(uintptr_t)1); 458 pc = (const BCIns *)((uintptr_t)pc & ~(uintptr_t)1);
452 lj_trace_hot(J, pc); 459 lj_trace_hot(J, pc);
460 lua_assert(L->top - L->base == delta);
453 goto out; 461 goto out;
454 } else if (J->state != LJ_TRACE_IDLE && 462 } else if (J->state != LJ_TRACE_IDLE &&
455 !(g->hookmask & (HOOK_GC|HOOK_VMEVENT))) { 463 !(g->hookmask & (HOOK_GC|HOOK_VMEVENT))) {