3 ** Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h
13 #include "lj_dispatch.h"
17 #define TREDEF(name, msg) LJ_TRERR_##name,
18 #include "lj_traceerr.h"
22 LJ_FUNC_NORET
void lj_trace_err(jit_State
*J
, TraceError e
);
23 LJ_FUNC_NORET
void lj_trace_err_info(jit_State
*J
, TraceError e
);
25 /* Trace management. */
26 LJ_FUNC GCtrace
* LJ_FASTCALL
lj_trace_alloc(lua_State
*L
, GCtrace
*T
);
27 LJ_FUNC
void LJ_FASTCALL
lj_trace_free(global_State
*g
, GCtrace
*T
);
28 LJ_FUNC
void lj_trace_reenableproto(GCproto
*pt
);
29 LJ_FUNC
void lj_trace_flushproto(global_State
*g
, GCproto
*pt
);
30 LJ_FUNC
void lj_trace_flush(jit_State
*J
, TraceNo traceno
);
31 LJ_FUNC
int lj_trace_flushall(lua_State
*L
);
32 LJ_FUNC
void lj_trace_initstate(global_State
*g
);
33 LJ_FUNC
void lj_trace_freestate(global_State
*g
);
36 LJ_FUNC
void lj_trace_ins(jit_State
*J
, const BCIns
*pc
);
37 LJ_FUNCA
void LJ_FASTCALL
lj_trace_hot(jit_State
*J
, const BCIns
*pc
);
38 LJ_FUNCA
void LJ_FASTCALL
lj_trace_stitch(jit_State
*J
, const BCIns
*pc
);
39 LJ_FUNCA
int LJ_FASTCALL
lj_trace_exit(jit_State
*J
, void *exptr
);
41 LJ_FUNC
uintptr_t LJ_FASTCALL
lj_trace_unwind(jit_State
*J
, uintptr_t addr
, ExitNo
*ep
);
44 /* Signal asynchronous abort of trace or end of trace. */
45 #define lj_trace_abort(g) (G2J(g)->state &= ~LJ_TRACE_ACTIVE)
46 #define lj_trace_end(J) (J->state = LJ_TRACE_END)
50 #define lj_trace_flushall(L) (UNUSED(L), 0)
51 #define lj_trace_initstate(g) UNUSED(g)
52 #define lj_trace_freestate(g) UNUSED(g)
53 #define lj_trace_abort(g) UNUSED(g)
54 #define lj_trace_end(J) UNUSED(J)