Add trace recorder infrastructure for instruction post-processing.
This commit is contained in:
10
src/lj_jit.h
10
src/lj_jit.h
@@ -104,9 +104,15 @@ typedef enum {
|
||||
LJ_TRACE_START, /* New trace started. */
|
||||
LJ_TRACE_END, /* End of trace. */
|
||||
LJ_TRACE_ASM, /* Assemble trace. */
|
||||
LJ_TRACE_ERR, /* Trace aborted with error. */
|
||||
LJ_TRACE_ERR /* Trace aborted with error. */
|
||||
} TraceState;
|
||||
|
||||
/* Post-processing action. */
|
||||
typedef enum {
|
||||
LJ_POST_NONE, /* No action. */
|
||||
LJ_POST_FIXGUARD /* Fixup and emit pending guard. */
|
||||
} PostProc;
|
||||
|
||||
/* Machine code type. */
|
||||
typedef uint8_t MCode;
|
||||
|
||||
@@ -284,6 +290,8 @@ typedef struct jit_State {
|
||||
SnapEntry *snapmapbuf; /* Temp. snapshot map buffer. */
|
||||
MSize sizesnapmap; /* Size of temp. snapshot map buffer. */
|
||||
|
||||
PostProc postproc; /* Required post-processing after execution. */
|
||||
|
||||
GCRef *trace; /* Array of traces. */
|
||||
TraceNo freetrace; /* Start of scan for next free trace. */
|
||||
MSize sizetrace; /* Size of trace array. */
|
||||
|
||||
Reference in New Issue
Block a user