immunio 1.2.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -5
- data/ext/immunio/Rakefile +14 -6
- data/lib/immunio/context.rb +2 -0
- data/lib/immunio/plugins/action_view.rb +7 -668
- data/lib/immunio/plugins/action_view/action_view.rb +22 -0
- data/lib/immunio/plugins/action_view/active_support_hash.rb +29 -0
- data/lib/immunio/plugins/action_view/cache_store.rb +24 -0
- data/lib/immunio/plugins/action_view/erubi.rb +38 -0
- data/lib/immunio/plugins/action_view/erubis.rb +39 -0
- data/lib/immunio/plugins/action_view/fragment_caching.rb +29 -0
- data/lib/immunio/plugins/action_view/haml.rb +46 -0
- data/lib/immunio/plugins/action_view/slim.rb +42 -0
- data/lib/immunio/plugins/action_view/template.rb +431 -0
- data/lib/immunio/plugins/action_view/template_rendering.rb +45 -0
- data/lib/immunio/plugins/http_tracker.rb +2 -0
- data/lib/immunio/plugins/io.rb +34 -0
- data/lib/immunio/version.rb +1 -1
- data/lua-hooks/Makefile +36 -9
- data/lua-hooks/ext/luajit/COPYRIGHT +1 -1
- data/lua-hooks/ext/luajit/Makefile +22 -15
- data/lua-hooks/ext/luajit/README +2 -2
- data/lua-hooks/ext/luajit/doc/bluequad-print.css +1 -1
- data/lua-hooks/ext/luajit/doc/bluequad.css +1 -1
- data/lua-hooks/ext/luajit/doc/changes.html +69 -3
- data/lua-hooks/ext/luajit/doc/contact.html +10 -3
- data/lua-hooks/ext/luajit/doc/ext_c_api.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_ffi.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +3 -4
- data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_jit.html +3 -3
- data/lua-hooks/ext/luajit/doc/ext_profiler.html +2 -2
- data/lua-hooks/ext/luajit/doc/extensions.html +47 -20
- data/lua-hooks/ext/luajit/doc/faq.html +2 -2
- data/lua-hooks/ext/luajit/doc/install.html +74 -45
- data/lua-hooks/ext/luajit/doc/luajit.html +5 -5
- data/lua-hooks/ext/luajit/doc/running.html +3 -3
- data/lua-hooks/ext/luajit/doc/status.html +13 -8
- data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +8 -5
- data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +66 -11
- data/lua-hooks/ext/luajit/dynasm/dasm_mips64.lua +12 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +5 -1
- data/lua-hooks/ext/luajit/dynasm/dynasm.lua +2 -2
- data/lua-hooks/ext/luajit/etc/luajit.1 +1 -1
- data/lua-hooks/ext/luajit/etc/luajit.pc +1 -1
- data/lua-hooks/ext/luajit/src/Makefile +15 -11
- data/lua-hooks/ext/luajit/src/Makefile.dep +16 -16
- data/lua-hooks/ext/luajit/src/host/buildvm.c +2 -2
- data/lua-hooks/ext/luajit/src/host/buildvm.h +1 -1
- data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +9 -4
- data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +2 -2
- data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +1 -1
- data/lua-hooks/ext/luajit/src/host/buildvm_libbc.h +14 -3
- data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +27 -3
- data/lua-hooks/ext/luajit/src/host/genlibbc.lua +1 -1
- data/lua-hooks/ext/luajit/src/host/genminilua.lua +6 -5
- data/lua-hooks/ext/luajit/src/host/minilua.c +1 -1
- data/lua-hooks/ext/luajit/src/jit/bc.lua +1 -1
- data/lua-hooks/ext/luajit/src/jit/bcsave.lua +8 -8
- data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +2 -2
- data/lua-hooks/ext/luajit/src/jit/dis_arm64.lua +1216 -0
- data/lua-hooks/ext/luajit/src/jit/dis_arm64be.lua +12 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +35 -20
- data/lua-hooks/ext/luajit/src/jit/dis_mips64.lua +17 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mips64el.lua +17 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +1 -1
- data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +2 -2
- data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +1 -1
- data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +7 -4
- data/lua-hooks/ext/luajit/src/jit/dump.lua +17 -12
- data/lua-hooks/ext/luajit/src/jit/p.lua +3 -2
- data/lua-hooks/ext/luajit/src/jit/v.lua +2 -2
- data/lua-hooks/ext/luajit/src/jit/zone.lua +1 -1
- data/lua-hooks/ext/luajit/src/lauxlib.h +14 -20
- data/lua-hooks/ext/luajit/src/lib_aux.c +38 -27
- data/lua-hooks/ext/luajit/src/lib_base.c +12 -5
- data/lua-hooks/ext/luajit/src/lib_bit.c +1 -1
- data/lua-hooks/ext/luajit/src/lib_debug.c +5 -5
- data/lua-hooks/ext/luajit/src/lib_ffi.c +2 -2
- data/lua-hooks/ext/luajit/src/lib_init.c +16 -16
- data/lua-hooks/ext/luajit/src/lib_io.c +6 -7
- data/lua-hooks/ext/luajit/src/lib_jit.c +14 -4
- data/lua-hooks/ext/luajit/src/lib_math.c +1 -5
- data/lua-hooks/ext/luajit/src/lib_os.c +1 -1
- data/lua-hooks/ext/luajit/src/lib_package.c +14 -23
- data/lua-hooks/ext/luajit/src/lib_string.c +1 -5
- data/lua-hooks/ext/luajit/src/lib_table.c +21 -1
- data/lua-hooks/ext/luajit/src/lj.supp +3 -3
- data/lua-hooks/ext/luajit/src/lj_alloc.c +174 -83
- data/lua-hooks/ext/luajit/src/lj_api.c +97 -18
- data/lua-hooks/ext/luajit/src/lj_arch.h +54 -22
- data/lua-hooks/ext/luajit/src/lj_asm.c +172 -53
- data/lua-hooks/ext/luajit/src/lj_asm.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_asm_arm.h +19 -16
- data/lua-hooks/ext/luajit/src/lj_asm_arm64.h +2022 -0
- data/lua-hooks/ext/luajit/src/lj_asm_mips.h +564 -158
- data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +19 -18
- data/lua-hooks/ext/luajit/src/lj_asm_x86.h +578 -92
- data/lua-hooks/ext/luajit/src/lj_bc.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_bc.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_bcdump.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_bcread.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_bcwrite.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_buf.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_buf.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_carith.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_carith.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ccall.c +172 -7
- data/lua-hooks/ext/luajit/src/lj_ccall.h +21 -5
- data/lua-hooks/ext/luajit/src/lj_ccallback.c +71 -17
- data/lua-hooks/ext/luajit/src/lj_ccallback.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_cconv.c +4 -2
- data/lua-hooks/ext/luajit/src/lj_cconv.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_cdata.c +7 -5
- data/lua-hooks/ext/luajit/src/lj_cdata.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_clib.c +5 -5
- data/lua-hooks/ext/luajit/src/lj_clib.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_cparse.c +11 -6
- data/lua-hooks/ext/luajit/src/lj_cparse.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_crecord.c +70 -14
- data/lua-hooks/ext/luajit/src/lj_crecord.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ctype.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_ctype.h +8 -8
- data/lua-hooks/ext/luajit/src/lj_debug.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_debug.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_def.h +6 -9
- data/lua-hooks/ext/luajit/src/lj_dispatch.c +3 -3
- data/lua-hooks/ext/luajit/src/lj_dispatch.h +2 -1
- data/lua-hooks/ext/luajit/src/lj_emit_arm.h +5 -4
- data/lua-hooks/ext/luajit/src/lj_emit_arm64.h +419 -0
- data/lua-hooks/ext/luajit/src/lj_emit_mips.h +100 -20
- data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +4 -4
- data/lua-hooks/ext/luajit/src/lj_emit_x86.h +116 -25
- data/lua-hooks/ext/luajit/src/lj_err.c +34 -13
- data/lua-hooks/ext/luajit/src/lj_err.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_errmsg.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ff.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ffrecord.c +58 -49
- data/lua-hooks/ext/luajit/src/lj_ffrecord.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_frame.h +33 -6
- data/lua-hooks/ext/luajit/src/lj_func.c +4 -2
- data/lua-hooks/ext/luajit/src/lj_func.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_gc.c +16 -7
- data/lua-hooks/ext/luajit/src/lj_gc.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_gdbjit.c +31 -1
- data/lua-hooks/ext/luajit/src/lj_gdbjit.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ir.c +69 -96
- data/lua-hooks/ext/luajit/src/lj_ir.h +29 -18
- data/lua-hooks/ext/luajit/src/lj_ircall.h +24 -30
- data/lua-hooks/ext/luajit/src/lj_iropt.h +9 -9
- data/lua-hooks/ext/luajit/src/lj_jit.h +67 -9
- data/lua-hooks/ext/luajit/src/lj_lex.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_lex.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_lib.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_lib.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_load.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_mcode.c +11 -10
- data/lua-hooks/ext/luajit/src/lj_mcode.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_meta.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_meta.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_obj.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_obj.h +7 -3
- data/lua-hooks/ext/luajit/src/lj_opt_dce.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_opt_fold.c +84 -17
- data/lua-hooks/ext/luajit/src/lj_opt_loop.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_opt_mem.c +3 -3
- data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +24 -22
- data/lua-hooks/ext/luajit/src/lj_opt_sink.c +11 -6
- data/lua-hooks/ext/luajit/src/lj_opt_split.c +11 -2
- data/lua-hooks/ext/luajit/src/lj_parse.c +9 -7
- data/lua-hooks/ext/luajit/src/lj_parse.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_profile.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_profile.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_record.c +201 -117
- data/lua-hooks/ext/luajit/src/lj_record.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_snap.c +72 -26
- data/lua-hooks/ext/luajit/src/lj_snap.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_state.c +6 -6
- data/lua-hooks/ext/luajit/src/lj_state.h +2 -2
- data/lua-hooks/ext/luajit/src/lj_str.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_str.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_strfmt.c +7 -3
- data/lua-hooks/ext/luajit/src/lj_strfmt.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_strfmt_num.c +4 -3
- data/lua-hooks/ext/luajit/src/lj_strscan.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_strscan.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_tab.c +1 -2
- data/lua-hooks/ext/luajit/src/lj_tab.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_target.h +3 -3
- data/lua-hooks/ext/luajit/src/lj_target_arm.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_target_arm64.h +239 -7
- data/lua-hooks/ext/luajit/src/lj_target_mips.h +111 -22
- data/lua-hooks/ext/luajit/src/lj_target_ppc.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_target_x86.h +21 -4
- data/lua-hooks/ext/luajit/src/lj_trace.c +63 -18
- data/lua-hooks/ext/luajit/src/lj_trace.h +2 -1
- data/lua-hooks/ext/luajit/src/lj_traceerr.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_udata.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_udata.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_vm.h +5 -1
- data/lua-hooks/ext/luajit/src/lj_vmevent.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_vmevent.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_vmmath.c +1 -1
- data/lua-hooks/ext/luajit/src/ljamalg.c +1 -1
- data/lua-hooks/ext/luajit/src/lua.h +9 -1
- data/lua-hooks/ext/luajit/src/luaconf.h +3 -7
- data/lua-hooks/ext/luajit/src/luajit.c +69 -54
- data/lua-hooks/ext/luajit/src/luajit.h +4 -4
- data/lua-hooks/ext/luajit/src/lualib.h +1 -1
- data/lua-hooks/ext/luajit/src/msvcbuild.bat +12 -4
- data/lua-hooks/ext/luajit/src/vm_arm.dasc +1 -1
- data/lua-hooks/ext/luajit/src/vm_arm64.dasc +255 -32
- data/lua-hooks/ext/luajit/src/vm_mips.dasc +26 -23
- data/lua-hooks/ext/luajit/src/vm_mips64.dasc +5062 -0
- data/lua-hooks/ext/luajit/src/vm_ppc.dasc +1 -1
- data/lua-hooks/ext/luajit/src/vm_x64.dasc +24 -25
- data/lua-hooks/ext/luajit/src/vm_x86.dasc +77 -4
- data/lua-hooks/libluahooks.darwin.a +0 -0
- data/lua-hooks/libluahooks.linux.a +0 -0
- data/lua-hooks/options.mk +1 -1
- metadata +37 -77
- data/lua-hooks/ext/all.c +0 -69
- data/lua-hooks/ext/libinjection/COPYING +0 -37
- data/lua-hooks/ext/libinjection/libinjection.h +0 -65
- data/lua-hooks/ext/libinjection/libinjection_html5.c +0 -847
- data/lua-hooks/ext/libinjection/libinjection_html5.h +0 -54
- data/lua-hooks/ext/libinjection/libinjection_sqli.c +0 -2301
- data/lua-hooks/ext/libinjection/libinjection_sqli.h +0 -295
- data/lua-hooks/ext/libinjection/libinjection_sqli_data.h +0 -9349
- data/lua-hooks/ext/libinjection/libinjection_xss.c +0 -531
- data/lua-hooks/ext/libinjection/libinjection_xss.h +0 -21
- data/lua-hooks/ext/libinjection/lualib.c +0 -145
- data/lua-hooks/ext/libinjection/module.mk +0 -5
- data/lua-hooks/ext/lpeg/HISTORY +0 -96
- data/lua-hooks/ext/lpeg/lpcap.c +0 -537
- data/lua-hooks/ext/lpeg/lpcap.h +0 -56
- data/lua-hooks/ext/lpeg/lpcode.c +0 -1014
- data/lua-hooks/ext/lpeg/lpcode.h +0 -40
- data/lua-hooks/ext/lpeg/lpeg-128.gif +0 -0
- data/lua-hooks/ext/lpeg/lpeg.html +0 -1445
- data/lua-hooks/ext/lpeg/lpprint.c +0 -244
- data/lua-hooks/ext/lpeg/lpprint.h +0 -36
- data/lua-hooks/ext/lpeg/lptree.c +0 -1303
- data/lua-hooks/ext/lpeg/lptree.h +0 -82
- data/lua-hooks/ext/lpeg/lptypes.h +0 -149
- data/lua-hooks/ext/lpeg/lpvm.c +0 -364
- data/lua-hooks/ext/lpeg/lpvm.h +0 -58
- data/lua-hooks/ext/lpeg/makefile +0 -55
- data/lua-hooks/ext/lpeg/module.mk +0 -6
- data/lua-hooks/ext/lpeg/re.html +0 -498
- data/lua-hooks/ext/lua-cmsgpack/.gitignore +0 -13
- data/lua-hooks/ext/lua-cmsgpack/CMakeLists.txt +0 -45
- data/lua-hooks/ext/lua-cmsgpack/README.md +0 -115
- data/lua-hooks/ext/lua-cmsgpack/lua_cmsgpack.c +0 -970
- data/lua-hooks/ext/lua-cmsgpack/module.mk +0 -2
- data/lua-hooks/ext/lua-cmsgpack/test.lua +0 -570
- data/lua-hooks/ext/lua-snapshot/LICENSE +0 -7
- data/lua-hooks/ext/lua-snapshot/Makefile +0 -12
- data/lua-hooks/ext/lua-snapshot/README.md +0 -18
- data/lua-hooks/ext/lua-snapshot/dump.lua +0 -15
- data/lua-hooks/ext/lua-snapshot/module.mk +0 -2
- data/lua-hooks/ext/lua-snapshot/snapshot.c +0 -462
- data/lua-hooks/ext/luautf8/README.md +0 -152
- data/lua-hooks/ext/luautf8/lutf8lib.c +0 -1274
- data/lua-hooks/ext/luautf8/module.mk +0 -2
- data/lua-hooks/ext/luautf8/unidata.h +0 -3064
- data/lua-hooks/ext/module.mk +0 -15
- data/lua-hooks/ext/modules.h +0 -17
- data/lua-hooks/ext/perf/luacpu.c +0 -114
- data/lua-hooks/ext/perf/lualoadavg.c +0 -40
- data/lua-hooks/ext/perf/luameminfo.c +0 -38
- data/lua-hooks/ext/perf/luaoslib.c +0 -203
- data/lua-hooks/ext/perf/module.mk +0 -5
- data/lua-hooks/ext/sha1/luasha1.c +0 -74
- data/lua-hooks/ext/sha1/module.mk +0 -5
- data/lua-hooks/ext/sha1/sha1.c +0 -145
- data/lua-hooks/ext/sha2/luasha256.c +0 -77
- data/lua-hooks/ext/sha2/module.mk +0 -5
- data/lua-hooks/ext/sha2/sha256.c +0 -196
- data/lua-hooks/ext/sysutils/lua_utils.c +0 -56
- data/lua-hooks/ext/sysutils/module.mk +0 -2
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>LuaJIT</title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
6
6
|
<meta name="Author" content="Mike Pall">
|
7
|
-
<meta name="Copyright" content="Copyright (C) 2005-
|
7
|
+
<meta name="Copyright" content="Copyright (C) 2005-2017, Mike Pall">
|
8
8
|
<meta name="Language" content="en">
|
9
9
|
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
10
10
|
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
@@ -152,7 +152,7 @@ Lua is a powerful, dynamic and light-weight programming language.
|
|
152
152
|
It may be embedded or used as a general-purpose, stand-alone language.
|
153
153
|
</p>
|
154
154
|
<p>
|
155
|
-
LuaJIT is Copyright © 2005-
|
155
|
+
LuaJIT is Copyright © 2005-2017 Mike Pall, released under the
|
156
156
|
<a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">»</span> MIT open source license</a>.
|
157
157
|
</p>
|
158
158
|
<p>
|
@@ -169,10 +169,10 @@ LuaJIT is Copyright © 2005-2016 Mike Pall, released under the
|
|
169
169
|
<tr><td>PS3</td><td>PS4</td><td>PS Vita</td><td>Xbox 360</td><td>Xbox One</td></tr>
|
170
170
|
</table>
|
171
171
|
<table class="feature compiler">
|
172
|
-
<tr><td>GCC</td><td>
|
172
|
+
<tr><td>GCC</td><td>Clang<br>LLVM</td><td>MSVC</td></tr>
|
173
173
|
</table>
|
174
174
|
<table class="feature cpu">
|
175
|
-
<tr><td>x86
|
175
|
+
<tr><td>x86<br>x64</td><td>ARM<br>ARM64</td><td>PPC</td><td>MIPS32<br>MIPS64</td></tr>
|
176
176
|
</table>
|
177
177
|
<table class="feature fcompat">
|
178
178
|
<tr><td>Lua 5.1<br>API+ABI</td><td>+ JIT</td><td>+ BitOp</td><td>+ FFI</td><td>Drop-in<br>DLL/.so</td></tr>
|
@@ -226,7 +226,7 @@ Please select a sub-topic in the navigation bar to learn more about LuaJIT.
|
|
226
226
|
</div>
|
227
227
|
<div id="foot">
|
228
228
|
<hr class="hide">
|
229
|
-
Copyright © 2005-
|
229
|
+
Copyright © 2005-2017 Mike Pall
|
230
230
|
<span class="noprint">
|
231
231
|
·
|
232
232
|
<a href="contact.html">Contact</a>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>Running LuaJIT</title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
6
6
|
<meta name="Author" content="Mike Pall">
|
7
|
-
<meta name="Copyright" content="Copyright (C) 2005-
|
7
|
+
<meta name="Copyright" content="Copyright (C) 2005-2017, Mike Pall">
|
8
8
|
<meta name="Language" content="en">
|
9
9
|
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
10
10
|
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
@@ -189,7 +189,7 @@ itself. For a description of their options and output format, please
|
|
189
189
|
read the comment block at the start of their source.
|
190
190
|
They can be found in the <tt>lib</tt> directory of the source
|
191
191
|
distribution or installed under the <tt>jit</tt> directory. By default
|
192
|
-
this is <tt>/usr/local/share/luajit-2.0.
|
192
|
+
this is <tt>/usr/local/share/luajit-2.0.5/jit</tt> on POSIX
|
193
193
|
systems.
|
194
194
|
</p>
|
195
195
|
|
@@ -299,7 +299,7 @@ Here are the parameters and their default settings:
|
|
299
299
|
</div>
|
300
300
|
<div id="foot">
|
301
301
|
<hr class="hide">
|
302
|
-
Copyright © 2005-
|
302
|
+
Copyright © 2005-2017 Mike Pall
|
303
303
|
<span class="noprint">
|
304
304
|
·
|
305
305
|
<a href="contact.html">Contact</a>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>Status</title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
6
6
|
<meta name="Author" content="Mike Pall">
|
7
|
-
<meta name="Copyright" content="Copyright (C) 2005-
|
7
|
+
<meta name="Copyright" content="Copyright (C) 2005-2017, Mike Pall">
|
8
8
|
<meta name="Language" content="en">
|
9
9
|
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
10
10
|
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
@@ -91,24 +91,29 @@ hooks for non-Lua functions) and shows slightly different behavior
|
|
91
91
|
in LuaJIT (no per-coroutine hooks, no tail call counting).
|
92
92
|
</li>
|
93
93
|
<li>
|
94
|
-
Some checks are missing in the JIT-compiled code for obscure situations
|
95
|
-
with <b>open upvalues aliasing</b> one of the SSA slots later on (or
|
96
|
-
vice versa). Bonus points, if you can find a real world test case for
|
97
|
-
this.
|
98
|
-
</li>
|
99
|
-
<li>
|
100
94
|
Currently some <b>out-of-memory</b> errors from <b>on-trace code</b> are not
|
101
95
|
handled correctly. The error may fall through an on-trace
|
102
96
|
<tt>pcall</tt> or it may be passed on to the function set with
|
103
97
|
<tt>lua_atpanic</tt> on x64. This issue will be fixed with the new
|
104
98
|
garbage collector.
|
105
99
|
</li>
|
100
|
+
<li>
|
101
|
+
LuaJIT on 64 bit systems provides a <b>limited range</b> of 47 bits for the
|
102
|
+
<b>legacy <tt>lightuserdata</tt></b> data type.
|
103
|
+
This is only relevant on x64 systems which use the negative part of the
|
104
|
+
virtual address space in user mode, e.g. Solaris/x64, and on ARM64 systems
|
105
|
+
configured with a 48 bit or 52 bit VA.
|
106
|
+
Avoid using <tt>lightuserdata</tt> to hold pointers that may point outside
|
107
|
+
of that range, e.g. variables on the stack. In general, avoid this data
|
108
|
+
type for new code and replace it with (much more performant) FFI bindings.
|
109
|
+
FFI cdata pointers can address the full 64 bit range.
|
110
|
+
</li>
|
106
111
|
</ul>
|
107
112
|
<br class="flush">
|
108
113
|
</div>
|
109
114
|
<div id="foot">
|
110
115
|
<hr class="hide">
|
111
|
-
Copyright © 2005-
|
116
|
+
Copyright © 2005-2017 Mike Pall
|
112
117
|
<span class="noprint">
|
113
118
|
·
|
114
119
|
<a href="contact.html">Contact</a>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
------------------------------------------------------------------------------
|
2
2
|
-- DynASM ARM module.
|
3
3
|
--
|
4
|
-
-- Copyright (C) 2005-
|
4
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
5
5
|
-- See dynasm.lua for full copyright notice.
|
6
6
|
------------------------------------------------------------------------------
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
------------------------------------------------------------------------------
|
2
2
|
-- DynASM ARM64 module.
|
3
3
|
--
|
4
|
-
-- Copyright (C) 2005-
|
4
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
5
5
|
-- See dynasm.lua for full copyright notice.
|
6
6
|
------------------------------------------------------------------------------
|
7
7
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
** DynASM MIPS encoding engine.
|
3
|
-
** Copyright (C) 2005-
|
3
|
+
** Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
4
4
|
** Released under the MIT license. See dynasm.lua for full copyright notice.
|
5
5
|
*/
|
6
6
|
|
@@ -21,7 +21,7 @@ enum {
|
|
21
21
|
/* The following actions need a buffer position. */
|
22
22
|
DASM_ALIGN, DASM_REL_LG, DASM_LABEL_LG,
|
23
23
|
/* The following actions also have an argument. */
|
24
|
-
DASM_REL_PC, DASM_LABEL_PC, DASM_IMM,
|
24
|
+
DASM_REL_PC, DASM_LABEL_PC, DASM_IMM, DASM_IMMS,
|
25
25
|
DASM__MAX
|
26
26
|
};
|
27
27
|
|
@@ -231,7 +231,7 @@ void dasm_put(Dst_DECL, int start, ...)
|
|
231
231
|
*pl = -pos; /* Label exists now. */
|
232
232
|
b[pos++] = ofs; /* Store pass1 offset estimate. */
|
233
233
|
break;
|
234
|
-
case DASM_IMM:
|
234
|
+
case DASM_IMM: case DASM_IMMS:
|
235
235
|
#ifdef DASM_CHECKS
|
236
236
|
CK((n & ((1<<((ins>>10)&31))-1)) == 0, RANGE_I);
|
237
237
|
#endif
|
@@ -299,7 +299,7 @@ int dasm_link(Dst_DECL, size_t *szp)
|
|
299
299
|
case DASM_ALIGN: ofs -= (b[pos++] + ofs) & (ins & 255); break;
|
300
300
|
case DASM_REL_LG: case DASM_REL_PC: pos++; break;
|
301
301
|
case DASM_LABEL_LG: case DASM_LABEL_PC: b[pos++] += ofs; break;
|
302
|
-
case DASM_IMM: pos++; break;
|
302
|
+
case DASM_IMM: case DASM_IMMS: pos++; break;
|
303
303
|
}
|
304
304
|
}
|
305
305
|
stop: (void)0;
|
@@ -356,7 +356,7 @@ int dasm_encode(Dst_DECL, void *buffer)
|
|
356
356
|
if (ins & 2048)
|
357
357
|
n = n - (int)((char *)cp - base);
|
358
358
|
else
|
359
|
-
n = (n + (int)base) & 0x0fffffff;
|
359
|
+
n = (n + (int)(size_t)base) & 0x0fffffff;
|
360
360
|
patchrel:
|
361
361
|
CK((n & 3) == 0 &&
|
362
362
|
((n + ((ins & 2048) ? 0x00020000 : 0)) >>
|
@@ -367,6 +367,9 @@ int dasm_encode(Dst_DECL, void *buffer)
|
|
367
367
|
ins &= 2047; if (ins >= 20) D->globals[ins-10] = (void *)(base + n);
|
368
368
|
break;
|
369
369
|
case DASM_LABEL_PC: break;
|
370
|
+
case DASM_IMMS:
|
371
|
+
cp[-1] |= ((n>>3) & 4); n &= 0x1f;
|
372
|
+
/* fallthrough */
|
370
373
|
case DASM_IMM:
|
371
374
|
cp[-1] |= (n & ((1<<((ins>>5)&31))-1)) << (ins&31);
|
372
375
|
break;
|
@@ -1,17 +1,19 @@
|
|
1
1
|
------------------------------------------------------------------------------
|
2
|
-
-- DynASM
|
2
|
+
-- DynASM MIPS32/MIPS64 module.
|
3
3
|
--
|
4
|
-
-- Copyright (C) 2005-
|
4
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
5
5
|
-- See dynasm.lua for full copyright notice.
|
6
6
|
------------------------------------------------------------------------------
|
7
7
|
|
8
|
+
local mips64 = mips64
|
9
|
+
|
8
10
|
-- Module information:
|
9
11
|
local _info = {
|
10
|
-
arch = "mips",
|
11
|
-
description = "DynASM
|
12
|
+
arch = mips64 and "mips64" or "mips",
|
13
|
+
description = "DynASM MIPS32/MIPS64 module",
|
12
14
|
version = "1.4.0",
|
13
15
|
vernum = 10400,
|
14
|
-
release = "
|
16
|
+
release = "2016-05-24",
|
15
17
|
author = "Mike Pall",
|
16
18
|
license = "MIT",
|
17
19
|
}
|
@@ -27,7 +29,8 @@ local sub, format, byte, char = _s.sub, _s.format, _s.byte, _s.char
|
|
27
29
|
local match, gmatch = _s.match, _s.gmatch
|
28
30
|
local concat, sort = table.concat, table.sort
|
29
31
|
local bit = bit or require("bit")
|
30
|
-
local band, shl,
|
32
|
+
local band, shl, shr, sar = bit.band, bit.lshift, bit.rshift, bit.arshift
|
33
|
+
local tohex = bit.tohex
|
31
34
|
|
32
35
|
-- Inherited tables and callbacks.
|
33
36
|
local g_opt, g_arch
|
@@ -38,7 +41,7 @@ local wline, werror, wfatal, wwarn
|
|
38
41
|
local action_names = {
|
39
42
|
"STOP", "SECTION", "ESC", "REL_EXT",
|
40
43
|
"ALIGN", "REL_LG", "LABEL_LG",
|
41
|
-
"REL_PC", "LABEL_PC", "IMM",
|
44
|
+
"REL_PC", "LABEL_PC", "IMM", "IMMS",
|
42
45
|
}
|
43
46
|
|
44
47
|
-- Maximum number of section buffer positions for dasm_put().
|
@@ -251,6 +254,10 @@ local map_op = {
|
|
251
254
|
bnel_3 = "54000000STB",
|
252
255
|
blezl_2 = "58000000SB",
|
253
256
|
bgtzl_2 = "5c000000SB",
|
257
|
+
daddi_3 = mips64 and "60000000TSI",
|
258
|
+
daddiu_3 = mips64 and "64000000TSI",
|
259
|
+
ldl_2 = mips64 and "68000000TO",
|
260
|
+
ldr_2 = mips64 and "6c000000TO",
|
254
261
|
lb_2 = "80000000TO",
|
255
262
|
lh_2 = "84000000TO",
|
256
263
|
lwl_2 = "88000000TO",
|
@@ -258,23 +265,30 @@ local map_op = {
|
|
258
265
|
lbu_2 = "90000000TO",
|
259
266
|
lhu_2 = "94000000TO",
|
260
267
|
lwr_2 = "98000000TO",
|
268
|
+
lwu_2 = mips64 and "9c000000TO",
|
261
269
|
sb_2 = "a0000000TO",
|
262
270
|
sh_2 = "a4000000TO",
|
263
271
|
swl_2 = "a8000000TO",
|
264
272
|
sw_2 = "ac000000TO",
|
273
|
+
sdl_2 = mips64 and "b0000000TO",
|
274
|
+
sdr_2 = mips64 and "b1000000TO",
|
265
275
|
swr_2 = "b8000000TO",
|
266
276
|
cache_2 = "bc000000NO",
|
267
277
|
ll_2 = "c0000000TO",
|
268
278
|
lwc1_2 = "c4000000HO",
|
269
279
|
pref_2 = "cc000000NO",
|
270
280
|
ldc1_2 = "d4000000HO",
|
281
|
+
ld_2 = mips64 and "dc000000TO",
|
271
282
|
sc_2 = "e0000000TO",
|
272
283
|
swc1_2 = "e4000000HO",
|
284
|
+
scd_2 = mips64 and "f0000000TO",
|
273
285
|
sdc1_2 = "f4000000HO",
|
286
|
+
sd_2 = mips64 and "fc000000TO",
|
274
287
|
|
275
288
|
-- Opcode SPECIAL.
|
276
289
|
nop_0 = "00000000",
|
277
290
|
sll_3 = "00000000DTA",
|
291
|
+
sextw_2 = "00000000DT",
|
278
292
|
movf_2 = "00000001DS",
|
279
293
|
movf_3 = "00000001DSC",
|
280
294
|
movt_2 = "00010001DS",
|
@@ -285,6 +299,7 @@ local map_op = {
|
|
285
299
|
sllv_3 = "00000004DTS",
|
286
300
|
srlv_3 = "00000006DTS",
|
287
301
|
rotrv_3 = "00000046DTS",
|
302
|
+
drotrv_3 = mips64 and "00000056DTS",
|
288
303
|
srav_3 = "00000007DTS",
|
289
304
|
jr_1 = "00000008S",
|
290
305
|
jalr_1 = "0000f809S",
|
@@ -300,15 +315,22 @@ local map_op = {
|
|
300
315
|
mthi_1 = "00000011S",
|
301
316
|
mflo_1 = "00000012D",
|
302
317
|
mtlo_1 = "00000013S",
|
318
|
+
dsllv_3 = mips64 and "00000014DTS",
|
319
|
+
dsrlv_3 = mips64 and "00000016DTS",
|
320
|
+
dsrav_3 = mips64 and "00000017DTS",
|
303
321
|
mult_2 = "00000018ST",
|
304
322
|
multu_2 = "00000019ST",
|
305
323
|
div_2 = "0000001aST",
|
306
324
|
divu_2 = "0000001bST",
|
325
|
+
dmult_2 = mips64 and "0000001cST",
|
326
|
+
dmultu_2 = mips64 and "0000001dST",
|
327
|
+
ddiv_2 = mips64 and "0000001eST",
|
328
|
+
ddivu_2 = mips64 and "0000001fST",
|
307
329
|
add_3 = "00000020DST",
|
308
|
-
move_2 = "00000021DS",
|
330
|
+
move_2 = mips64 and "00000025DS" or "00000021DS",
|
309
331
|
addu_3 = "00000021DST",
|
310
332
|
sub_3 = "00000022DST",
|
311
|
-
negu_2 = "00000023DT",
|
333
|
+
negu_2 = mips64 and "0000002fDT" or "00000023DT",
|
312
334
|
subu_3 = "00000023DST",
|
313
335
|
and_3 = "00000024DST",
|
314
336
|
or_3 = "00000025DST",
|
@@ -317,6 +339,10 @@ local map_op = {
|
|
317
339
|
nor_3 = "00000027DST",
|
318
340
|
slt_3 = "0000002aDST",
|
319
341
|
sltu_3 = "0000002bDST",
|
342
|
+
dadd_3 = mips64 and "0000002cDST",
|
343
|
+
daddu_3 = mips64 and "0000002dDST",
|
344
|
+
dsub_3 = mips64 and "0000002eDST",
|
345
|
+
dsubu_3 = mips64 and "0000002fDST",
|
320
346
|
tge_2 = "00000030ST",
|
321
347
|
tge_3 = "00000030STZ",
|
322
348
|
tgeu_2 = "00000031ST",
|
@@ -329,6 +355,14 @@ local map_op = {
|
|
329
355
|
teq_3 = "00000034STZ",
|
330
356
|
tne_2 = "00000036ST",
|
331
357
|
tne_3 = "00000036STZ",
|
358
|
+
dsll_3 = mips64 and "00000038DTa",
|
359
|
+
dsrl_3 = mips64 and "0000003aDTa",
|
360
|
+
drotr_3 = mips64 and "0020003aDTa",
|
361
|
+
dsra_3 = mips64 and "0000003bDTa",
|
362
|
+
dsll32_3 = mips64 and "0000003cDTA",
|
363
|
+
dsrl32_3 = mips64 and "0000003eDTA",
|
364
|
+
drotr32_3 = mips64 and "0020003eDTA",
|
365
|
+
dsra32_3 = mips64 and "0000003fDTA",
|
332
366
|
|
333
367
|
-- Opcode REGIMM.
|
334
368
|
bltz_2 = "04000000SB",
|
@@ -356,13 +390,24 @@ local map_op = {
|
|
356
390
|
msubu_2 = "70000005ST",
|
357
391
|
clz_2 = "70000020DS=",
|
358
392
|
clo_2 = "70000021DS=",
|
393
|
+
dclz_2 = mips64 and "70000024DS=",
|
394
|
+
dclo_2 = mips64 and "70000025DS=",
|
359
395
|
sdbbp_0 = "7000003f",
|
360
396
|
sdbbp_1 = "7000003fY",
|
361
397
|
|
362
398
|
-- Opcode SPECIAL3.
|
363
399
|
ext_4 = "7c000000TSAM", -- Note: last arg is msbd = size-1
|
400
|
+
dextm_4 = mips64 and "7c000001TSAM", -- Args: pos | size-1-32
|
401
|
+
dextu_4 = mips64 and "7c000002TSAM", -- Args: pos-32 | size-1
|
402
|
+
dext_4 = mips64 and "7c000003TSAM", -- Args: pos | size-1
|
403
|
+
zextw_2 = mips64 and "7c00f803TS",
|
364
404
|
ins_4 = "7c000004TSAM", -- Note: last arg is msb = pos+size-1
|
405
|
+
dinsm_4 = mips64 and "7c000005TSAM", -- Args: pos | pos+size-33
|
406
|
+
dinsu_4 = mips64 and "7c000006TSAM", -- Args: pos-32 | pos+size-33
|
407
|
+
dins_4 = mips64 and "7c000007TSAM", -- Args: pos | pos+size-1
|
365
408
|
wsbh_2 = "7c0000a0DT",
|
409
|
+
dsbh_2 = mips64 and "7c0000a4DT",
|
410
|
+
dshd_2 = mips64 and "7c000164DT",
|
366
411
|
seb_2 = "7c000420DT",
|
367
412
|
seh_2 = "7c000620DT",
|
368
413
|
rdhwr_2 = "7c00003bTD",
|
@@ -370,8 +415,12 @@ local map_op = {
|
|
370
415
|
-- Opcode COP0.
|
371
416
|
mfc0_2 = "40000000TD",
|
372
417
|
mfc0_3 = "40000000TDW",
|
418
|
+
dmfc0_2 = mips64 and "40200000TD",
|
419
|
+
dmfc0_3 = mips64 and "40200000TDW",
|
373
420
|
mtc0_2 = "40800000TD",
|
374
421
|
mtc0_3 = "40800000TDW",
|
422
|
+
dmtc0_2 = mips64 and "40a00000TD",
|
423
|
+
dmtc0_3 = mips64 and "40a00000TDW",
|
375
424
|
rdpgpr_2 = "41400000DT",
|
376
425
|
di_0 = "41606000",
|
377
426
|
di_1 = "41606000T",
|
@@ -388,9 +437,11 @@ local map_op = {
|
|
388
437
|
|
389
438
|
-- Opcode COP1.
|
390
439
|
mfc1_2 = "44000000TG",
|
440
|
+
dmfc1_2 = mips64 and "44200000TG",
|
391
441
|
cfc1_2 = "44400000TG",
|
392
442
|
mfhc1_2 = "44600000TG",
|
393
443
|
mtc1_2 = "44800000TG",
|
444
|
+
dmtc1_2 = mips64 and "44a00000TG",
|
394
445
|
ctc1_2 = "44c00000TG",
|
395
446
|
mthc1_2 = "44e00000TG",
|
396
447
|
|
@@ -633,7 +684,7 @@ local function parse_fpr(expr)
|
|
633
684
|
werror("bad register name `"..expr.."'")
|
634
685
|
end
|
635
686
|
|
636
|
-
local function parse_imm(imm, bits, shift, scale, signed)
|
687
|
+
local function parse_imm(imm, bits, shift, scale, signed, action)
|
637
688
|
local n = tonumber(imm)
|
638
689
|
if n then
|
639
690
|
local m = sar(n, scale)
|
@@ -651,7 +702,8 @@ local function parse_imm(imm, bits, shift, scale, signed)
|
|
651
702
|
match(imm, "^([%w_]+):([rf][1-3]?[0-9])$") then
|
652
703
|
werror("expected immediate operand, got register")
|
653
704
|
else
|
654
|
-
waction("IMM",
|
705
|
+
waction(action or "IMM",
|
706
|
+
(signed and 32768 or 0)+shl(scale, 10)+shl(bits, 5)+shift, imm)
|
655
707
|
return 0
|
656
708
|
end
|
657
709
|
end
|
@@ -763,6 +815,9 @@ map_op[".template__"] = function(params, template, nparams)
|
|
763
815
|
n = n + 1
|
764
816
|
elseif p == "A" then
|
765
817
|
op = op + parse_imm(params[n], 5, 6, 0, false); n = n + 1
|
818
|
+
elseif p == "a" then
|
819
|
+
local m = parse_imm(params[n], 6, 6, 0, false, "IMMS"); n = n + 1
|
820
|
+
op = op + band(m, 0x7c0) + band(shr(m, 9), 4)
|
766
821
|
elseif p == "M" then
|
767
822
|
op = op + parse_imm(params[n], 5, 11, 0, false); n = n + 1
|
768
823
|
elseif p == "N" then
|
@@ -0,0 +1,12 @@
|
|
1
|
+
------------------------------------------------------------------------------
|
2
|
+
-- DynASM MIPS64 module.
|
3
|
+
--
|
4
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
5
|
+
-- See dynasm.lua for full copyright notice.
|
6
|
+
------------------------------------------------------------------------------
|
7
|
+
-- This module just sets 64 bit mode for the combined MIPS/MIPS64 module.
|
8
|
+
-- All the interesting stuff is there.
|
9
|
+
------------------------------------------------------------------------------
|
10
|
+
|
11
|
+
mips64 = true -- Using a global is an ugly, but effective solution.
|
12
|
+
return require("dasm_mips")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
------------------------------------------------------------------------------
|
2
2
|
-- DynASM PPC/PPC64 module.
|
3
3
|
--
|
4
|
-
-- Copyright (C) 2005-
|
4
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
5
5
|
-- See dynasm.lua for full copyright notice.
|
6
6
|
--
|
7
7
|
-- Support for various extensions contributed by Caio Souza Oliveira.
|