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,97 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** Definitions for ARM64 CPUs.
|
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#ifndef _LJ_TARGET_ARM64_H
|
|
7
|
+
#define _LJ_TARGET_ARM64_H
|
|
8
|
+
|
|
9
|
+
/* -- Registers IDs ------------------------------------------------------- */
|
|
10
|
+
|
|
11
|
+
#define GPRDEF(_) \
|
|
12
|
+
_(X0) _(X1) _(X2) _(X3) _(X4) _(X5) _(X6) _(X7) \
|
|
13
|
+
_(X8) _(X9) _(X10) _(X11) _(X12) _(X13) _(X14) _(X15) \
|
|
14
|
+
_(X16) _(X17) _(X18) _(X19) _(X20) _(X21) _(X22) _(X23) \
|
|
15
|
+
_(X24) _(X25) _(X26) _(X27) _(X28) _(FP) _(LR) _(SP)
|
|
16
|
+
#define FPRDEF(_) \
|
|
17
|
+
_(D0) _(D1) _(D2) _(D3) _(D4) _(D5) _(D6) _(D7) \
|
|
18
|
+
_(D8) _(D9) _(D10) _(D11) _(D12) _(D13) _(D14) _(D15) \
|
|
19
|
+
_(D16) _(D17) _(D18) _(D19) _(D20) _(D21) _(D22) _(D23) \
|
|
20
|
+
_(D24) _(D25) _(D26) _(D27) _(D28) _(D29) _(D30) _(D31)
|
|
21
|
+
#define VRIDDEF(_)
|
|
22
|
+
|
|
23
|
+
#define RIDENUM(name) RID_##name,
|
|
24
|
+
|
|
25
|
+
enum {
|
|
26
|
+
GPRDEF(RIDENUM) /* General-purpose registers (GPRs). */
|
|
27
|
+
FPRDEF(RIDENUM) /* Floating-point registers (FPRs). */
|
|
28
|
+
RID_MAX,
|
|
29
|
+
RID_TMP = RID_LR,
|
|
30
|
+
RID_ZERO = RID_SP,
|
|
31
|
+
|
|
32
|
+
/* Calling conventions. */
|
|
33
|
+
RID_RET = RID_X0,
|
|
34
|
+
RID_FPRET = RID_D0,
|
|
35
|
+
|
|
36
|
+
/* These definitions must match with the *.dasc file(s): */
|
|
37
|
+
RID_BASE = RID_X19, /* Interpreter BASE. */
|
|
38
|
+
RID_LPC = RID_X21, /* Interpreter PC. */
|
|
39
|
+
RID_GL = RID_X22, /* Interpreter GL. */
|
|
40
|
+
RID_LREG = RID_X23, /* Interpreter L. */
|
|
41
|
+
|
|
42
|
+
/* Register ranges [min, max) and number of registers. */
|
|
43
|
+
RID_MIN_GPR = RID_X0,
|
|
44
|
+
RID_MAX_GPR = RID_SP+1,
|
|
45
|
+
RID_MIN_FPR = RID_MAX_GPR,
|
|
46
|
+
RID_MAX_FPR = RID_D31+1,
|
|
47
|
+
RID_NUM_GPR = RID_MAX_GPR - RID_MIN_GPR,
|
|
48
|
+
RID_NUM_FPR = RID_MAX_FPR - RID_MIN_FPR
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
#define RID_NUM_KREF RID_NUM_GPR
|
|
52
|
+
#define RID_MIN_KREF RID_X0
|
|
53
|
+
|
|
54
|
+
/* -- Register sets ------------------------------------------------------- */
|
|
55
|
+
|
|
56
|
+
/* Make use of all registers, except for x18, fp, lr and sp. */
|
|
57
|
+
#define RSET_FIXED \
|
|
58
|
+
(RID2RSET(RID_X18)|RID2RSET(RID_FP)|RID2RSET(RID_LR)|RID2RSET(RID_SP))
|
|
59
|
+
#define RSET_GPR (RSET_RANGE(RID_MIN_GPR, RID_MAX_GPR) - RSET_FIXED)
|
|
60
|
+
#define RSET_FPR RSET_RANGE(RID_MIN_FPR, RID_MAX_FPR)
|
|
61
|
+
#define RSET_ALL (RSET_GPR|RSET_FPR)
|
|
62
|
+
#define RSET_INIT RSET_ALL
|
|
63
|
+
|
|
64
|
+
/* lr is an implicit scratch register. */
|
|
65
|
+
#define RSET_SCRATCH_GPR (RSET_RANGE(RID_X0, RID_X17+1))
|
|
66
|
+
#define RSET_SCRATCH_FPR \
|
|
67
|
+
(RSET_RANGE(RID_D0, RID_D7+1)|RSET_RANGE(RID_D16, RID_D31+1))
|
|
68
|
+
#define RSET_SCRATCH (RSET_SCRATCH_GPR|RSET_SCRATCH_FPR)
|
|
69
|
+
#define REGARG_FIRSTGPR RID_X0
|
|
70
|
+
#define REGARG_LASTGPR RID_X7
|
|
71
|
+
#define REGARG_NUMGPR 8
|
|
72
|
+
#define REGARG_FIRSTFPR RID_D0
|
|
73
|
+
#define REGARG_LASTFPR RID_D7
|
|
74
|
+
#define REGARG_NUMFPR 8
|
|
75
|
+
|
|
76
|
+
/* -- Instructions -------------------------------------------------------- */
|
|
77
|
+
|
|
78
|
+
/* Instruction fields. */
|
|
79
|
+
#define A64F_D(r) (r)
|
|
80
|
+
#define A64F_N(r) ((r) << 5)
|
|
81
|
+
#define A64F_A(r) ((r) << 10)
|
|
82
|
+
#define A64F_M(r) ((r) << 16)
|
|
83
|
+
#define A64F_U16(x) ((x) << 5)
|
|
84
|
+
#define A64F_S26(x) (x)
|
|
85
|
+
#define A64F_S19(x) ((x) << 5)
|
|
86
|
+
|
|
87
|
+
typedef enum A64Ins {
|
|
88
|
+
A64I_MOVZw = 0x52800000,
|
|
89
|
+
A64I_MOVZx = 0xd2800000,
|
|
90
|
+
A64I_LDRLw = 0x18000000,
|
|
91
|
+
A64I_LDRLx = 0x58000000,
|
|
92
|
+
A64I_NOP = 0xd503201f,
|
|
93
|
+
A64I_B = 0x14000000,
|
|
94
|
+
A64I_BR = 0xd61f0000,
|
|
95
|
+
} A64Ins;
|
|
96
|
+
|
|
97
|
+
#endif
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** Definitions for MIPS CPUs.
|
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#ifndef _LJ_TARGET_MIPS_H
|
|
7
|
+
#define _LJ_TARGET_MIPS_H
|
|
8
|
+
|
|
9
|
+
/* -- Registers IDs ------------------------------------------------------- */
|
|
10
|
+
|
|
11
|
+
#define GPRDEF(_) \
|
|
12
|
+
_(R0) _(R1) _(R2) _(R3) _(R4) _(R5) _(R6) _(R7) \
|
|
13
|
+
_(R8) _(R9) _(R10) _(R11) _(R12) _(R13) _(R14) _(R15) \
|
|
14
|
+
_(R16) _(R17) _(R18) _(R19) _(R20) _(R21) _(R22) _(R23) \
|
|
15
|
+
_(R24) _(R25) _(SYS1) _(SYS2) _(R28) _(SP) _(R30) _(RA)
|
|
16
|
+
#define FPRDEF(_) \
|
|
17
|
+
_(F0) _(F1) _(F2) _(F3) _(F4) _(F5) _(F6) _(F7) \
|
|
18
|
+
_(F8) _(F9) _(F10) _(F11) _(F12) _(F13) _(F14) _(F15) \
|
|
19
|
+
_(F16) _(F17) _(F18) _(F19) _(F20) _(F21) _(F22) _(F23) \
|
|
20
|
+
_(F24) _(F25) _(F26) _(F27) _(F28) _(F29) _(F30) _(F31)
|
|
21
|
+
#define VRIDDEF(_)
|
|
22
|
+
|
|
23
|
+
#define RIDENUM(name) RID_##name,
|
|
24
|
+
|
|
25
|
+
enum {
|
|
26
|
+
GPRDEF(RIDENUM) /* General-purpose registers (GPRs). */
|
|
27
|
+
FPRDEF(RIDENUM) /* Floating-point registers (FPRs). */
|
|
28
|
+
RID_MAX,
|
|
29
|
+
RID_ZERO = RID_R0,
|
|
30
|
+
RID_TMP = RID_RA,
|
|
31
|
+
|
|
32
|
+
/* Calling conventions. */
|
|
33
|
+
RID_RET = RID_R2,
|
|
34
|
+
#if LJ_LE
|
|
35
|
+
RID_RETHI = RID_R3,
|
|
36
|
+
RID_RETLO = RID_R2,
|
|
37
|
+
#else
|
|
38
|
+
RID_RETHI = RID_R2,
|
|
39
|
+
RID_RETLO = RID_R3,
|
|
40
|
+
#endif
|
|
41
|
+
RID_FPRET = RID_F0,
|
|
42
|
+
RID_CFUNCADDR = RID_R25,
|
|
43
|
+
|
|
44
|
+
/* These definitions must match with the *.dasc file(s): */
|
|
45
|
+
RID_BASE = RID_R16, /* Interpreter BASE. */
|
|
46
|
+
RID_LPC = RID_R18, /* Interpreter PC. */
|
|
47
|
+
RID_DISPATCH = RID_R19, /* Interpreter DISPATCH table. */
|
|
48
|
+
RID_LREG = RID_R20, /* Interpreter L. */
|
|
49
|
+
RID_JGL = RID_R30, /* On-trace: global_State + 32768. */
|
|
50
|
+
|
|
51
|
+
/* Register ranges [min, max) and number of registers. */
|
|
52
|
+
RID_MIN_GPR = RID_R0,
|
|
53
|
+
RID_MAX_GPR = RID_RA+1,
|
|
54
|
+
RID_MIN_FPR = RID_F0,
|
|
55
|
+
RID_MAX_FPR = RID_F31+1,
|
|
56
|
+
RID_NUM_GPR = RID_MAX_GPR - RID_MIN_GPR,
|
|
57
|
+
RID_NUM_FPR = RID_MAX_FPR - RID_MIN_FPR /* Only even regs are used. */
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
#define RID_NUM_KREF RID_NUM_GPR
|
|
61
|
+
#define RID_MIN_KREF RID_R0
|
|
62
|
+
|
|
63
|
+
/* -- Register sets ------------------------------------------------------- */
|
|
64
|
+
|
|
65
|
+
/* Make use of all registers, except ZERO, TMP, SP, SYS1, SYS2 and JGL. */
|
|
66
|
+
#define RSET_FIXED \
|
|
67
|
+
(RID2RSET(RID_ZERO)|RID2RSET(RID_TMP)|RID2RSET(RID_SP)|\
|
|
68
|
+
RID2RSET(RID_SYS1)|RID2RSET(RID_SYS2)|RID2RSET(RID_JGL))
|
|
69
|
+
#define RSET_GPR (RSET_RANGE(RID_MIN_GPR, RID_MAX_GPR) - RSET_FIXED)
|
|
70
|
+
#define RSET_FPR \
|
|
71
|
+
(RID2RSET(RID_F0)|RID2RSET(RID_F2)|RID2RSET(RID_F4)|RID2RSET(RID_F6)|\
|
|
72
|
+
RID2RSET(RID_F8)|RID2RSET(RID_F10)|RID2RSET(RID_F12)|RID2RSET(RID_F14)|\
|
|
73
|
+
RID2RSET(RID_F16)|RID2RSET(RID_F18)|RID2RSET(RID_F20)|RID2RSET(RID_F22)|\
|
|
74
|
+
RID2RSET(RID_F24)|RID2RSET(RID_F26)|RID2RSET(RID_F28)|RID2RSET(RID_F30))
|
|
75
|
+
#define RSET_ALL (RSET_GPR|RSET_FPR)
|
|
76
|
+
#define RSET_INIT RSET_ALL
|
|
77
|
+
|
|
78
|
+
#define RSET_SCRATCH_GPR \
|
|
79
|
+
(RSET_RANGE(RID_R1, RID_R15+1)|\
|
|
80
|
+
RID2RSET(RID_R24)|RID2RSET(RID_R25)|RID2RSET(RID_R28))
|
|
81
|
+
#define RSET_SCRATCH_FPR \
|
|
82
|
+
(RID2RSET(RID_F0)|RID2RSET(RID_F2)|RID2RSET(RID_F4)|RID2RSET(RID_F6)|\
|
|
83
|
+
RID2RSET(RID_F8)|RID2RSET(RID_F10)|RID2RSET(RID_F12)|RID2RSET(RID_F14)|\
|
|
84
|
+
RID2RSET(RID_F16)|RID2RSET(RID_F18))
|
|
85
|
+
#define RSET_SCRATCH (RSET_SCRATCH_GPR|RSET_SCRATCH_FPR)
|
|
86
|
+
#define REGARG_FIRSTGPR RID_R4
|
|
87
|
+
#define REGARG_LASTGPR RID_R7
|
|
88
|
+
#define REGARG_NUMGPR 4
|
|
89
|
+
#define REGARG_FIRSTFPR RID_F12
|
|
90
|
+
#define REGARG_LASTFPR RID_F14
|
|
91
|
+
#define REGARG_NUMFPR 2
|
|
92
|
+
|
|
93
|
+
/* -- Spill slots --------------------------------------------------------- */
|
|
94
|
+
|
|
95
|
+
/* Spill slots are 32 bit wide. An even/odd pair is used for FPRs.
|
|
96
|
+
**
|
|
97
|
+
** SPS_FIXED: Available fixed spill slots in interpreter frame.
|
|
98
|
+
** This definition must match with the *.dasc file(s).
|
|
99
|
+
**
|
|
100
|
+
** SPS_FIRST: First spill slot for general use.
|
|
101
|
+
*/
|
|
102
|
+
#define SPS_FIXED 5
|
|
103
|
+
#define SPS_FIRST 4
|
|
104
|
+
|
|
105
|
+
#define SPOFS_TMP 0
|
|
106
|
+
|
|
107
|
+
#define sps_scale(slot) (4 * (int32_t)(slot))
|
|
108
|
+
#define sps_align(slot) (((slot) - SPS_FIXED + 1) & ~1)
|
|
109
|
+
|
|
110
|
+
/* -- Exit state ---------------------------------------------------------- */
|
|
111
|
+
|
|
112
|
+
/* This definition must match with the *.dasc file(s). */
|
|
113
|
+
typedef struct {
|
|
114
|
+
lua_Number fpr[RID_NUM_FPR]; /* Floating-point registers. */
|
|
115
|
+
int32_t gpr[RID_NUM_GPR]; /* General-purpose registers. */
|
|
116
|
+
int32_t spill[256]; /* Spill slots. */
|
|
117
|
+
} ExitState;
|
|
118
|
+
|
|
119
|
+
/* Highest exit + 1 indicates stack check. */
|
|
120
|
+
#define EXITSTATE_CHECKEXIT 1
|
|
121
|
+
|
|
122
|
+
/* Return the address of a per-trace exit stub. */
|
|
123
|
+
static LJ_AINLINE uint32_t *exitstub_trace_addr_(uint32_t *p)
|
|
124
|
+
{
|
|
125
|
+
while (*p == 0x00000000) p++; /* Skip MIPSI_NOP. */
|
|
126
|
+
return p;
|
|
127
|
+
}
|
|
128
|
+
/* Avoid dependence on lj_jit.h if only including lj_target.h. */
|
|
129
|
+
#define exitstub_trace_addr(T, exitno) \
|
|
130
|
+
exitstub_trace_addr_((MCode *)((char *)(T)->mcode + (T)->szmcode))
|
|
131
|
+
|
|
132
|
+
/* -- Instructions -------------------------------------------------------- */
|
|
133
|
+
|
|
134
|
+
/* Instruction fields. */
|
|
135
|
+
#define MIPSF_S(r) ((r) << 21)
|
|
136
|
+
#define MIPSF_T(r) ((r) << 16)
|
|
137
|
+
#define MIPSF_D(r) ((r) << 11)
|
|
138
|
+
#define MIPSF_R(r) ((r) << 21)
|
|
139
|
+
#define MIPSF_H(r) ((r) << 16)
|
|
140
|
+
#define MIPSF_G(r) ((r) << 11)
|
|
141
|
+
#define MIPSF_F(r) ((r) << 6)
|
|
142
|
+
#define MIPSF_A(n) ((n) << 6)
|
|
143
|
+
#define MIPSF_M(n) ((n) << 11)
|
|
144
|
+
|
|
145
|
+
typedef enum MIPSIns {
|
|
146
|
+
/* Integer instructions. */
|
|
147
|
+
MIPSI_MOVE = 0x00000021,
|
|
148
|
+
MIPSI_NOP = 0x00000000,
|
|
149
|
+
|
|
150
|
+
MIPSI_LI = 0x24000000,
|
|
151
|
+
MIPSI_LU = 0x34000000,
|
|
152
|
+
MIPSI_LUI = 0x3c000000,
|
|
153
|
+
|
|
154
|
+
MIPSI_ADDIU = 0x24000000,
|
|
155
|
+
MIPSI_ANDI = 0x30000000,
|
|
156
|
+
MIPSI_ORI = 0x34000000,
|
|
157
|
+
MIPSI_XORI = 0x38000000,
|
|
158
|
+
MIPSI_SLTI = 0x28000000,
|
|
159
|
+
MIPSI_SLTIU = 0x2c000000,
|
|
160
|
+
|
|
161
|
+
MIPSI_ADDU = 0x00000021,
|
|
162
|
+
MIPSI_SUBU = 0x00000023,
|
|
163
|
+
MIPSI_MUL = 0x70000002,
|
|
164
|
+
MIPSI_AND = 0x00000024,
|
|
165
|
+
MIPSI_OR = 0x00000025,
|
|
166
|
+
MIPSI_XOR = 0x00000026,
|
|
167
|
+
MIPSI_NOR = 0x00000027,
|
|
168
|
+
MIPSI_SLT = 0x0000002a,
|
|
169
|
+
MIPSI_SLTU = 0x0000002b,
|
|
170
|
+
MIPSI_MOVZ = 0x0000000a,
|
|
171
|
+
MIPSI_MOVN = 0x0000000b,
|
|
172
|
+
MIPSI_MFHI = 0x00000010,
|
|
173
|
+
MIPSI_MFLO = 0x00000012,
|
|
174
|
+
MIPSI_MULT = 0x00000018,
|
|
175
|
+
|
|
176
|
+
MIPSI_SLL = 0x00000000,
|
|
177
|
+
MIPSI_SRL = 0x00000002,
|
|
178
|
+
MIPSI_SRA = 0x00000003,
|
|
179
|
+
MIPSI_ROTR = 0x00200002, /* MIPS32R2 */
|
|
180
|
+
MIPSI_SLLV = 0x00000004,
|
|
181
|
+
MIPSI_SRLV = 0x00000006,
|
|
182
|
+
MIPSI_SRAV = 0x00000007,
|
|
183
|
+
MIPSI_ROTRV = 0x00000046, /* MIPS32R2 */
|
|
184
|
+
|
|
185
|
+
MIPSI_SEB = 0x7c000420, /* MIPS32R2 */
|
|
186
|
+
MIPSI_SEH = 0x7c000620, /* MIPS32R2 */
|
|
187
|
+
MIPSI_WSBH = 0x7c0000a0, /* MIPS32R2 */
|
|
188
|
+
|
|
189
|
+
MIPSI_B = 0x10000000,
|
|
190
|
+
MIPSI_J = 0x08000000,
|
|
191
|
+
MIPSI_JAL = 0x0c000000,
|
|
192
|
+
MIPSI_JR = 0x00000008,
|
|
193
|
+
MIPSI_JALR = 0x0000f809,
|
|
194
|
+
|
|
195
|
+
MIPSI_BEQ = 0x10000000,
|
|
196
|
+
MIPSI_BNE = 0x14000000,
|
|
197
|
+
MIPSI_BLEZ = 0x18000000,
|
|
198
|
+
MIPSI_BGTZ = 0x1c000000,
|
|
199
|
+
MIPSI_BLTZ = 0x04000000,
|
|
200
|
+
MIPSI_BGEZ = 0x04010000,
|
|
201
|
+
|
|
202
|
+
/* Load/store instructions. */
|
|
203
|
+
MIPSI_LW = 0x8c000000,
|
|
204
|
+
MIPSI_SW = 0xac000000,
|
|
205
|
+
MIPSI_LB = 0x80000000,
|
|
206
|
+
MIPSI_SB = 0xa0000000,
|
|
207
|
+
MIPSI_LH = 0x84000000,
|
|
208
|
+
MIPSI_SH = 0xa4000000,
|
|
209
|
+
MIPSI_LBU = 0x90000000,
|
|
210
|
+
MIPSI_LHU = 0x94000000,
|
|
211
|
+
MIPSI_LWC1 = 0xc4000000,
|
|
212
|
+
MIPSI_SWC1 = 0xe4000000,
|
|
213
|
+
MIPSI_LDC1 = 0xd4000000,
|
|
214
|
+
MIPSI_SDC1 = 0xf4000000,
|
|
215
|
+
|
|
216
|
+
/* FP instructions. */
|
|
217
|
+
MIPSI_MOV_S = 0x46000006,
|
|
218
|
+
MIPSI_MOV_D = 0x46200006,
|
|
219
|
+
MIPSI_MOVT_D = 0x46210011,
|
|
220
|
+
MIPSI_MOVF_D = 0x46200011,
|
|
221
|
+
|
|
222
|
+
MIPSI_ABS_D = 0x46200005,
|
|
223
|
+
MIPSI_NEG_D = 0x46200007,
|
|
224
|
+
|
|
225
|
+
MIPSI_ADD_D = 0x46200000,
|
|
226
|
+
MIPSI_SUB_D = 0x46200001,
|
|
227
|
+
MIPSI_MUL_D = 0x46200002,
|
|
228
|
+
MIPSI_DIV_D = 0x46200003,
|
|
229
|
+
MIPSI_SQRT_D = 0x46200004,
|
|
230
|
+
|
|
231
|
+
MIPSI_ADD_S = 0x46000000,
|
|
232
|
+
MIPSI_SUB_S = 0x46000001,
|
|
233
|
+
|
|
234
|
+
MIPSI_CVT_D_S = 0x46000021,
|
|
235
|
+
MIPSI_CVT_W_S = 0x46000024,
|
|
236
|
+
MIPSI_CVT_S_D = 0x46200020,
|
|
237
|
+
MIPSI_CVT_W_D = 0x46200024,
|
|
238
|
+
MIPSI_CVT_S_W = 0x46800020,
|
|
239
|
+
MIPSI_CVT_D_W = 0x46800021,
|
|
240
|
+
|
|
241
|
+
MIPSI_TRUNC_W_S = 0x4600000d,
|
|
242
|
+
MIPSI_TRUNC_W_D = 0x4620000d,
|
|
243
|
+
MIPSI_FLOOR_W_S = 0x4600000f,
|
|
244
|
+
MIPSI_FLOOR_W_D = 0x4620000f,
|
|
245
|
+
|
|
246
|
+
MIPSI_MFC1 = 0x44000000,
|
|
247
|
+
MIPSI_MTC1 = 0x44800000,
|
|
248
|
+
|
|
249
|
+
MIPSI_BC1F = 0x45000000,
|
|
250
|
+
MIPSI_BC1T = 0x45010000,
|
|
251
|
+
|
|
252
|
+
MIPSI_C_EQ_D = 0x46200032,
|
|
253
|
+
MIPSI_C_OLT_D = 0x46200034,
|
|
254
|
+
MIPSI_C_ULT_D = 0x46200035,
|
|
255
|
+
MIPSI_C_OLE_D = 0x46200036,
|
|
256
|
+
MIPSI_C_ULE_D = 0x46200037,
|
|
257
|
+
|
|
258
|
+
} MIPSIns;
|
|
259
|
+
|
|
260
|
+
#endif
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** Definitions for PPC CPUs.
|
|
3
|
+
** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#ifndef _LJ_TARGET_PPC_H
|
|
7
|
+
#define _LJ_TARGET_PPC_H
|
|
8
|
+
|
|
9
|
+
/* -- Registers IDs ------------------------------------------------------- */
|
|
10
|
+
|
|
11
|
+
#define GPRDEF(_) \
|
|
12
|
+
_(R0) _(SP) _(SYS1) _(R3) _(R4) _(R5) _(R6) _(R7) \
|
|
13
|
+
_(R8) _(R9) _(R10) _(R11) _(R12) _(SYS2) _(R14) _(R15) \
|
|
14
|
+
_(R16) _(R17) _(R18) _(R19) _(R20) _(R21) _(R22) _(R23) \
|
|
15
|
+
_(R24) _(R25) _(R26) _(R27) _(R28) _(R29) _(R30) _(R31)
|
|
16
|
+
#define FPRDEF(_) \
|
|
17
|
+
_(F0) _(F1) _(F2) _(F3) _(F4) _(F5) _(F6) _(F7) \
|
|
18
|
+
_(F8) _(F9) _(F10) _(F11) _(F12) _(F13) _(F14) _(F15) \
|
|
19
|
+
_(F16) _(F17) _(F18) _(F19) _(F20) _(F21) _(F22) _(F23) \
|
|
20
|
+
_(F24) _(F25) _(F26) _(F27) _(F28) _(F29) _(F30) _(F31)
|
|
21
|
+
#define VRIDDEF(_)
|
|
22
|
+
|
|
23
|
+
#define RIDENUM(name) RID_##name,
|
|
24
|
+
|
|
25
|
+
enum {
|
|
26
|
+
GPRDEF(RIDENUM) /* General-purpose registers (GPRs). */
|
|
27
|
+
FPRDEF(RIDENUM) /* Floating-point registers (FPRs). */
|
|
28
|
+
RID_MAX,
|
|
29
|
+
RID_TMP = RID_R0,
|
|
30
|
+
|
|
31
|
+
/* Calling conventions. */
|
|
32
|
+
RID_RET = RID_R3,
|
|
33
|
+
RID_RETHI = RID_R3,
|
|
34
|
+
RID_RETLO = RID_R4,
|
|
35
|
+
RID_FPRET = RID_F1,
|
|
36
|
+
|
|
37
|
+
/* These definitions must match with the *.dasc file(s): */
|
|
38
|
+
RID_BASE = RID_R14, /* Interpreter BASE. */
|
|
39
|
+
RID_LPC = RID_R16, /* Interpreter PC. */
|
|
40
|
+
RID_DISPATCH = RID_R17, /* Interpreter DISPATCH table. */
|
|
41
|
+
RID_LREG = RID_R18, /* Interpreter L. */
|
|
42
|
+
RID_JGL = RID_R31, /* On-trace: global_State + 32768. */
|
|
43
|
+
|
|
44
|
+
/* Register ranges [min, max) and number of registers. */
|
|
45
|
+
RID_MIN_GPR = RID_R0,
|
|
46
|
+
RID_MAX_GPR = RID_R31+1,
|
|
47
|
+
RID_MIN_FPR = RID_F0,
|
|
48
|
+
RID_MAX_FPR = RID_F31+1,
|
|
49
|
+
RID_NUM_GPR = RID_MAX_GPR - RID_MIN_GPR,
|
|
50
|
+
RID_NUM_FPR = RID_MAX_FPR - RID_MIN_FPR
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
#define RID_NUM_KREF RID_NUM_GPR
|
|
54
|
+
#define RID_MIN_KREF RID_R0
|
|
55
|
+
|
|
56
|
+
/* -- Register sets ------------------------------------------------------- */
|
|
57
|
+
|
|
58
|
+
/* Make use of all registers, except TMP, SP, SYS1, SYS2 and JGL. */
|
|
59
|
+
#define RSET_FIXED \
|
|
60
|
+
(RID2RSET(RID_TMP)|RID2RSET(RID_SP)|RID2RSET(RID_SYS1)|\
|
|
61
|
+
RID2RSET(RID_SYS2)|RID2RSET(RID_JGL))
|
|
62
|
+
#define RSET_GPR (RSET_RANGE(RID_MIN_GPR, RID_MAX_GPR) - RSET_FIXED)
|
|
63
|
+
#define RSET_FPR RSET_RANGE(RID_MIN_FPR, RID_MAX_FPR)
|
|
64
|
+
#define RSET_ALL (RSET_GPR|RSET_FPR)
|
|
65
|
+
#define RSET_INIT RSET_ALL
|
|
66
|
+
|
|
67
|
+
#define RSET_SCRATCH_GPR (RSET_RANGE(RID_R3, RID_R12+1))
|
|
68
|
+
#define RSET_SCRATCH_FPR (RSET_RANGE(RID_F0, RID_F13+1))
|
|
69
|
+
#define RSET_SCRATCH (RSET_SCRATCH_GPR|RSET_SCRATCH_FPR)
|
|
70
|
+
#define REGARG_FIRSTGPR RID_R3
|
|
71
|
+
#define REGARG_LASTGPR RID_R10
|
|
72
|
+
#define REGARG_NUMGPR 8
|
|
73
|
+
#define REGARG_FIRSTFPR RID_F1
|
|
74
|
+
#define REGARG_LASTFPR RID_F8
|
|
75
|
+
#define REGARG_NUMFPR 8
|
|
76
|
+
|
|
77
|
+
/* -- Spill slots --------------------------------------------------------- */
|
|
78
|
+
|
|
79
|
+
/* Spill slots are 32 bit wide. An even/odd pair is used for FPRs.
|
|
80
|
+
**
|
|
81
|
+
** SPS_FIXED: Available fixed spill slots in interpreter frame.
|
|
82
|
+
** This definition must match with the *.dasc file(s).
|
|
83
|
+
**
|
|
84
|
+
** SPS_FIRST: First spill slot for general use.
|
|
85
|
+
** [sp+12] tmplo word \
|
|
86
|
+
** [sp+ 8] tmphi word / tmp dword, parameter area for callee
|
|
87
|
+
** [sp+ 4] tmpw, LR of callee
|
|
88
|
+
** [sp+ 0] stack chain
|
|
89
|
+
*/
|
|
90
|
+
#define SPS_FIXED 7
|
|
91
|
+
#define SPS_FIRST 4
|
|
92
|
+
|
|
93
|
+
/* Stack offsets for temporary slots. Used for FP<->int conversions etc. */
|
|
94
|
+
#define SPOFS_TMPW 4
|
|
95
|
+
#define SPOFS_TMP 8
|
|
96
|
+
#define SPOFS_TMPHI 8
|
|
97
|
+
#define SPOFS_TMPLO 12
|
|
98
|
+
|
|
99
|
+
#define sps_scale(slot) (4 * (int32_t)(slot))
|
|
100
|
+
#define sps_align(slot) (((slot) - SPS_FIXED + 3) & ~3)
|
|
101
|
+
|
|
102
|
+
/* -- Exit state ---------------------------------------------------------- */
|
|
103
|
+
|
|
104
|
+
/* This definition must match with the *.dasc file(s). */
|
|
105
|
+
typedef struct {
|
|
106
|
+
lua_Number fpr[RID_NUM_FPR]; /* Floating-point registers. */
|
|
107
|
+
intptr_t gpr[RID_NUM_GPR]; /* General-purpose registers. */
|
|
108
|
+
int32_t spill[256]; /* Spill slots. */
|
|
109
|
+
} ExitState;
|
|
110
|
+
|
|
111
|
+
/* Highest exit + 1 indicates stack check. */
|
|
112
|
+
#define EXITSTATE_CHECKEXIT 1
|
|
113
|
+
|
|
114
|
+
/* Return the address of a per-trace exit stub. */
|
|
115
|
+
static LJ_AINLINE uint32_t *exitstub_trace_addr_(uint32_t *p, uint32_t exitno)
|
|
116
|
+
{
|
|
117
|
+
while (*p == 0x60000000) p++; /* Skip PPCI_NOP. */
|
|
118
|
+
return p + 3 + exitno;
|
|
119
|
+
}
|
|
120
|
+
/* Avoid dependence on lj_jit.h if only including lj_target.h. */
|
|
121
|
+
#define exitstub_trace_addr(T, exitno) \
|
|
122
|
+
exitstub_trace_addr_((MCode *)((char *)(T)->mcode + (T)->szmcode), (exitno))
|
|
123
|
+
|
|
124
|
+
/* -- Instructions -------------------------------------------------------- */
|
|
125
|
+
|
|
126
|
+
/* Instruction fields. */
|
|
127
|
+
#define PPCF_CC(cc) ((((cc) & 3) << 16) | (((cc) & 4) << 22))
|
|
128
|
+
#define PPCF_T(r) ((r) << 21)
|
|
129
|
+
#define PPCF_A(r) ((r) << 16)
|
|
130
|
+
#define PPCF_B(r) ((r) << 11)
|
|
131
|
+
#define PPCF_C(r) ((r) << 6)
|
|
132
|
+
#define PPCF_MB(n) ((n) << 6)
|
|
133
|
+
#define PPCF_ME(n) ((n) << 1)
|
|
134
|
+
#define PPCF_Y 0x00200000
|
|
135
|
+
#define PPCF_DOT 0x00000001
|
|
136
|
+
|
|
137
|
+
typedef enum PPCIns {
|
|
138
|
+
/* Integer instructions. */
|
|
139
|
+
PPCI_MR = 0x7c000378,
|
|
140
|
+
PPCI_NOP = 0x60000000,
|
|
141
|
+
|
|
142
|
+
PPCI_LI = 0x38000000,
|
|
143
|
+
PPCI_LIS = 0x3c000000,
|
|
144
|
+
|
|
145
|
+
PPCI_ADD = 0x7c000214,
|
|
146
|
+
PPCI_ADDC = 0x7c000014,
|
|
147
|
+
PPCI_ADDO = 0x7c000614,
|
|
148
|
+
PPCI_ADDE = 0x7c000114,
|
|
149
|
+
PPCI_ADDZE = 0x7c000194,
|
|
150
|
+
PPCI_ADDME = 0x7c0001d4,
|
|
151
|
+
PPCI_ADDI = 0x38000000,
|
|
152
|
+
PPCI_ADDIS = 0x3c000000,
|
|
153
|
+
PPCI_ADDIC = 0x30000000,
|
|
154
|
+
PPCI_ADDICDOT = 0x34000000,
|
|
155
|
+
|
|
156
|
+
PPCI_SUBF = 0x7c000050,
|
|
157
|
+
PPCI_SUBFC = 0x7c000010,
|
|
158
|
+
PPCI_SUBFO = 0x7c000450,
|
|
159
|
+
PPCI_SUBFE = 0x7c000110,
|
|
160
|
+
PPCI_SUBFZE = 0x7c000190,
|
|
161
|
+
PPCI_SUBFME = 0x7c0001d0,
|
|
162
|
+
PPCI_SUBFIC = 0x20000000,
|
|
163
|
+
|
|
164
|
+
PPCI_NEG = 0x7c0000d0,
|
|
165
|
+
|
|
166
|
+
PPCI_AND = 0x7c000038,
|
|
167
|
+
PPCI_ANDC = 0x7c000078,
|
|
168
|
+
PPCI_NAND = 0x7c0003b8,
|
|
169
|
+
PPCI_ANDIDOT = 0x70000000,
|
|
170
|
+
PPCI_ANDISDOT = 0x74000000,
|
|
171
|
+
|
|
172
|
+
PPCI_OR = 0x7c000378,
|
|
173
|
+
PPCI_NOR = 0x7c0000f8,
|
|
174
|
+
PPCI_ORI = 0x60000000,
|
|
175
|
+
PPCI_ORIS = 0x64000000,
|
|
176
|
+
|
|
177
|
+
PPCI_XOR = 0x7c000278,
|
|
178
|
+
PPCI_EQV = 0x7c000238,
|
|
179
|
+
PPCI_XORI = 0x68000000,
|
|
180
|
+
PPCI_XORIS = 0x6c000000,
|
|
181
|
+
|
|
182
|
+
PPCI_CMPW = 0x7c000000,
|
|
183
|
+
PPCI_CMPLW = 0x7c000040,
|
|
184
|
+
PPCI_CMPWI = 0x2c000000,
|
|
185
|
+
PPCI_CMPLWI = 0x28000000,
|
|
186
|
+
|
|
187
|
+
PPCI_MULLW = 0x7c0001d6,
|
|
188
|
+
PPCI_MULLI = 0x1c000000,
|
|
189
|
+
PPCI_MULLWO = 0x7c0005d6,
|
|
190
|
+
|
|
191
|
+
PPCI_EXTSB = 0x7c000774,
|
|
192
|
+
PPCI_EXTSH = 0x7c000734,
|
|
193
|
+
|
|
194
|
+
PPCI_SLW = 0x7c000030,
|
|
195
|
+
PPCI_SRW = 0x7c000430,
|
|
196
|
+
PPCI_SRAW = 0x7c000630,
|
|
197
|
+
PPCI_SRAWI = 0x7c000670,
|
|
198
|
+
|
|
199
|
+
PPCI_RLWNM = 0x5c000000,
|
|
200
|
+
PPCI_RLWINM = 0x54000000,
|
|
201
|
+
PPCI_RLWIMI = 0x50000000,
|
|
202
|
+
|
|
203
|
+
PPCI_B = 0x48000000,
|
|
204
|
+
PPCI_BL = 0x48000001,
|
|
205
|
+
PPCI_BC = 0x40800000,
|
|
206
|
+
PPCI_BCL = 0x40800001,
|
|
207
|
+
PPCI_BCTR = 0x4e800420,
|
|
208
|
+
PPCI_BCTRL = 0x4e800421,
|
|
209
|
+
|
|
210
|
+
PPCI_CRANDC = 0x4c000102,
|
|
211
|
+
PPCI_CRXOR = 0x4c000182,
|
|
212
|
+
PPCI_CRAND = 0x4c000202,
|
|
213
|
+
PPCI_CREQV = 0x4c000242,
|
|
214
|
+
PPCI_CRORC = 0x4c000342,
|
|
215
|
+
PPCI_CROR = 0x4c000382,
|
|
216
|
+
|
|
217
|
+
PPCI_MFLR = 0x7c0802a6,
|
|
218
|
+
PPCI_MTCTR = 0x7c0903a6,
|
|
219
|
+
|
|
220
|
+
PPCI_MCRXR = 0x7c000400,
|
|
221
|
+
|
|
222
|
+
/* Load/store instructions. */
|
|
223
|
+
PPCI_LWZ = 0x80000000,
|
|
224
|
+
PPCI_LBZ = 0x88000000,
|
|
225
|
+
PPCI_STW = 0x90000000,
|
|
226
|
+
PPCI_STB = 0x98000000,
|
|
227
|
+
PPCI_LHZ = 0xa0000000,
|
|
228
|
+
PPCI_LHA = 0xa8000000,
|
|
229
|
+
PPCI_STH = 0xb0000000,
|
|
230
|
+
|
|
231
|
+
PPCI_STWU = 0x94000000,
|
|
232
|
+
|
|
233
|
+
PPCI_LFS = 0xc0000000,
|
|
234
|
+
PPCI_LFD = 0xc8000000,
|
|
235
|
+
PPCI_STFS = 0xd0000000,
|
|
236
|
+
PPCI_STFD = 0xd8000000,
|
|
237
|
+
|
|
238
|
+
PPCI_LWZX = 0x7c00002e,
|
|
239
|
+
PPCI_LBZX = 0x7c0000ae,
|
|
240
|
+
PPCI_STWX = 0x7c00012e,
|
|
241
|
+
PPCI_STBX = 0x7c0001ae,
|
|
242
|
+
PPCI_LHZX = 0x7c00022e,
|
|
243
|
+
PPCI_LHAX = 0x7c0002ae,
|
|
244
|
+
PPCI_STHX = 0x7c00032e,
|
|
245
|
+
|
|
246
|
+
PPCI_LWBRX = 0x7c00042c,
|
|
247
|
+
PPCI_STWBRX = 0x7c00052c,
|
|
248
|
+
|
|
249
|
+
PPCI_LFSX = 0x7c00042e,
|
|
250
|
+
PPCI_LFDX = 0x7c0004ae,
|
|
251
|
+
PPCI_STFSX = 0x7c00052e,
|
|
252
|
+
PPCI_STFDX = 0x7c0005ae,
|
|
253
|
+
|
|
254
|
+
/* FP instructions. */
|
|
255
|
+
PPCI_FMR = 0xfc000090,
|
|
256
|
+
PPCI_FNEG = 0xfc000050,
|
|
257
|
+
PPCI_FABS = 0xfc000210,
|
|
258
|
+
|
|
259
|
+
PPCI_FRSP = 0xfc000018,
|
|
260
|
+
PPCI_FCTIWZ = 0xfc00001e,
|
|
261
|
+
|
|
262
|
+
PPCI_FADD = 0xfc00002a,
|
|
263
|
+
PPCI_FSUB = 0xfc000028,
|
|
264
|
+
PPCI_FMUL = 0xfc000032,
|
|
265
|
+
PPCI_FDIV = 0xfc000024,
|
|
266
|
+
PPCI_FSQRT = 0xfc00002c,
|
|
267
|
+
|
|
268
|
+
PPCI_FMADD = 0xfc00003a,
|
|
269
|
+
PPCI_FMSUB = 0xfc000038,
|
|
270
|
+
PPCI_FNMSUB = 0xfc00003c,
|
|
271
|
+
|
|
272
|
+
PPCI_FCMPU = 0xfc000000,
|
|
273
|
+
PPCI_FSEL = 0xfc00002e,
|
|
274
|
+
} PPCIns;
|
|
275
|
+
|
|
276
|
+
typedef enum PPCCC {
|
|
277
|
+
CC_GE, CC_LE, CC_NE, CC_NS, CC_LT, CC_GT, CC_EQ, CC_SO
|
|
278
|
+
} PPCCC;
|
|
279
|
+
|
|
280
|
+
#endif
|