mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-08 07:34:07 +00:00
FFI: Load FFI library on-demand for -jdump.
This commit is contained in:
parent
acda75ad2c
commit
09ef8d1077
@ -24,9 +24,9 @@ lib_io.o: lib_io.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \
|
|||||||
lj_strfmt.h lj_ff.h lj_ffdef.h lj_lib.h lj_libdef.h
|
lj_strfmt.h lj_ff.h lj_ffdef.h lj_lib.h lj_libdef.h
|
||||||
lib_jit.o: lib_jit.c lua.h luaconf.h lauxlib.h lualib.h lj_arch.h \
|
lib_jit.o: lib_jit.c lua.h luaconf.h lauxlib.h lualib.h lj_arch.h \
|
||||||
lj_obj.h lj_def.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h \
|
lj_obj.h lj_def.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h lj_tab.h \
|
||||||
lj_bc.h lj_ir.h lj_jit.h lj_ircall.h lj_iropt.h lj_target.h \
|
lj_state.h lj_bc.h lj_ctype.h lj_gc.h lj_ir.h lj_jit.h lj_ircall.h \
|
||||||
lj_target_*.h lj_dispatch.h lj_vm.h lj_vmevent.h lj_lib.h luajit.h \
|
lj_iropt.h lj_target.h lj_target_*.h lj_dispatch.h lj_vm.h \
|
||||||
lj_libdef.h
|
lj_vmevent.h lj_lib.h luajit.h lj_libdef.h
|
||||||
lib_math.o: lib_math.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \
|
lib_math.o: lib_math.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \
|
||||||
lj_def.h lj_arch.h lj_lib.h lj_vm.h lj_libdef.h
|
lj_def.h lj_arch.h lj_lib.h lj_vm.h lj_libdef.h
|
||||||
lib_os.o: lib_os.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \
|
lib_os.o: lib_os.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \
|
||||||
|
@ -16,7 +16,11 @@
|
|||||||
#include "lj_debug.h"
|
#include "lj_debug.h"
|
||||||
#include "lj_str.h"
|
#include "lj_str.h"
|
||||||
#include "lj_tab.h"
|
#include "lj_tab.h"
|
||||||
|
#include "lj_state.h"
|
||||||
#include "lj_bc.h"
|
#include "lj_bc.h"
|
||||||
|
#if LJ_HASFFI
|
||||||
|
#include "lj_ctype.h"
|
||||||
|
#endif
|
||||||
#if LJ_HASJIT
|
#if LJ_HASJIT
|
||||||
#include "lj_ir.h"
|
#include "lj_ir.h"
|
||||||
#include "lj_jit.h"
|
#include "lj_jit.h"
|
||||||
@ -332,6 +336,13 @@ LJLIB_CF(jit_util_tracek)
|
|||||||
slot = ir->op2;
|
slot = ir->op2;
|
||||||
ir = &T->ir[ir->op1];
|
ir = &T->ir[ir->op1];
|
||||||
}
|
}
|
||||||
|
#if LJ_HASFFI
|
||||||
|
if (ir->o == IR_KINT64 && !ctype_ctsG(G(L))) {
|
||||||
|
ptrdiff_t oldtop = savestack(L, L->top);
|
||||||
|
luaopen_ffi(L); /* Load FFI library on-demand. */
|
||||||
|
L->top = restorestack(L, oldtop);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
lj_ir_kvalue(L, L->top-2, ir);
|
lj_ir_kvalue(L, L->top-2, ir);
|
||||||
setintV(L->top-1, (int32_t)irt_type(ir->t));
|
setintV(L->top-1, (int32_t)irt_type(ir->t));
|
||||||
if (slot == -1)
|
if (slot == -1)
|
||||||
|
Loading…
Reference in New Issue
Block a user