1 /*
2 ** Machine code management.
3 ** Copyright (C) 2005-2021 Mike Pall. See Copyright Notice in luajit.h
4 */
5 
6 #ifndef _LJ_MCODE_H
7 #define _LJ_MCODE_H
8 
9 #include "lj_obj.h"
10 
11 #if LJ_HASJIT || LJ_HASFFI
12 LJ_FUNC void lj_mcode_sync(void *start, void *end);
13 #endif
14 
15 #if LJ_HASJIT
16 
17 #include "lj_jit.h"
18 
19 LJ_FUNC void lj_mcode_free(jit_State *J);
20 LJ_FUNC MCode *lj_mcode_reserve(jit_State *J, MCode **lim);
21 LJ_FUNC void lj_mcode_commit(jit_State *J, MCode *m);
22 LJ_FUNC void lj_mcode_abort(jit_State *J);
23 LJ_FUNC MCode *lj_mcode_patch(jit_State *J, MCode *ptr, int finish);
24 LJ_FUNC_NORET void lj_mcode_limiterr(jit_State *J, size_t need);
25 
26 #define lj_mcode_commitbot(J, m)	(J->mcbot = (m))
27 
28 #endif
29 
30 #endif
31