immunio 1.2.1 → 2.0.2
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/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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
------------------------------------------------------------------------------
|
|
2
2
|
-- DynASM x64 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
|
-- This module just sets 64 bit mode for the combined x86/x64 module.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
------------------------------------------------------------------------------
|
|
2
2
|
-- DynASM x86/x64 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
|
|
|
@@ -1673,6 +1673,10 @@ local map_op = {
|
|
|
1673
1673
|
vpsravd_3 = "rrmoy:660F38V46rM",
|
|
1674
1674
|
vpsrlvd_3 = "rrmoy:660F38V45rM",
|
|
1675
1675
|
vpsrlvq_3 = "rrmoy:660F38VX45rM",
|
|
1676
|
+
|
|
1677
|
+
-- Intel ADX
|
|
1678
|
+
adcx_2 = "rmqd:660F38F6rM",
|
|
1679
|
+
adox_2 = "rmqd:F30F38F6rM",
|
|
1676
1680
|
}
|
|
1677
1681
|
|
|
1678
1682
|
------------------------------------------------------------------------------
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- DynASM. A dynamic assembler for code generation engines.
|
|
3
3
|
-- Originally designed and implemented for LuaJIT.
|
|
4
4
|
--
|
|
5
|
-
-- Copyright (C) 2005-
|
|
5
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
|
6
6
|
-- See below for full copyright notice.
|
|
7
7
|
------------------------------------------------------------------------------
|
|
8
8
|
|
|
@@ -17,7 +17,7 @@ local _info = {
|
|
|
17
17
|
url = "http://luajit.org/dynasm.html",
|
|
18
18
|
license = "MIT",
|
|
19
19
|
copyright = [[
|
|
20
|
-
Copyright (C) 2005-
|
|
20
|
+
Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
|
21
21
|
|
|
22
22
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
23
23
|
a copy of this software and associated documentation files (the
|
|
@@ -74,7 +74,7 @@ luajit \-jv \-e "for i=1,10 do for j=1,10 do for k=1,100 do end end end"
|
|
|
74
74
|
Runs some nested loops and shows the resulting traces.
|
|
75
75
|
.SH COPYRIGHT
|
|
76
76
|
.PP
|
|
77
|
-
\fBLuaJIT\fR is Copyright \(co 2005-
|
|
77
|
+
\fBLuaJIT\fR is Copyright \(co 2005-2017 Mike Pall.
|
|
78
78
|
.br
|
|
79
79
|
\fBLuaJIT\fR is open source software, released under the MIT license.
|
|
80
80
|
.SH SEE ALSO
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# Also works with MinGW and Cygwin on Windows.
|
|
8
8
|
# Please check msvcbuild.bat for building with MSVC on Windows.
|
|
9
9
|
#
|
|
10
|
-
# Copyright (C) 2005-
|
|
10
|
+
# Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
|
|
11
11
|
##############################################################################
|
|
12
12
|
|
|
13
13
|
MAJVER= 2
|
|
@@ -110,6 +110,9 @@ XCFLAGS=
|
|
|
110
110
|
#XCFLAGS+= -DLUAJIT_NUMMODE=1
|
|
111
111
|
#XCFLAGS+= -DLUAJIT_NUMMODE=2
|
|
112
112
|
#
|
|
113
|
+
# Enable GC64 mode for x64.
|
|
114
|
+
#XCFLAGS+= -DLUAJIT_ENABLE_GC64
|
|
115
|
+
#
|
|
113
116
|
##############################################################################
|
|
114
117
|
|
|
115
118
|
##############################################################################
|
|
@@ -121,8 +124,8 @@ XCFLAGS=
|
|
|
121
124
|
#
|
|
122
125
|
# Use the system provided memory allocator (realloc) instead of the
|
|
123
126
|
# bundled memory allocator. This is slower, but sometimes helpful for
|
|
124
|
-
# debugging. This option cannot be enabled on x64, since
|
|
125
|
-
# doesn't return addresses in the right address range.
|
|
127
|
+
# debugging. This option cannot be enabled on x64 without GC64, since
|
|
128
|
+
# realloc usually doesn't return addresses in the right address range.
|
|
126
129
|
# OTOH this option is mandatory for Valgrind's memcheck tool on x64 and
|
|
127
130
|
# the only way to get useful results from it for all other architectures.
|
|
128
131
|
#XCFLAGS+= -DLUAJIT_USE_SYSMALLOC
|
|
@@ -166,10 +169,6 @@ else
|
|
|
166
169
|
HOST_SYS= Windows
|
|
167
170
|
HOST_MSYS= cygwin
|
|
168
171
|
endif
|
|
169
|
-
# Use Clang for OSX host.
|
|
170
|
-
ifeq (Darwin,$(HOST_SYS))
|
|
171
|
-
DEFAULT_CC= clang
|
|
172
|
-
endif
|
|
173
172
|
endif
|
|
174
173
|
|
|
175
174
|
##############################################################################
|
|
@@ -210,7 +209,7 @@ TARGET_CC= $(STATIC_CC)
|
|
|
210
209
|
TARGET_STCC= $(STATIC_CC)
|
|
211
210
|
TARGET_DYNCC= $(DYNAMIC_CC)
|
|
212
211
|
TARGET_LD= $(CROSS)$(CC)
|
|
213
|
-
TARGET_AR= $(CROSS)ar rcus
|
|
212
|
+
TARGET_AR= $(CROSS)ar rcus 2>/dev/null
|
|
214
213
|
TARGET_STRIP= $(CROSS)strip
|
|
215
214
|
|
|
216
215
|
TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib)
|
|
@@ -243,6 +242,9 @@ ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH)))
|
|
|
243
242
|
TARGET_LJARCH= arm
|
|
244
243
|
else
|
|
245
244
|
ifneq (,$(findstring LJ_TARGET_ARM64 ,$(TARGET_TESTARCH)))
|
|
245
|
+
ifneq (,$(findstring __AARCH64EB__ ,$(TARGET_TESTARCH)))
|
|
246
|
+
TARGET_ARCH= -D__AARCH64EB__=1
|
|
247
|
+
endif
|
|
246
248
|
TARGET_LJARCH= arm64
|
|
247
249
|
else
|
|
248
250
|
ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH)))
|
|
@@ -257,7 +259,11 @@ ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH)))
|
|
|
257
259
|
ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH)))
|
|
258
260
|
TARGET_ARCH= -D__MIPSEL__=1
|
|
259
261
|
endif
|
|
260
|
-
|
|
262
|
+
ifneq (,$(findstring LJ_TARGET_MIPS64 ,$(TARGET_TESTARCH)))
|
|
263
|
+
TARGET_LJARCH= mips64
|
|
264
|
+
else
|
|
265
|
+
TARGET_LJARCH= mips
|
|
266
|
+
endif
|
|
261
267
|
else
|
|
262
268
|
$(error Unsupported target architecture)
|
|
263
269
|
endif
|
|
@@ -310,7 +316,6 @@ ifeq (Darwin,$(TARGET_SYS))
|
|
|
310
316
|
export MACOSX_DEPLOYMENT_TARGET=10.4
|
|
311
317
|
endif
|
|
312
318
|
TARGET_STRIP+= -x
|
|
313
|
-
TARGET_AR+= 2>/dev/null
|
|
314
319
|
TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
|
|
315
320
|
TARGET_DYNXLDOPTS=
|
|
316
321
|
TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER)
|
|
@@ -321,7 +326,6 @@ ifeq (Darwin,$(TARGET_SYS))
|
|
|
321
326
|
else
|
|
322
327
|
ifeq (iOS,$(TARGET_SYS))
|
|
323
328
|
TARGET_STRIP+= -x
|
|
324
|
-
TARGET_AR+= 2>/dev/null
|
|
325
329
|
TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
|
|
326
330
|
TARGET_DYNXLDOPTS=
|
|
327
331
|
TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER)
|
|
@@ -3,8 +3,8 @@ lib_aux.o: lib_aux.c lua.h luaconf.h lauxlib.h lj_obj.h lj_def.h \
|
|
|
3
3
|
lj_dispatch.h lj_bc.h lj_traceerr.h lj_lib.h lj_alloc.h
|
|
4
4
|
lib_base.o: lib_base.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \
|
|
5
5
|
lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_str.h \
|
|
6
|
-
lj_tab.h lj_meta.h lj_state.h
|
|
7
|
-
lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \
|
|
6
|
+
lj_tab.h lj_meta.h lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_cconv.h \
|
|
7
|
+
lj_ff.h lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \
|
|
8
8
|
lj_strfmt.h lj_lib.h lj_libdef.h
|
|
9
9
|
lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \
|
|
10
10
|
lj_arch.h lj_err.h lj_errmsg.h lj_buf.h lj_gc.h lj_str.h lj_strscan.h \
|
|
@@ -163,7 +163,7 @@ lj_opt_sink.o: lj_opt_sink.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \
|
|
|
163
163
|
lj_ir.h lj_jit.h lj_iropt.h lj_target.h lj_target_*.h
|
|
164
164
|
lj_opt_split.o: lj_opt_split.c lj_obj.h lua.h luaconf.h lj_def.h \
|
|
165
165
|
lj_arch.h lj_err.h lj_errmsg.h lj_buf.h lj_gc.h lj_str.h lj_ir.h \
|
|
166
|
-
lj_jit.h lj_ircall.h lj_iropt.h lj_vm.h
|
|
166
|
+
lj_jit.h lj_ircall.h lj_iropt.h lj_dispatch.h lj_bc.h lj_vm.h
|
|
167
167
|
lj_parse.o: lj_parse.c lj_obj.h lua.h luaconf.h lj_def.h lj_arch.h \
|
|
168
168
|
lj_gc.h lj_err.h lj_errmsg.h lj_debug.h lj_buf.h lj_str.h lj_tab.h \
|
|
169
169
|
lj_func.h lj_state.h lj_bc.h lj_ctype.h lj_strfmt.h lj_lex.h lj_parse.h \
|
|
@@ -215,19 +215,19 @@ ljamalg.o: ljamalg.c lua.h luaconf.h lauxlib.h lj_gc.c lj_obj.h lj_def.h \
|
|
|
215
215
|
lj_func.c lj_udata.c lj_meta.c lj_strscan.h lj_lib.h lj_debug.c \
|
|
216
216
|
lj_state.c lj_lex.h lj_alloc.h luajit.h lj_dispatch.c lj_ccallback.h \
|
|
217
217
|
lj_profile.h lj_vmevent.c lj_vmevent.h lj_vmmath.c lj_strscan.c \
|
|
218
|
-
lj_strfmt.c lj_api.c lj_profile.c lj_lex.c lualib.h
|
|
219
|
-
lj_parse.c lj_bcread.c lj_bcdump.h lj_bcwrite.c lj_load.c
|
|
220
|
-
lj_cdata.c lj_cconv.h lj_cconv.c lj_ccall.c lj_ccall.h
|
|
221
|
-
lj_target.h lj_target_*.h lj_mcode.h lj_carith.c
|
|
222
|
-
lj_clib.h lj_cparse.c lj_cparse.h lj_lib.c lj_ir.c
|
|
223
|
-
lj_iropt.h lj_opt_mem.c lj_opt_fold.c lj_folddef.h
|
|
224
|
-
lj_opt_dce.c lj_opt_loop.c lj_snap.h lj_opt_split.c
|
|
225
|
-
lj_mcode.c lj_snap.c lj_record.c lj_record.h lj_ffrecord.h
|
|
226
|
-
lj_crecord.h lj_ffrecord.c lj_recdef.h lj_asm.c lj_asm.h
|
|
227
|
-
lj_asm_*.h lj_trace.c lj_gdbjit.h lj_gdbjit.c lj_alloc.c
|
|
228
|
-
lib_base.c lj_libdef.h lib_math.c lib_string.c lib_table.c
|
|
229
|
-
lib_os.c lib_package.c lib_debug.c lib_bit.c lib_jit.c
|
|
230
|
-
lib_init.c
|
|
218
|
+
lj_strfmt.c lj_strfmt_num.c lj_api.c lj_profile.c lj_lex.c lualib.h \
|
|
219
|
+
lj_parse.h lj_parse.c lj_bcread.c lj_bcdump.h lj_bcwrite.c lj_load.c \
|
|
220
|
+
lj_ctype.c lj_cdata.c lj_cconv.h lj_cconv.c lj_ccall.c lj_ccall.h \
|
|
221
|
+
lj_ccallback.c lj_target.h lj_target_*.h lj_mcode.h lj_carith.c \
|
|
222
|
+
lj_carith.h lj_clib.c lj_clib.h lj_cparse.c lj_cparse.h lj_lib.c lj_ir.c \
|
|
223
|
+
lj_ircall.h lj_iropt.h lj_opt_mem.c lj_opt_fold.c lj_folddef.h \
|
|
224
|
+
lj_opt_narrow.c lj_opt_dce.c lj_opt_loop.c lj_snap.h lj_opt_split.c \
|
|
225
|
+
lj_opt_sink.c lj_mcode.c lj_snap.c lj_record.c lj_record.h lj_ffrecord.h \
|
|
226
|
+
lj_crecord.c lj_crecord.h lj_ffrecord.c lj_recdef.h lj_asm.c lj_asm.h \
|
|
227
|
+
lj_emit_*.h lj_asm_*.h lj_trace.c lj_gdbjit.h lj_gdbjit.c lj_alloc.c \
|
|
228
|
+
lib_aux.c lib_base.c lj_libdef.h lib_math.c lib_string.c lib_table.c \
|
|
229
|
+
lib_io.c lib_os.c lib_package.c lib_debug.c lib_bit.c lib_jit.c \
|
|
230
|
+
lib_ffi.c lib_init.c
|
|
231
231
|
luajit.o: luajit.c lua.h luaconf.h lauxlib.h lualib.h luajit.h lj_arch.h
|
|
232
232
|
host/buildvm.o: host/buildvm.c host/buildvm.h lj_def.h lua.h luaconf.h \
|
|
233
233
|
lj_arch.h lj_obj.h lj_def.h lj_arch.h lj_gc.h lj_obj.h lj_bc.h lj_ir.h \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** LuaJIT VM builder.
|
|
3
|
-
** Copyright (C) 2005-
|
|
3
|
+
** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
|
|
4
4
|
**
|
|
5
5
|
** This is a tool to build the hand-tuned assembler code required for
|
|
6
6
|
** LuaJIT's bytecode interpreter. It supports a variety of output formats
|
|
@@ -110,7 +110,7 @@ static const char *sym_decorate(BuildCtx *ctx,
|
|
|
110
110
|
if (p) {
|
|
111
111
|
#if LJ_TARGET_X86ORX64
|
|
112
112
|
if (!LJ_64 && (ctx->mode == BUILD_coffasm || ctx->mode == BUILD_peobj))
|
|
113
|
-
name[0] = '@';
|
|
113
|
+
name[0] = name[1] == 'R' ? '_' : '@'; /* Just for _RtlUnwind@16. */
|
|
114
114
|
else
|
|
115
115
|
*p = '\0';
|
|
116
116
|
#elif LJ_TARGET_PPC && !LJ_TARGET_CONSOLE
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** LuaJIT VM builder: Assembler source code emitter.
|
|
3
|
-
** Copyright (C) 2005-
|
|
3
|
+
** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
#include "buildvm.h"
|
|
@@ -93,10 +93,14 @@ static void emit_asm_words(BuildCtx *ctx, uint8_t *p, int n)
|
|
|
93
93
|
{
|
|
94
94
|
int i;
|
|
95
95
|
for (i = 0; i < n; i += 4) {
|
|
96
|
+
uint32_t ins = *(uint32_t *)(p+i);
|
|
97
|
+
#if LJ_TARGET_ARM64 && LJ_BE
|
|
98
|
+
ins = lj_bswap(ins); /* ARM64 instructions are always little-endian. */
|
|
99
|
+
#endif
|
|
96
100
|
if ((i & 15) == 0)
|
|
97
|
-
fprintf(ctx->fp, "\t.long 0x%08x",
|
|
101
|
+
fprintf(ctx->fp, "\t.long 0x%08x", ins);
|
|
98
102
|
else
|
|
99
|
-
fprintf(ctx->fp, ",0x%08x",
|
|
103
|
+
fprintf(ctx->fp, ",0x%08x", ins);
|
|
100
104
|
if ((i & 15) == 12) putc('\n', ctx->fp);
|
|
101
105
|
}
|
|
102
106
|
if ((n & 15) != 0) putc('\n', ctx->fp);
|
|
@@ -214,7 +218,8 @@ static void emit_asm_label(BuildCtx *ctx, const char *name, int size, int isfunc
|
|
|
214
218
|
case BUILD_machasm:
|
|
215
219
|
fprintf(ctx->fp,
|
|
216
220
|
"\n\t.private_extern %s\n"
|
|
217
|
-
"%s
|
|
221
|
+
"\t.no_dead_strip %s\n"
|
|
222
|
+
"%s:\n", name, name, name);
|
|
218
223
|
break;
|
|
219
224
|
default:
|
|
220
225
|
break;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** LuaJIT VM builder: IR folding hash table generator.
|
|
3
|
-
** Copyright (C) 2005-
|
|
3
|
+
** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
#include "buildvm.h"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
/* Context for the folding hash table generator. */
|
|
11
11
|
static int lineno;
|
|
12
|
-
static
|
|
12
|
+
static uint32_t funcidx;
|
|
13
13
|
static uint32_t foldkeys[BUILD_MAX_FOLD];
|
|
14
14
|
static uint32_t nkeys;
|
|
15
15
|
|
|
@@ -15,7 +15,12 @@ static const uint8_t libbc_code[] = {
|
|
|
15
15
|
8,2,0,0,88,3,23,128,59,3,2,0,43,4,0,0,64,4,2,0,76,3,2,0,88,3,18,128,16,1,14,
|
|
16
16
|
0,41,3,1,0,3,3,1,0,88,3,14,128,3,1,2,0,88,3,12,128,59,3,1,0,22,4,1,1,18,5,2,
|
|
17
17
|
0,41,6,1,0,77,4,4,128,23,8,1,7,59,9,7,0,64,9,8,0,79,4,252,127,43,4,0,0,64,4,
|
|
18
|
-
2,0,76,3,2,0,75,0,1,0,0,2,0
|
|
18
|
+
2,0,76,3,2,0,75,0,1,0,0,2,0,5,12,0,0,0,35,16,0,12,0,16,1,14,0,16,2,14,0,16,
|
|
19
|
+
3,14,0,11,4,0,0,88,5,1,128,18,4,0,0,16,4,12,0,3,1,2,0,88,5,24,128,33,5,1,3,
|
|
20
|
+
0,2,3,0,88,6,4,128,2,3,1,0,88,6,2,128,4,4,0,0,88,6,9,128,18,6,1,0,18,7,2,0,
|
|
21
|
+
41,8,1,0,77,6,4,128,32,10,5,9,59,11,9,0,64,11,10,4,79,6,252,127,88,6,8,128,
|
|
22
|
+
18,6,2,0,18,7,1,0,41,8,255,255,77,6,4,128,32,10,5,9,59,11,9,0,64,11,10,4,79,
|
|
23
|
+
6,252,127,76,4,2,0,0
|
|
19
24
|
#else
|
|
20
25
|
0,1,2,0,0,1,2,24,1,0,0,76,1,2,0,241,135,158,166,3,220,203,178,130,4,0,1,2,0,
|
|
21
26
|
0,1,2,24,1,0,0,76,1,2,0,243,244,148,165,20,198,190,199,252,3,0,1,2,0,0,0,3,
|
|
@@ -28,7 +33,12 @@ static const uint8_t libbc_code[] = {
|
|
|
28
33
|
8,2,0,0,88,3,23,128,59,3,2,0,43,4,0,0,64,4,2,0,76,3,2,0,88,3,18,128,16,1,14,
|
|
29
34
|
0,41,3,1,0,3,3,1,0,88,3,14,128,3,1,2,0,88,3,12,128,59,3,1,0,22,4,1,1,18,5,2,
|
|
30
35
|
0,41,6,1,0,77,4,4,128,23,8,1,7,59,9,7,0,64,9,8,0,79,4,252,127,43,4,0,0,64,4,
|
|
31
|
-
2,0,76,3,2,0,75,0,1,0,0,2,0
|
|
36
|
+
2,0,76,3,2,0,75,0,1,0,0,2,0,5,12,0,0,0,35,16,0,12,0,16,1,14,0,16,2,14,0,16,
|
|
37
|
+
3,14,0,11,4,0,0,88,5,1,128,18,4,0,0,16,4,12,0,3,1,2,0,88,5,24,128,33,5,1,3,
|
|
38
|
+
0,2,3,0,88,6,4,128,2,3,1,0,88,6,2,128,4,4,0,0,88,6,9,128,18,6,1,0,18,7,2,0,
|
|
39
|
+
41,8,1,0,77,6,4,128,32,10,5,9,59,11,9,0,64,11,10,4,79,6,252,127,88,6,8,128,
|
|
40
|
+
18,6,2,0,18,7,1,0,41,8,255,255,77,6,4,128,32,10,5,9,59,11,9,0,64,11,10,4,79,
|
|
41
|
+
6,252,127,76,4,2,0,0
|
|
32
42
|
#endif
|
|
33
43
|
};
|
|
34
44
|
|
|
@@ -40,6 +50,7 @@ static const struct { const char *name; int ofs; } libbc_map[] = {
|
|
|
40
50
|
{"table_foreach",136},
|
|
41
51
|
{"table_getn",207},
|
|
42
52
|
{"table_remove",226},
|
|
43
|
-
{
|
|
53
|
+
{"table_move",355},
|
|
54
|
+
{NULL,502}
|
|
44
55
|
};
|
|
45
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** LuaJIT VM builder: PE object emitter.
|
|
3
|
-
** Copyright (C) 2005-
|
|
3
|
+
** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
|
|
4
4
|
**
|
|
5
5
|
** Only used for building on Windows, since we cannot assume the presence
|
|
6
6
|
** of a suitable assembler. The host and target byte order must match.
|
|
@@ -109,6 +109,8 @@ enum {
|
|
|
109
109
|
#if LJ_TARGET_X64
|
|
110
110
|
PEOBJ_SECT_PDATA,
|
|
111
111
|
PEOBJ_SECT_XDATA,
|
|
112
|
+
#elif LJ_TARGET_X86
|
|
113
|
+
PEOBJ_SECT_SXDATA,
|
|
112
114
|
#endif
|
|
113
115
|
PEOBJ_SECT_RDATA_Z,
|
|
114
116
|
PEOBJ_NSECTIONS
|
|
@@ -208,6 +210,13 @@ void emit_peobj(BuildCtx *ctx)
|
|
|
208
210
|
sofs += (pesect[PEOBJ_SECT_XDATA].nreloc = 1) * PEOBJ_RELOC_SIZE;
|
|
209
211
|
/* Flags: 40 = read, 30 = align4, 40 = initialized data. */
|
|
210
212
|
pesect[PEOBJ_SECT_XDATA].flags = 0x40300040;
|
|
213
|
+
#elif LJ_TARGET_X86
|
|
214
|
+
memcpy(pesect[PEOBJ_SECT_SXDATA].name, ".sxdata", sizeof(".sxdata")-1);
|
|
215
|
+
pesect[PEOBJ_SECT_SXDATA].ofs = sofs;
|
|
216
|
+
sofs += (pesect[PEOBJ_SECT_SXDATA].size = 4);
|
|
217
|
+
pesect[PEOBJ_SECT_SXDATA].relocofs = sofs;
|
|
218
|
+
/* Flags: 40 = read, 30 = align4, 02 = lnk_info, 40 = initialized data. */
|
|
219
|
+
pesect[PEOBJ_SECT_SXDATA].flags = 0x40300240;
|
|
211
220
|
#endif
|
|
212
221
|
|
|
213
222
|
memcpy(pesect[PEOBJ_SECT_RDATA_Z].name, ".rdata$Z", sizeof(".rdata$Z")-1);
|
|
@@ -232,7 +241,7 @@ void emit_peobj(BuildCtx *ctx)
|
|
|
232
241
|
nrsym = ctx->nrelocsym;
|
|
233
242
|
pehdr.nsyms = 1+PEOBJ_NSECTIONS*2 + 1+ctx->nsym + nrsym;
|
|
234
243
|
#if LJ_TARGET_X64
|
|
235
|
-
pehdr.nsyms += 1; /* Symbol for
|
|
244
|
+
pehdr.nsyms += 1; /* Symbol for lj_err_unwind_win. */
|
|
236
245
|
#endif
|
|
237
246
|
|
|
238
247
|
/* Write PE object header and all sections. */
|
|
@@ -312,6 +321,19 @@ void emit_peobj(BuildCtx *ctx)
|
|
|
312
321
|
reloc.type = PEOBJ_RELOC_ADDR32NB;
|
|
313
322
|
owrite(ctx, &reloc, PEOBJ_RELOC_SIZE);
|
|
314
323
|
}
|
|
324
|
+
#elif LJ_TARGET_X86
|
|
325
|
+
/* Write .sxdata section. */
|
|
326
|
+
for (i = 0; i < nrsym; i++) {
|
|
327
|
+
if (!strcmp(ctx->relocsym[i], "_lj_err_unwind_win")) {
|
|
328
|
+
uint32_t symidx = 1+2+i;
|
|
329
|
+
owrite(ctx, &symidx, 4);
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
if (i == nrsym) {
|
|
334
|
+
fprintf(stderr, "Error: extern lj_err_unwind_win not used\n");
|
|
335
|
+
exit(1);
|
|
336
|
+
}
|
|
315
337
|
#endif
|
|
316
338
|
|
|
317
339
|
/* Write .rdata$Z section. */
|
|
@@ -333,8 +355,10 @@ void emit_peobj(BuildCtx *ctx)
|
|
|
333
355
|
#if LJ_TARGET_X64
|
|
334
356
|
emit_peobj_sym_sect(ctx, pesect, PEOBJ_SECT_PDATA);
|
|
335
357
|
emit_peobj_sym_sect(ctx, pesect, PEOBJ_SECT_XDATA);
|
|
336
|
-
emit_peobj_sym(ctx, "
|
|
358
|
+
emit_peobj_sym(ctx, "lj_err_unwind_win", 0,
|
|
337
359
|
PEOBJ_SECT_UNDEF, PEOBJ_TYPE_FUNC, PEOBJ_SCL_EXTERN);
|
|
360
|
+
#elif LJ_TARGET_X86
|
|
361
|
+
emit_peobj_sym_sect(ctx, pesect, PEOBJ_SECT_SXDATA);
|
|
338
362
|
#endif
|
|
339
363
|
|
|
340
364
|
emit_peobj_sym(ctx, ctx->beginsym, 0,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- Lua script to dump the bytecode of the library functions written in Lua.
|
|
3
3
|
-- The resulting 'buildvm_libbc.h' is used for the build process of LuaJIT.
|
|
4
4
|
----------------------------------------------------------------------------
|
|
5
|
-
-- Copyright (C) 2005-
|
|
5
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
|
6
6
|
-- Released under the MIT license. See Copyright Notice in luajit.h
|
|
7
7
|
----------------------------------------------------------------------------
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- Lua script to generate a customized, minified version of Lua.
|
|
3
3
|
-- The resulting 'minilua' is used for the build process of LuaJIT.
|
|
4
4
|
----------------------------------------------------------------------------
|
|
5
|
-
-- Copyright (C) 2005-
|
|
5
|
+
-- Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
|
6
6
|
-- Released under the MIT license. See Copyright Notice in luajit.h
|
|
7
7
|
----------------------------------------------------------------------------
|
|
8
8
|
|
|
@@ -157,11 +157,11 @@ local function merge_includes(src)
|
|
|
157
157
|
if includes[name] then return "" end
|
|
158
158
|
includes[name] = true
|
|
159
159
|
local fp = assert(io.open(LUA_SOURCE..name, "r"))
|
|
160
|
-
local
|
|
160
|
+
local inc = fp:read("*a")
|
|
161
161
|
assert(fp:close())
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return merge_includes(
|
|
162
|
+
inc = gsub(inc, "#ifndef%s+%w+_h\n#define%s+%w+_h\n", "")
|
|
163
|
+
inc = gsub(inc, "#endif%s*$", "")
|
|
164
|
+
return merge_includes(inc)
|
|
165
165
|
end)
|
|
166
166
|
end
|
|
167
167
|
|
|
@@ -300,6 +300,7 @@ local function strip_unused3(src)
|
|
|
300
300
|
src = gsub(src, "if%([^\n]*hookmask[^\n]*&&\n[^\n]*%b{}\n", "")
|
|
301
301
|
src = gsub(src, "(twoto%b()%()", "%1(size_t)")
|
|
302
302
|
src = gsub(src, "i<sizenode", "i<(int)sizenode")
|
|
303
|
+
src = gsub(src, "cast%(unsigned int,key%-1%)", "cast(unsigned int,key)-1")
|
|
303
304
|
return gsub(src, "\n\n+", "\n")
|
|
304
305
|
end
|
|
305
306
|
|