immunio 0.15.4 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +0 -27
- data/ext/immunio/Rakefile +9 -0
- data/lib/immunio/plugins/active_record.rb +1 -1
- data/lib/immunio/plugins/active_record_relation.rb +1 -1
- data/lib/immunio/plugins/environment_reporter.rb +20 -0
- data/lib/immunio/rufus_lua_ext/ref.rb +1 -3
- data/lib/immunio/version.rb +1 -1
- data/lib/immunio/vm.rb +1 -2
- data/lua-hooks/Makefile +97 -0
- data/lua-hooks/ext/all.c +41 -52
- data/lua-hooks/ext/all.o +0 -0
- data/lua-hooks/ext/libinjection/libinjection_html5.o +0 -0
- data/lua-hooks/ext/libinjection/libinjection_sqli.o +0 -0
- data/lua-hooks/ext/libinjection/libinjection_xss.o +0 -0
- data/lua-hooks/ext/libinjection/lualib.c +2 -2
- data/lua-hooks/ext/lpeg/lpcap.c +2 -2
- data/lua-hooks/ext/lpeg/lpcap.o +0 -0
- data/lua-hooks/ext/lpeg/lpcode.c +2 -2
- data/lua-hooks/ext/lpeg/lpcode.h +1 -1
- data/lua-hooks/ext/lpeg/lpcode.o +0 -0
- data/lua-hooks/ext/lpeg/lpprint.o +0 -0
- data/lua-hooks/ext/lpeg/lptree.c +2 -2
- data/lua-hooks/ext/lpeg/lptypes.h +1 -1
- data/lua-hooks/ext/lpeg/lpvm.c +2 -2
- data/lua-hooks/ext/lpeg/lpvm.o +0 -0
- data/lua-hooks/ext/lua-cmsgpack/lua_cmsgpack.c +16 -3
- data/lua-hooks/ext/lua-snapshot/snapshot.c +14 -7
- data/lua-hooks/ext/luajit/COPYRIGHT +56 -0
- data/lua-hooks/ext/luajit/Makefile +159 -0
- data/lua-hooks/ext/luajit/README +16 -0
- data/lua-hooks/ext/luajit/doc/bluequad-print.css +166 -0
- data/lua-hooks/ext/luajit/doc/bluequad.css +325 -0
- data/lua-hooks/ext/luajit/doc/changes.html +804 -0
- data/lua-hooks/ext/luajit/doc/contact.html +104 -0
- data/lua-hooks/ext/luajit/doc/ext_c_api.html +189 -0
- data/lua-hooks/ext/luajit/doc/ext_ffi.html +332 -0
- data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +570 -0
- data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +1261 -0
- data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +603 -0
- data/lua-hooks/ext/luajit/doc/ext_jit.html +201 -0
- data/lua-hooks/ext/luajit/doc/ext_profiler.html +365 -0
- data/lua-hooks/ext/luajit/doc/extensions.html +448 -0
- data/lua-hooks/ext/luajit/doc/faq.html +186 -0
- data/lua-hooks/ext/luajit/doc/img/contact.png +0 -0
- data/lua-hooks/ext/luajit/doc/install.html +659 -0
- data/lua-hooks/ext/luajit/doc/luajit.html +236 -0
- data/lua-hooks/ext/luajit/doc/running.html +309 -0
- data/lua-hooks/ext/luajit/doc/status.html +118 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +456 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +1125 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +518 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +1166 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +416 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +953 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +419 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +1919 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +83 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +12 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +471 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +1945 -0
- data/lua-hooks/ext/luajit/dynasm/dynasm.lua +1094 -0
- data/lua-hooks/ext/luajit/etc/luajit.1 +88 -0
- data/lua-hooks/ext/luajit/etc/luajit.pc +25 -0
- data/lua-hooks/ext/luajit/src/Makefile +697 -0
- data/lua-hooks/ext/luajit/src/Makefile.dep +244 -0
- data/lua-hooks/ext/luajit/src/host/README +4 -0
- data/lua-hooks/ext/luajit/src/host/buildvm +0 -0
- data/lua-hooks/ext/luajit/src/host/buildvm.c +518 -0
- data/lua-hooks/ext/luajit/src/host/buildvm.h +105 -0
- data/lua-hooks/ext/luajit/src/host/buildvm.o +0 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_arch.h +7449 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +345 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_asm.o +0 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +229 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_fold.o +0 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +457 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_lib.o +0 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_libbc.h +45 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +368 -0
- data/lua-hooks/ext/luajit/src/host/buildvm_peobj.o +0 -0
- data/lua-hooks/ext/luajit/src/host/genlibbc.lua +197 -0
- data/lua-hooks/ext/luajit/src/host/genminilua.lua +428 -0
- data/lua-hooks/ext/luajit/src/host/minilua +0 -0
- data/lua-hooks/ext/luajit/src/host/minilua.c +7770 -0
- data/lua-hooks/ext/luajit/src/host/minilua.o +0 -0
- data/lua-hooks/ext/luajit/src/jit/bc.lua +190 -0
- data/lua-hooks/ext/luajit/src/jit/bcsave.lua +661 -0
- data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +689 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +428 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +17 -0
- data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +591 -0
- data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +17 -0
- data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +838 -0
- data/lua-hooks/ext/luajit/src/jit/dump.lua +706 -0
- data/lua-hooks/ext/luajit/src/jit/p.lua +310 -0
- data/lua-hooks/ext/luajit/src/jit/v.lua +170 -0
- data/lua-hooks/ext/luajit/src/jit/vmdef.lua +362 -0
- data/lua-hooks/ext/luajit/src/jit/zone.lua +45 -0
- data/lua-hooks/ext/{lua → luajit/src}/lauxlib.h +10 -17
- data/lua-hooks/ext/luajit/src/lib_aux.c +356 -0
- data/lua-hooks/ext/luajit/src/lib_aux.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_aux_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_base.c +664 -0
- data/lua-hooks/ext/luajit/src/lib_base.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_base_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_bit.c +180 -0
- data/lua-hooks/ext/luajit/src/lib_bit.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_bit_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_debug.c +405 -0
- data/lua-hooks/ext/luajit/src/lib_debug.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_debug_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_ffi.c +872 -0
- data/lua-hooks/ext/luajit/src/lib_ffi.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_ffi_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_init.c +55 -0
- data/lua-hooks/ext/luajit/src/lib_init.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_init_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_io.c +541 -0
- data/lua-hooks/ext/luajit/src/lib_io.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_io_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_jit.c +767 -0
- data/lua-hooks/ext/luajit/src/lib_jit.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_jit_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_math.c +230 -0
- data/lua-hooks/ext/luajit/src/lib_math.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_math_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_os.c +292 -0
- data/lua-hooks/ext/luajit/src/lib_os.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_os_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_package.c +610 -0
- data/lua-hooks/ext/luajit/src/lib_package.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_package_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_string.c +752 -0
- data/lua-hooks/ext/luajit/src/lib_string.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_string_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_table.c +307 -0
- data/lua-hooks/ext/luajit/src/lib_table.o +0 -0
- data/lua-hooks/ext/luajit/src/lib_table_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/libluajit.a +0 -0
- data/lua-hooks/ext/luajit/src/libluajit.so +0 -0
- data/lua-hooks/ext/luajit/src/lj.supp +26 -0
- data/lua-hooks/ext/luajit/src/lj_alloc.c +1398 -0
- data/lua-hooks/ext/luajit/src/lj_alloc.h +17 -0
- data/lua-hooks/ext/luajit/src/lj_alloc.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_alloc_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_api.c +1210 -0
- data/lua-hooks/ext/luajit/src/lj_api.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_api_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_arch.h +509 -0
- data/lua-hooks/ext/luajit/src/lj_asm.c +2278 -0
- data/lua-hooks/ext/luajit/src/lj_asm.h +17 -0
- data/lua-hooks/ext/luajit/src/lj_asm.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_asm_arm.h +2217 -0
- data/lua-hooks/ext/luajit/src/lj_asm_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_asm_mips.h +1833 -0
- data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +2015 -0
- data/lua-hooks/ext/luajit/src/lj_asm_x86.h +2634 -0
- data/lua-hooks/ext/luajit/src/lj_bc.c +14 -0
- data/lua-hooks/ext/luajit/src/lj_bc.h +265 -0
- data/lua-hooks/ext/luajit/src/lj_bc.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_bc_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_bcdef.h +220 -0
- data/lua-hooks/ext/luajit/src/lj_bcdump.h +68 -0
- data/lua-hooks/ext/luajit/src/lj_bcread.c +457 -0
- data/lua-hooks/ext/luajit/src/lj_bcread.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_bcread_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_bcwrite.c +361 -0
- data/lua-hooks/ext/luajit/src/lj_bcwrite.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_bcwrite_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_buf.c +234 -0
- data/lua-hooks/ext/luajit/src/lj_buf.h +105 -0
- data/lua-hooks/ext/luajit/src/lj_buf.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_buf_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_carith.c +429 -0
- data/lua-hooks/ext/luajit/src/lj_carith.h +37 -0
- data/lua-hooks/ext/luajit/src/lj_carith.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_carith_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ccall.c +984 -0
- data/lua-hooks/ext/luajit/src/lj_ccall.h +178 -0
- data/lua-hooks/ext/luajit/src/lj_ccall.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ccall_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ccallback.c +712 -0
- data/lua-hooks/ext/luajit/src/lj_ccallback.h +25 -0
- data/lua-hooks/ext/luajit/src/lj_ccallback.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ccallback_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_cconv.c +752 -0
- data/lua-hooks/ext/luajit/src/lj_cconv.h +70 -0
- data/lua-hooks/ext/luajit/src/lj_cconv.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_cconv_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_cdata.c +288 -0
- data/lua-hooks/ext/luajit/src/lj_cdata.h +76 -0
- data/lua-hooks/ext/luajit/src/lj_cdata.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_cdata_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_char.c +43 -0
- data/lua-hooks/ext/luajit/src/lj_char.h +42 -0
- data/lua-hooks/ext/luajit/src/lj_char.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_char_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_clib.c +418 -0
- data/lua-hooks/ext/luajit/src/lj_clib.h +29 -0
- data/lua-hooks/ext/luajit/src/lj_clib.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_clib_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_cparse.c +1862 -0
- data/lua-hooks/ext/luajit/src/lj_cparse.h +65 -0
- data/lua-hooks/ext/luajit/src/lj_cparse.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_cparse_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_crecord.c +1834 -0
- data/lua-hooks/ext/luajit/src/lj_crecord.h +38 -0
- data/lua-hooks/ext/luajit/src/lj_crecord.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_crecord_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ctype.c +635 -0
- data/lua-hooks/ext/luajit/src/lj_ctype.h +461 -0
- data/lua-hooks/ext/luajit/src/lj_ctype.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ctype_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_debug.c +699 -0
- data/lua-hooks/ext/luajit/src/lj_debug.h +65 -0
- data/lua-hooks/ext/luajit/src/lj_debug.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_debug_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_def.h +365 -0
- data/lua-hooks/ext/luajit/src/lj_dispatch.c +557 -0
- data/lua-hooks/ext/luajit/src/lj_dispatch.h +138 -0
- data/lua-hooks/ext/luajit/src/lj_dispatch.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_dispatch_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_emit_arm.h +356 -0
- data/lua-hooks/ext/luajit/src/lj_emit_mips.h +211 -0
- data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +238 -0
- data/lua-hooks/ext/luajit/src/lj_emit_x86.h +462 -0
- data/lua-hooks/ext/luajit/src/lj_err.c +794 -0
- data/lua-hooks/ext/luajit/src/lj_err.h +41 -0
- data/lua-hooks/ext/luajit/src/lj_err.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_err_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_errmsg.h +190 -0
- data/lua-hooks/ext/luajit/src/lj_ff.h +18 -0
- data/lua-hooks/ext/luajit/src/lj_ffdef.h +209 -0
- data/lua-hooks/ext/luajit/src/lj_ffrecord.c +1247 -0
- data/lua-hooks/ext/luajit/src/lj_ffrecord.h +24 -0
- data/lua-hooks/ext/luajit/src/lj_ffrecord.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ffrecord_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_folddef.h +1138 -0
- data/lua-hooks/ext/luajit/src/lj_frame.h +259 -0
- data/lua-hooks/ext/luajit/src/lj_func.c +185 -0
- data/lua-hooks/ext/luajit/src/lj_func.h +24 -0
- data/lua-hooks/ext/luajit/src/lj_func.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_func_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_gc.c +845 -0
- data/lua-hooks/ext/luajit/src/lj_gc.h +134 -0
- data/lua-hooks/ext/luajit/src/lj_gc.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_gc_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_gdbjit.c +787 -0
- data/lua-hooks/ext/luajit/src/lj_gdbjit.h +22 -0
- data/lua-hooks/ext/luajit/src/lj_gdbjit.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_gdbjit_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ir.c +505 -0
- data/lua-hooks/ext/luajit/src/lj_ir.h +577 -0
- data/lua-hooks/ext/luajit/src/lj_ir.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ir_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_ircall.h +321 -0
- data/lua-hooks/ext/luajit/src/lj_iropt.h +161 -0
- data/lua-hooks/ext/luajit/src/lj_jit.h +440 -0
- data/lua-hooks/ext/luajit/src/lj_lex.c +482 -0
- data/lua-hooks/ext/luajit/src/lj_lex.h +86 -0
- data/lua-hooks/ext/luajit/src/lj_lex.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_lex_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_lib.c +303 -0
- data/lua-hooks/ext/luajit/src/lj_lib.h +115 -0
- data/lua-hooks/ext/luajit/src/lj_lib.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_lib_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_libdef.h +414 -0
- data/lua-hooks/ext/luajit/src/lj_load.c +168 -0
- data/lua-hooks/ext/luajit/src/lj_load.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_load_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_mcode.c +386 -0
- data/lua-hooks/ext/luajit/src/lj_mcode.h +30 -0
- data/lua-hooks/ext/luajit/src/lj_mcode.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_mcode_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_meta.c +477 -0
- data/lua-hooks/ext/luajit/src/lj_meta.h +38 -0
- data/lua-hooks/ext/luajit/src/lj_meta.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_meta_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_obj.c +50 -0
- data/lua-hooks/ext/luajit/src/lj_obj.h +976 -0
- data/lua-hooks/ext/luajit/src/lj_obj.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_obj_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_dce.c +78 -0
- data/lua-hooks/ext/luajit/src/lj_opt_dce.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_dce_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_fold.c +2488 -0
- data/lua-hooks/ext/luajit/src/lj_opt_fold.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_fold_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_loop.c +449 -0
- data/lua-hooks/ext/luajit/src/lj_opt_loop.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_loop_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_mem.c +935 -0
- data/lua-hooks/ext/luajit/src/lj_opt_mem.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_mem_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +652 -0
- data/lua-hooks/ext/luajit/src/lj_opt_narrow.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_narrow_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_sink.c +245 -0
- data/lua-hooks/ext/luajit/src/lj_opt_sink.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_sink_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_split.c +856 -0
- data/lua-hooks/ext/luajit/src/lj_opt_split.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_opt_split_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_parse.c +2725 -0
- data/lua-hooks/ext/luajit/src/lj_parse.h +18 -0
- data/lua-hooks/ext/luajit/src/lj_parse.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_parse_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_profile.c +368 -0
- data/lua-hooks/ext/luajit/src/lj_profile.h +21 -0
- data/lua-hooks/ext/luajit/src/lj_profile.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_profile_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_recdef.h +270 -0
- data/lua-hooks/ext/luajit/src/lj_record.c +2554 -0
- data/lua-hooks/ext/luajit/src/lj_record.h +45 -0
- data/lua-hooks/ext/luajit/src/lj_record.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_record_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_snap.c +870 -0
- data/lua-hooks/ext/luajit/src/lj_snap.h +34 -0
- data/lua-hooks/ext/luajit/src/lj_snap.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_snap_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_state.c +300 -0
- data/lua-hooks/ext/luajit/src/lj_state.h +35 -0
- data/lua-hooks/ext/luajit/src/lj_state.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_state_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_str.c +197 -0
- data/lua-hooks/ext/luajit/src/lj_str.h +27 -0
- data/lua-hooks/ext/luajit/src/lj_str.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_str_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_strfmt.c +554 -0
- data/lua-hooks/ext/luajit/src/lj_strfmt.h +125 -0
- data/lua-hooks/ext/luajit/src/lj_strfmt.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_strfmt_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_strscan.c +547 -0
- data/lua-hooks/ext/luajit/src/lj_strscan.h +39 -0
- data/lua-hooks/ext/luajit/src/lj_strscan.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_strscan_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_tab.c +666 -0
- data/lua-hooks/ext/luajit/src/lj_tab.h +73 -0
- data/lua-hooks/ext/luajit/src/lj_tab.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_tab_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_target.h +164 -0
- data/lua-hooks/ext/luajit/src/lj_target_arm.h +270 -0
- data/lua-hooks/ext/luajit/src/lj_target_arm64.h +97 -0
- data/lua-hooks/ext/luajit/src/lj_target_mips.h +260 -0
- data/lua-hooks/ext/luajit/src/lj_target_ppc.h +280 -0
- data/lua-hooks/ext/luajit/src/lj_target_x86.h +345 -0
- data/lua-hooks/ext/luajit/src/lj_trace.c +859 -0
- data/lua-hooks/ext/luajit/src/lj_trace.h +54 -0
- data/lua-hooks/ext/luajit/src/lj_trace.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_trace_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_traceerr.h +63 -0
- data/lua-hooks/ext/luajit/src/lj_udata.c +34 -0
- data/lua-hooks/ext/luajit/src/lj_udata.h +14 -0
- data/lua-hooks/ext/luajit/src/lj_udata.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_udata_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_vm.S +2730 -0
- data/lua-hooks/ext/luajit/src/lj_vm.h +114 -0
- data/lua-hooks/ext/luajit/src/lj_vm.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_vm_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_vmevent.c +58 -0
- data/lua-hooks/ext/luajit/src/lj_vmevent.h +59 -0
- data/lua-hooks/ext/luajit/src/lj_vmevent.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_vmevent_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_vmmath.c +152 -0
- data/lua-hooks/ext/luajit/src/lj_vmmath.o +0 -0
- data/lua-hooks/ext/luajit/src/lj_vmmath_dyn.o +0 -0
- data/lua-hooks/ext/luajit/src/ljamalg.c +96 -0
- data/lua-hooks/ext/{lua → luajit/src}/lua.h +12 -7
- data/lua-hooks/ext/luajit/src/lua.hpp +9 -0
- data/lua-hooks/ext/luajit/src/luaconf.h +156 -0
- data/lua-hooks/ext/luajit/src/luajit +0 -0
- data/lua-hooks/ext/luajit/src/luajit.c +570 -0
- data/lua-hooks/ext/luajit/src/luajit.h +79 -0
- data/lua-hooks/ext/luajit/src/luajit.o +0 -0
- data/lua-hooks/ext/luajit/src/lualib.h +43 -0
- data/lua-hooks/ext/luajit/src/msvcbuild.bat +114 -0
- data/lua-hooks/ext/luajit/src/ps4build.bat +103 -0
- data/lua-hooks/ext/luajit/src/psvitabuild.bat +93 -0
- data/lua-hooks/ext/luajit/src/vm_arm.dasc +4585 -0
- data/lua-hooks/ext/luajit/src/vm_arm64.dasc +3764 -0
- data/lua-hooks/ext/luajit/src/vm_mips.dasc +4355 -0
- data/lua-hooks/ext/luajit/src/vm_ppc.dasc +5252 -0
- data/lua-hooks/ext/luajit/src/vm_x64.dasc +4902 -0
- data/lua-hooks/ext/luajit/src/vm_x86.dasc +5710 -0
- data/lua-hooks/ext/luajit/src/xb1build.bat +101 -0
- data/lua-hooks/ext/luajit/src/xedkbuild.bat +92 -0
- data/lua-hooks/ext/luautf8/lutf8lib.c +3 -3
- data/lua-hooks/lib/boot.lua +37 -2
- metadata +372 -69
- data/lua-hooks/ext/bitop/README +0 -22
- data/lua-hooks/ext/bitop/bit.c +0 -189
- data/lua-hooks/ext/extconf.rb +0 -38
- data/lua-hooks/ext/lua/COPYRIGHT +0 -34
- data/lua-hooks/ext/lua/lapi.c +0 -1087
- data/lua-hooks/ext/lua/lapi.h +0 -16
- data/lua-hooks/ext/lua/lauxlib.c +0 -652
- data/lua-hooks/ext/lua/lbaselib.c +0 -659
- data/lua-hooks/ext/lua/lcode.c +0 -831
- data/lua-hooks/ext/lua/lcode.h +0 -76
- data/lua-hooks/ext/lua/ldblib.c +0 -398
- data/lua-hooks/ext/lua/ldebug.c +0 -638
- data/lua-hooks/ext/lua/ldebug.h +0 -33
- data/lua-hooks/ext/lua/ldo.c +0 -519
- data/lua-hooks/ext/lua/ldo.h +0 -57
- data/lua-hooks/ext/lua/ldump.c +0 -164
- data/lua-hooks/ext/lua/lfunc.c +0 -174
- data/lua-hooks/ext/lua/lfunc.h +0 -34
- data/lua-hooks/ext/lua/lgc.c +0 -710
- data/lua-hooks/ext/lua/lgc.h +0 -110
- data/lua-hooks/ext/lua/linit.c +0 -38
- data/lua-hooks/ext/lua/liolib.c +0 -556
- data/lua-hooks/ext/lua/llex.c +0 -463
- data/lua-hooks/ext/lua/llex.h +0 -81
- data/lua-hooks/ext/lua/llimits.h +0 -128
- data/lua-hooks/ext/lua/lmathlib.c +0 -263
- data/lua-hooks/ext/lua/lmem.c +0 -86
- data/lua-hooks/ext/lua/lmem.h +0 -49
- data/lua-hooks/ext/lua/loadlib.c +0 -705
- data/lua-hooks/ext/lua/loadlib_rel.c +0 -760
- data/lua-hooks/ext/lua/lobject.c +0 -214
- data/lua-hooks/ext/lua/lobject.h +0 -381
- data/lua-hooks/ext/lua/lopcodes.c +0 -102
- data/lua-hooks/ext/lua/lopcodes.h +0 -268
- data/lua-hooks/ext/lua/loslib.c +0 -243
- data/lua-hooks/ext/lua/lparser.c +0 -1339
- data/lua-hooks/ext/lua/lparser.h +0 -82
- data/lua-hooks/ext/lua/lstate.c +0 -214
- data/lua-hooks/ext/lua/lstate.h +0 -169
- data/lua-hooks/ext/lua/lstring.c +0 -111
- data/lua-hooks/ext/lua/lstring.h +0 -31
- data/lua-hooks/ext/lua/lstrlib.c +0 -871
- data/lua-hooks/ext/lua/ltable.c +0 -588
- data/lua-hooks/ext/lua/ltable.h +0 -40
- data/lua-hooks/ext/lua/ltablib.c +0 -287
- data/lua-hooks/ext/lua/ltm.c +0 -75
- data/lua-hooks/ext/lua/ltm.h +0 -54
- data/lua-hooks/ext/lua/lua.c +0 -392
- data/lua-hooks/ext/lua/lua.def +0 -131
- data/lua-hooks/ext/lua/lua.rc +0 -28
- data/lua-hooks/ext/lua/lua_dll.rc +0 -26
- data/lua-hooks/ext/lua/luac.c +0 -200
- data/lua-hooks/ext/lua/luac.rc +0 -1
- data/lua-hooks/ext/lua/luaconf.h +0 -763
- data/lua-hooks/ext/lua/luaconf.h.in +0 -724
- data/lua-hooks/ext/lua/luaconf.h.orig +0 -763
- data/lua-hooks/ext/lua/lualib.h +0 -53
- data/lua-hooks/ext/lua/lundump.c +0 -227
- data/lua-hooks/ext/lua/lundump.h +0 -36
- data/lua-hooks/ext/lua/lvm.c +0 -767
- data/lua-hooks/ext/lua/lvm.h +0 -36
- data/lua-hooks/ext/lua/lzio.c +0 -82
- data/lua-hooks/ext/lua/lzio.h +0 -67
- data/lua-hooks/ext/lua/print.c +0 -227
@@ -0,0 +1,114 @@
|
|
1
|
+
/*
|
2
|
+
** Assembler VM interface definitions.
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
4
|
+
*/
|
5
|
+
|
6
|
+
#ifndef _LJ_VM_H
|
7
|
+
#define _LJ_VM_H
|
8
|
+
|
9
|
+
#include "lj_obj.h"
|
10
|
+
|
11
|
+
/* Entry points for ASM parts of VM. */
|
12
|
+
LJ_ASMF void lj_vm_call(lua_State *L, TValue *base, int nres1);
|
13
|
+
LJ_ASMF int lj_vm_pcall(lua_State *L, TValue *base, int nres1, ptrdiff_t ef);
|
14
|
+
typedef TValue *(*lua_CPFunction)(lua_State *L, lua_CFunction func, void *ud);
|
15
|
+
LJ_ASMF int lj_vm_cpcall(lua_State *L, lua_CFunction func, void *ud,
|
16
|
+
lua_CPFunction cp);
|
17
|
+
LJ_ASMF int lj_vm_resume(lua_State *L, TValue *base, int nres1, ptrdiff_t ef);
|
18
|
+
LJ_ASMF_NORET void LJ_FASTCALL lj_vm_unwind_c(void *cframe, int errcode);
|
19
|
+
LJ_ASMF_NORET void LJ_FASTCALL lj_vm_unwind_ff(void *cframe);
|
20
|
+
LJ_ASMF void lj_vm_unwind_c_eh(void);
|
21
|
+
LJ_ASMF void lj_vm_unwind_ff_eh(void);
|
22
|
+
#if LJ_TARGET_X86ORX64
|
23
|
+
LJ_ASMF void lj_vm_unwind_rethrow(void);
|
24
|
+
#endif
|
25
|
+
|
26
|
+
/* Miscellaneous functions. */
|
27
|
+
#if LJ_TARGET_X86ORX64
|
28
|
+
LJ_ASMF int lj_vm_cpuid(uint32_t f, uint32_t res[4]);
|
29
|
+
#endif
|
30
|
+
#if LJ_TARGET_PPC
|
31
|
+
void lj_vm_cachesync(void *start, void *end);
|
32
|
+
#endif
|
33
|
+
LJ_ASMF double lj_vm_foldarith(double x, double y, int op);
|
34
|
+
#if LJ_HASJIT
|
35
|
+
LJ_ASMF double lj_vm_foldfpm(double x, int op);
|
36
|
+
#endif
|
37
|
+
#if !LJ_ARCH_HASFPU
|
38
|
+
/* Declared in lj_obj.h: LJ_ASMF int32_t lj_vm_tobit(double x); */
|
39
|
+
#endif
|
40
|
+
|
41
|
+
/* Dispatch targets for recording and hooks. */
|
42
|
+
LJ_ASMF void lj_vm_record(void);
|
43
|
+
LJ_ASMF void lj_vm_inshook(void);
|
44
|
+
LJ_ASMF void lj_vm_rethook(void);
|
45
|
+
LJ_ASMF void lj_vm_callhook(void);
|
46
|
+
LJ_ASMF void lj_vm_profhook(void);
|
47
|
+
|
48
|
+
/* Trace exit handling. */
|
49
|
+
LJ_ASMF void lj_vm_exit_handler(void);
|
50
|
+
LJ_ASMF void lj_vm_exit_interp(void);
|
51
|
+
|
52
|
+
/* Internal math helper functions. */
|
53
|
+
#if LJ_TARGET_PPC || LJ_TARGET_ARM64
|
54
|
+
#define lj_vm_floor floor
|
55
|
+
#define lj_vm_ceil ceil
|
56
|
+
#else
|
57
|
+
LJ_ASMF double lj_vm_floor(double);
|
58
|
+
LJ_ASMF double lj_vm_ceil(double);
|
59
|
+
#if LJ_TARGET_ARM
|
60
|
+
LJ_ASMF double lj_vm_floor_sf(double);
|
61
|
+
LJ_ASMF double lj_vm_ceil_sf(double);
|
62
|
+
#endif
|
63
|
+
#endif
|
64
|
+
#ifdef LUAJIT_NO_LOG2
|
65
|
+
LJ_ASMF double lj_vm_log2(double);
|
66
|
+
#else
|
67
|
+
#define lj_vm_log2 log2
|
68
|
+
#endif
|
69
|
+
|
70
|
+
#if LJ_HASJIT
|
71
|
+
#if LJ_TARGET_X86ORX64
|
72
|
+
LJ_ASMF void lj_vm_floor_sse(void);
|
73
|
+
LJ_ASMF void lj_vm_ceil_sse(void);
|
74
|
+
LJ_ASMF void lj_vm_trunc_sse(void);
|
75
|
+
LJ_ASMF void lj_vm_powi_sse(void);
|
76
|
+
#define lj_vm_powi NULL
|
77
|
+
#else
|
78
|
+
LJ_ASMF double lj_vm_powi(double, int32_t);
|
79
|
+
#endif
|
80
|
+
#if LJ_TARGET_PPC || LJ_TARGET_ARM64
|
81
|
+
#define lj_vm_trunc trunc
|
82
|
+
#else
|
83
|
+
LJ_ASMF double lj_vm_trunc(double);
|
84
|
+
#if LJ_TARGET_ARM
|
85
|
+
LJ_ASMF double lj_vm_trunc_sf(double);
|
86
|
+
#endif
|
87
|
+
#endif
|
88
|
+
#ifdef LUAJIT_NO_EXP2
|
89
|
+
LJ_ASMF double lj_vm_exp2(double);
|
90
|
+
#else
|
91
|
+
#define lj_vm_exp2 exp2
|
92
|
+
#endif
|
93
|
+
LJ_ASMF int32_t LJ_FASTCALL lj_vm_modi(int32_t, int32_t);
|
94
|
+
#if LJ_HASFFI
|
95
|
+
LJ_ASMF int lj_vm_errno(void);
|
96
|
+
#endif
|
97
|
+
#endif
|
98
|
+
|
99
|
+
/* Continuations for metamethods. */
|
100
|
+
LJ_ASMF void lj_cont_cat(void); /* Continue with concatenation. */
|
101
|
+
LJ_ASMF void lj_cont_ra(void); /* Store result in RA from instruction. */
|
102
|
+
LJ_ASMF void lj_cont_nop(void); /* Do nothing, just continue execution. */
|
103
|
+
LJ_ASMF void lj_cont_condt(void); /* Branch if result is true. */
|
104
|
+
LJ_ASMF void lj_cont_condf(void); /* Branch if result is false. */
|
105
|
+
LJ_ASMF void lj_cont_hook(void); /* Continue from hook yield. */
|
106
|
+
LJ_ASMF void lj_cont_stitch(void); /* Trace stitching. */
|
107
|
+
|
108
|
+
/* Start of the ASM code. */
|
109
|
+
LJ_ASMF char lj_vm_asm_begin[];
|
110
|
+
|
111
|
+
/* Bytecode offsets are relative to lj_vm_asm_begin. */
|
112
|
+
#define makeasmfunc(ofs) ((ASMFunction)(lj_vm_asm_begin + (ofs)))
|
113
|
+
|
114
|
+
#endif
|
Binary file
|
Binary file
|
@@ -0,0 +1,58 @@
|
|
1
|
+
/*
|
2
|
+
** VM event handling.
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
4
|
+
*/
|
5
|
+
|
6
|
+
#include <stdio.h>
|
7
|
+
|
8
|
+
#define lj_vmevent_c
|
9
|
+
#define LUA_CORE
|
10
|
+
|
11
|
+
#include "lj_obj.h"
|
12
|
+
#include "lj_str.h"
|
13
|
+
#include "lj_tab.h"
|
14
|
+
#include "lj_state.h"
|
15
|
+
#include "lj_dispatch.h"
|
16
|
+
#include "lj_vm.h"
|
17
|
+
#include "lj_vmevent.h"
|
18
|
+
|
19
|
+
ptrdiff_t lj_vmevent_prepare(lua_State *L, VMEvent ev)
|
20
|
+
{
|
21
|
+
global_State *g = G(L);
|
22
|
+
GCstr *s = lj_str_newlit(L, LJ_VMEVENTS_REGKEY);
|
23
|
+
cTValue *tv = lj_tab_getstr(tabV(registry(L)), s);
|
24
|
+
if (tvistab(tv)) {
|
25
|
+
int hash = VMEVENT_HASH(ev);
|
26
|
+
tv = lj_tab_getint(tabV(tv), hash);
|
27
|
+
if (tv && tvisfunc(tv)) {
|
28
|
+
lj_state_checkstack(L, LUA_MINSTACK);
|
29
|
+
setfuncV(L, L->top++, funcV(tv));
|
30
|
+
if (LJ_FR2) setnilV(L->top++);
|
31
|
+
return savestack(L, L->top);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
g->vmevmask &= ~VMEVENT_MASK(ev); /* No handler: cache this fact. */
|
35
|
+
return 0;
|
36
|
+
}
|
37
|
+
|
38
|
+
void lj_vmevent_call(lua_State *L, ptrdiff_t argbase)
|
39
|
+
{
|
40
|
+
global_State *g = G(L);
|
41
|
+
uint8_t oldmask = g->vmevmask;
|
42
|
+
uint8_t oldh = hook_save(g);
|
43
|
+
int status;
|
44
|
+
g->vmevmask = 0; /* Disable all events. */
|
45
|
+
hook_vmevent(g);
|
46
|
+
status = lj_vm_pcall(L, restorestack(L, argbase), 0+1, 0);
|
47
|
+
if (LJ_UNLIKELY(status)) {
|
48
|
+
/* Really shouldn't use stderr here, but where else to complain? */
|
49
|
+
L->top--;
|
50
|
+
fputs("VM handler failed: ", stderr);
|
51
|
+
fputs(tvisstr(L->top) ? strVdata(L->top) : "?", stderr);
|
52
|
+
fputc('\n', stderr);
|
53
|
+
}
|
54
|
+
hook_restore(g, oldh);
|
55
|
+
if (g->vmevmask != VMEVENT_NOCACHE)
|
56
|
+
g->vmevmask = oldmask; /* Restore event mask, but not if not modified. */
|
57
|
+
}
|
58
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/*
|
2
|
+
** VM event handling.
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
4
|
+
*/
|
5
|
+
|
6
|
+
#ifndef _LJ_VMEVENT_H
|
7
|
+
#define _LJ_VMEVENT_H
|
8
|
+
|
9
|
+
#include "lj_obj.h"
|
10
|
+
|
11
|
+
/* Registry key for VM event handler table. */
|
12
|
+
#define LJ_VMEVENTS_REGKEY "_VMEVENTS"
|
13
|
+
#define LJ_VMEVENTS_HSIZE 4
|
14
|
+
|
15
|
+
#define VMEVENT_MASK(ev) ((uint8_t)1 << ((int)(ev) & 7))
|
16
|
+
#define VMEVENT_HASH(ev) ((int)(ev) & ~7)
|
17
|
+
#define VMEVENT_HASHIDX(h) ((int)(h) << 3)
|
18
|
+
#define VMEVENT_NOCACHE 255
|
19
|
+
|
20
|
+
#define VMEVENT_DEF(name, hash) \
|
21
|
+
LJ_VMEVENT_##name##_, \
|
22
|
+
LJ_VMEVENT_##name = ((LJ_VMEVENT_##name##_) & 7)|((hash) << 3)
|
23
|
+
|
24
|
+
/* VM event IDs. */
|
25
|
+
typedef enum {
|
26
|
+
VMEVENT_DEF(BC, 0x00003883),
|
27
|
+
VMEVENT_DEF(TRACE, 0xb2d91467),
|
28
|
+
VMEVENT_DEF(RECORD, 0x9284bf4f),
|
29
|
+
VMEVENT_DEF(TEXIT, 0xb29df2b0),
|
30
|
+
LJ_VMEVENT__MAX
|
31
|
+
} VMEvent;
|
32
|
+
|
33
|
+
#ifdef LUAJIT_DISABLE_VMEVENT
|
34
|
+
#define lj_vmevent_send(L, ev, args) UNUSED(L)
|
35
|
+
#define lj_vmevent_send_(L, ev, args, post) UNUSED(L)
|
36
|
+
#else
|
37
|
+
#define lj_vmevent_send(L, ev, args) \
|
38
|
+
if (G(L)->vmevmask & VMEVENT_MASK(LJ_VMEVENT_##ev)) { \
|
39
|
+
ptrdiff_t argbase = lj_vmevent_prepare(L, LJ_VMEVENT_##ev); \
|
40
|
+
if (argbase) { \
|
41
|
+
args \
|
42
|
+
lj_vmevent_call(L, argbase); \
|
43
|
+
} \
|
44
|
+
}
|
45
|
+
#define lj_vmevent_send_(L, ev, args, post) \
|
46
|
+
if (G(L)->vmevmask & VMEVENT_MASK(LJ_VMEVENT_##ev)) { \
|
47
|
+
ptrdiff_t argbase = lj_vmevent_prepare(L, LJ_VMEVENT_##ev); \
|
48
|
+
if (argbase) { \
|
49
|
+
args \
|
50
|
+
lj_vmevent_call(L, argbase); \
|
51
|
+
post \
|
52
|
+
} \
|
53
|
+
}
|
54
|
+
|
55
|
+
LJ_FUNC ptrdiff_t lj_vmevent_prepare(lua_State *L, VMEvent ev);
|
56
|
+
LJ_FUNC void lj_vmevent_call(lua_State *L, ptrdiff_t argbase);
|
57
|
+
#endif
|
58
|
+
|
59
|
+
#endif
|
Binary file
|
Binary file
|
@@ -0,0 +1,152 @@
|
|
1
|
+
/*
|
2
|
+
** Math helper functions for assembler VM.
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
4
|
+
*/
|
5
|
+
|
6
|
+
#define lj_vmmath_c
|
7
|
+
#define LUA_CORE
|
8
|
+
|
9
|
+
#include <errno.h>
|
10
|
+
#include <math.h>
|
11
|
+
|
12
|
+
#include "lj_obj.h"
|
13
|
+
#include "lj_ir.h"
|
14
|
+
#include "lj_vm.h"
|
15
|
+
|
16
|
+
/* -- Wrapper functions --------------------------------------------------- */
|
17
|
+
|
18
|
+
#if LJ_TARGET_X86 && __ELF__ && __PIC__
|
19
|
+
/* Wrapper functions to deal with the ELF/x86 PIC disaster. */
|
20
|
+
LJ_FUNCA double lj_wrap_log(double x) { return log(x); }
|
21
|
+
LJ_FUNCA double lj_wrap_log10(double x) { return log10(x); }
|
22
|
+
LJ_FUNCA double lj_wrap_exp(double x) { return exp(x); }
|
23
|
+
LJ_FUNCA double lj_wrap_sin(double x) { return sin(x); }
|
24
|
+
LJ_FUNCA double lj_wrap_cos(double x) { return cos(x); }
|
25
|
+
LJ_FUNCA double lj_wrap_tan(double x) { return tan(x); }
|
26
|
+
LJ_FUNCA double lj_wrap_asin(double x) { return asin(x); }
|
27
|
+
LJ_FUNCA double lj_wrap_acos(double x) { return acos(x); }
|
28
|
+
LJ_FUNCA double lj_wrap_atan(double x) { return atan(x); }
|
29
|
+
LJ_FUNCA double lj_wrap_sinh(double x) { return sinh(x); }
|
30
|
+
LJ_FUNCA double lj_wrap_cosh(double x) { return cosh(x); }
|
31
|
+
LJ_FUNCA double lj_wrap_tanh(double x) { return tanh(x); }
|
32
|
+
LJ_FUNCA double lj_wrap_atan2(double x, double y) { return atan2(x, y); }
|
33
|
+
LJ_FUNCA double lj_wrap_pow(double x, double y) { return pow(x, y); }
|
34
|
+
LJ_FUNCA double lj_wrap_fmod(double x, double y) { return fmod(x, y); }
|
35
|
+
#endif
|
36
|
+
|
37
|
+
/* -- Helper functions for generated machine code ------------------------- */
|
38
|
+
|
39
|
+
double lj_vm_foldarith(double x, double y, int op)
|
40
|
+
{
|
41
|
+
switch (op) {
|
42
|
+
case IR_ADD - IR_ADD: return x+y; break;
|
43
|
+
case IR_SUB - IR_ADD: return x-y; break;
|
44
|
+
case IR_MUL - IR_ADD: return x*y; break;
|
45
|
+
case IR_DIV - IR_ADD: return x/y; break;
|
46
|
+
case IR_MOD - IR_ADD: return x-lj_vm_floor(x/y)*y; break;
|
47
|
+
case IR_POW - IR_ADD: return pow(x, y); break;
|
48
|
+
case IR_NEG - IR_ADD: return -x; break;
|
49
|
+
case IR_ABS - IR_ADD: return fabs(x); break;
|
50
|
+
#if LJ_HASJIT
|
51
|
+
case IR_ATAN2 - IR_ADD: return atan2(x, y); break;
|
52
|
+
case IR_LDEXP - IR_ADD: return ldexp(x, (int)y); break;
|
53
|
+
case IR_MIN - IR_ADD: return x > y ? y : x; break;
|
54
|
+
case IR_MAX - IR_ADD: return x < y ? y : x; break;
|
55
|
+
#endif
|
56
|
+
default: return x;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
#if LJ_HASJIT
|
61
|
+
|
62
|
+
#ifdef LUAJIT_NO_LOG2
|
63
|
+
double lj_vm_log2(double a)
|
64
|
+
{
|
65
|
+
return log(a) * 1.4426950408889634074;
|
66
|
+
}
|
67
|
+
#endif
|
68
|
+
|
69
|
+
#ifdef LUAJIT_NO_EXP2
|
70
|
+
double lj_vm_exp2(double a)
|
71
|
+
{
|
72
|
+
return exp(a * 0.6931471805599453);
|
73
|
+
}
|
74
|
+
#endif
|
75
|
+
|
76
|
+
#if !(LJ_TARGET_ARM || LJ_TARGET_ARM64 || LJ_TARGET_PPC)
|
77
|
+
int32_t LJ_FASTCALL lj_vm_modi(int32_t a, int32_t b)
|
78
|
+
{
|
79
|
+
uint32_t y, ua, ub;
|
80
|
+
lua_assert(b != 0); /* This must be checked before using this function. */
|
81
|
+
ua = a < 0 ? (uint32_t)-a : (uint32_t)a;
|
82
|
+
ub = b < 0 ? (uint32_t)-b : (uint32_t)b;
|
83
|
+
y = ua % ub;
|
84
|
+
if (y != 0 && (a^b) < 0) y = y - ub;
|
85
|
+
if (((int32_t)y^b) < 0) y = (uint32_t)-(int32_t)y;
|
86
|
+
return (int32_t)y;
|
87
|
+
}
|
88
|
+
#endif
|
89
|
+
|
90
|
+
#if !LJ_TARGET_X86ORX64
|
91
|
+
/* Unsigned x^k. */
|
92
|
+
static double lj_vm_powui(double x, uint32_t k)
|
93
|
+
{
|
94
|
+
double y;
|
95
|
+
lua_assert(k != 0);
|
96
|
+
for (; (k & 1) == 0; k >>= 1) x *= x;
|
97
|
+
y = x;
|
98
|
+
if ((k >>= 1) != 0) {
|
99
|
+
for (;;) {
|
100
|
+
x *= x;
|
101
|
+
if (k == 1) break;
|
102
|
+
if (k & 1) y *= x;
|
103
|
+
k >>= 1;
|
104
|
+
}
|
105
|
+
y *= x;
|
106
|
+
}
|
107
|
+
return y;
|
108
|
+
}
|
109
|
+
|
110
|
+
/* Signed x^k. */
|
111
|
+
double lj_vm_powi(double x, int32_t k)
|
112
|
+
{
|
113
|
+
if (k > 1)
|
114
|
+
return lj_vm_powui(x, (uint32_t)k);
|
115
|
+
else if (k == 1)
|
116
|
+
return x;
|
117
|
+
else if (k == 0)
|
118
|
+
return 1.0;
|
119
|
+
else
|
120
|
+
return 1.0 / lj_vm_powui(x, (uint32_t)-k);
|
121
|
+
}
|
122
|
+
#endif
|
123
|
+
|
124
|
+
/* Computes fpm(x) for extended math functions. */
|
125
|
+
double lj_vm_foldfpm(double x, int fpm)
|
126
|
+
{
|
127
|
+
switch (fpm) {
|
128
|
+
case IRFPM_FLOOR: return lj_vm_floor(x);
|
129
|
+
case IRFPM_CEIL: return lj_vm_ceil(x);
|
130
|
+
case IRFPM_TRUNC: return lj_vm_trunc(x);
|
131
|
+
case IRFPM_SQRT: return sqrt(x);
|
132
|
+
case IRFPM_EXP: return exp(x);
|
133
|
+
case IRFPM_EXP2: return lj_vm_exp2(x);
|
134
|
+
case IRFPM_LOG: return log(x);
|
135
|
+
case IRFPM_LOG2: return lj_vm_log2(x);
|
136
|
+
case IRFPM_LOG10: return log10(x);
|
137
|
+
case IRFPM_SIN: return sin(x);
|
138
|
+
case IRFPM_COS: return cos(x);
|
139
|
+
case IRFPM_TAN: return tan(x);
|
140
|
+
default: lua_assert(0);
|
141
|
+
}
|
142
|
+
return 0;
|
143
|
+
}
|
144
|
+
|
145
|
+
#if LJ_HASFFI
|
146
|
+
int lj_vm_errno(void)
|
147
|
+
{
|
148
|
+
return errno;
|
149
|
+
}
|
150
|
+
#endif
|
151
|
+
|
152
|
+
#endif
|
Binary file
|
Binary file
|
@@ -0,0 +1,96 @@
|
|
1
|
+
/*
|
2
|
+
** LuaJIT core and libraries amalgamation.
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
4
|
+
*/
|
5
|
+
|
6
|
+
/*
|
7
|
+
+--------------------------------------------------------------------------+
|
8
|
+
| WARNING: Compiling the amalgamation needs a lot of virtual memory |
|
9
|
+
| (around 300 MB with GCC 4.x)! If you don't have enough physical memory |
|
10
|
+
| your machine will start swapping to disk and the compile will not finish |
|
11
|
+
| within a reasonable amount of time. |
|
12
|
+
| So either compile on a bigger machine or use the non-amalgamated build. |
|
13
|
+
+--------------------------------------------------------------------------+
|
14
|
+
*/
|
15
|
+
|
16
|
+
#define ljamalg_c
|
17
|
+
#define LUA_CORE
|
18
|
+
|
19
|
+
/* To get the mremap prototype. Must be defined before any system includes. */
|
20
|
+
#if defined(__linux__) && !defined(_GNU_SOURCE)
|
21
|
+
#define _GNU_SOURCE
|
22
|
+
#endif
|
23
|
+
|
24
|
+
#ifndef WINVER
|
25
|
+
#define WINVER 0x0501
|
26
|
+
#endif
|
27
|
+
|
28
|
+
#include "lua.h"
|
29
|
+
#include "lauxlib.h"
|
30
|
+
|
31
|
+
#include "lj_gc.c"
|
32
|
+
#include "lj_err.c"
|
33
|
+
#include "lj_char.c"
|
34
|
+
#include "lj_bc.c"
|
35
|
+
#include "lj_obj.c"
|
36
|
+
#include "lj_buf.c"
|
37
|
+
#include "lj_str.c"
|
38
|
+
#include "lj_tab.c"
|
39
|
+
#include "lj_func.c"
|
40
|
+
#include "lj_udata.c"
|
41
|
+
#include "lj_meta.c"
|
42
|
+
#include "lj_debug.c"
|
43
|
+
#include "lj_state.c"
|
44
|
+
#include "lj_dispatch.c"
|
45
|
+
#include "lj_vmevent.c"
|
46
|
+
#include "lj_vmmath.c"
|
47
|
+
#include "lj_strscan.c"
|
48
|
+
#include "lj_strfmt.c"
|
49
|
+
#include "lj_api.c"
|
50
|
+
#include "lj_profile.c"
|
51
|
+
#include "lj_lex.c"
|
52
|
+
#include "lj_parse.c"
|
53
|
+
#include "lj_bcread.c"
|
54
|
+
#include "lj_bcwrite.c"
|
55
|
+
#include "lj_load.c"
|
56
|
+
#include "lj_ctype.c"
|
57
|
+
#include "lj_cdata.c"
|
58
|
+
#include "lj_cconv.c"
|
59
|
+
#include "lj_ccall.c"
|
60
|
+
#include "lj_ccallback.c"
|
61
|
+
#include "lj_carith.c"
|
62
|
+
#include "lj_clib.c"
|
63
|
+
#include "lj_cparse.c"
|
64
|
+
#include "lj_lib.c"
|
65
|
+
#include "lj_ir.c"
|
66
|
+
#include "lj_opt_mem.c"
|
67
|
+
#include "lj_opt_fold.c"
|
68
|
+
#include "lj_opt_narrow.c"
|
69
|
+
#include "lj_opt_dce.c"
|
70
|
+
#include "lj_opt_loop.c"
|
71
|
+
#include "lj_opt_split.c"
|
72
|
+
#include "lj_opt_sink.c"
|
73
|
+
#include "lj_mcode.c"
|
74
|
+
#include "lj_snap.c"
|
75
|
+
#include "lj_record.c"
|
76
|
+
#include "lj_crecord.c"
|
77
|
+
#include "lj_ffrecord.c"
|
78
|
+
#include "lj_asm.c"
|
79
|
+
#include "lj_trace.c"
|
80
|
+
#include "lj_gdbjit.c"
|
81
|
+
#include "lj_alloc.c"
|
82
|
+
|
83
|
+
#include "lib_aux.c"
|
84
|
+
#include "lib_base.c"
|
85
|
+
#include "lib_math.c"
|
86
|
+
#include "lib_string.c"
|
87
|
+
#include "lib_table.c"
|
88
|
+
#include "lib_io.c"
|
89
|
+
#include "lib_os.c"
|
90
|
+
#include "lib_package.c"
|
91
|
+
#include "lib_debug.c"
|
92
|
+
#include "lib_bit.c"
|
93
|
+
#include "lib_jit.c"
|
94
|
+
#include "lib_ffi.c"
|
95
|
+
#include "lib_init.c"
|
96
|
+
|