summaryrefslogtreecommitdiff
path: root/src/lj_trace.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-01-17 01:20:10 +0100
committerMike Pall <mike>2011-01-17 01:20:10 +0100
commit66ba1e68aab23fa09fcbe84b79d4992c92440b0c (patch)
tree6803a405c9a478edac3346cd8eb762b26a6dd314 /src/lj_trace.c
parentb2ff889c6e2bd637a906b7b81641faf5682f771e (diff)
downloadluajit-66ba1e68aab23fa09fcbe84b79d4992c92440b0c.tar.gz
luajit-66ba1e68aab23fa09fcbe84b79d4992c92440b0c.tar.bz2
luajit-66ba1e68aab23fa09fcbe84b79d4992c92440b0c.zip
Add trace recorder infrastructure for instruction post-processing.
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r--src/lj_trace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c
index c508c02a..421278e1 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -388,6 +388,7 @@ static void trace_start(jit_State *J)
388 J->needsnap = 0; 388 J->needsnap = 0;
389 J->bcskip = 0; 389 J->bcskip = 0;
390 J->guardemit.irt = 0; 390 J->guardemit.irt = 0;
391 J->postproc = LJ_POST_NONE;
391 setgcref(J->cur.startpt, obj2gco(J->pt)); 392 setgcref(J->cur.startpt, obj2gco(J->pt));
392 393
393 L = J->L; 394 L = J->L;
@@ -454,6 +455,7 @@ static void trace_stop(jit_State *J)
454 455
455 /* Commit new mcode only after all patching is done. */ 456 /* Commit new mcode only after all patching is done. */
456 lj_mcode_commit(J, J->cur.mcode); 457 lj_mcode_commit(J, J->cur.mcode);
458 J->postproc = LJ_POST_NONE;
457 trace_save(J); 459 trace_save(J);
458 460
459 L = J->L; 461 L = J->L;
@@ -485,6 +487,7 @@ static int trace_abort(jit_State *J)
485 TraceError e = LJ_TRERR_RECERR; 487 TraceError e = LJ_TRERR_RECERR;
486 TraceNo traceno; 488 TraceNo traceno;
487 489
490 J->postproc = LJ_POST_NONE;
488 lj_mcode_abort(J); 491 lj_mcode_abort(J);
489 if (tvisnum(L->top-1)) 492 if (tvisnum(L->top-1))
490 e = (TraceError)lj_num2int(numV(L->top-1)); 493 e = (TraceError)lj_num2int(numV(L->top-1));