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