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.
Files changed (454) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +0 -27
  3. data/ext/immunio/Rakefile +9 -0
  4. data/lib/immunio/plugins/active_record.rb +1 -1
  5. data/lib/immunio/plugins/active_record_relation.rb +1 -1
  6. data/lib/immunio/plugins/environment_reporter.rb +20 -0
  7. data/lib/immunio/rufus_lua_ext/ref.rb +1 -3
  8. data/lib/immunio/version.rb +1 -1
  9. data/lib/immunio/vm.rb +1 -2
  10. data/lua-hooks/Makefile +97 -0
  11. data/lua-hooks/ext/all.c +41 -52
  12. data/lua-hooks/ext/all.o +0 -0
  13. data/lua-hooks/ext/libinjection/libinjection_html5.o +0 -0
  14. data/lua-hooks/ext/libinjection/libinjection_sqli.o +0 -0
  15. data/lua-hooks/ext/libinjection/libinjection_xss.o +0 -0
  16. data/lua-hooks/ext/libinjection/lualib.c +2 -2
  17. data/lua-hooks/ext/lpeg/lpcap.c +2 -2
  18. data/lua-hooks/ext/lpeg/lpcap.o +0 -0
  19. data/lua-hooks/ext/lpeg/lpcode.c +2 -2
  20. data/lua-hooks/ext/lpeg/lpcode.h +1 -1
  21. data/lua-hooks/ext/lpeg/lpcode.o +0 -0
  22. data/lua-hooks/ext/lpeg/lpprint.o +0 -0
  23. data/lua-hooks/ext/lpeg/lptree.c +2 -2
  24. data/lua-hooks/ext/lpeg/lptypes.h +1 -1
  25. data/lua-hooks/ext/lpeg/lpvm.c +2 -2
  26. data/lua-hooks/ext/lpeg/lpvm.o +0 -0
  27. data/lua-hooks/ext/lua-cmsgpack/lua_cmsgpack.c +16 -3
  28. data/lua-hooks/ext/lua-snapshot/snapshot.c +14 -7
  29. data/lua-hooks/ext/luajit/COPYRIGHT +56 -0
  30. data/lua-hooks/ext/luajit/Makefile +159 -0
  31. data/lua-hooks/ext/luajit/README +16 -0
  32. data/lua-hooks/ext/luajit/doc/bluequad-print.css +166 -0
  33. data/lua-hooks/ext/luajit/doc/bluequad.css +325 -0
  34. data/lua-hooks/ext/luajit/doc/changes.html +804 -0
  35. data/lua-hooks/ext/luajit/doc/contact.html +104 -0
  36. data/lua-hooks/ext/luajit/doc/ext_c_api.html +189 -0
  37. data/lua-hooks/ext/luajit/doc/ext_ffi.html +332 -0
  38. data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +570 -0
  39. data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +1261 -0
  40. data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +603 -0
  41. data/lua-hooks/ext/luajit/doc/ext_jit.html +201 -0
  42. data/lua-hooks/ext/luajit/doc/ext_profiler.html +365 -0
  43. data/lua-hooks/ext/luajit/doc/extensions.html +448 -0
  44. data/lua-hooks/ext/luajit/doc/faq.html +186 -0
  45. data/lua-hooks/ext/luajit/doc/img/contact.png +0 -0
  46. data/lua-hooks/ext/luajit/doc/install.html +659 -0
  47. data/lua-hooks/ext/luajit/doc/luajit.html +236 -0
  48. data/lua-hooks/ext/luajit/doc/running.html +309 -0
  49. data/lua-hooks/ext/luajit/doc/status.html +118 -0
  50. data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +456 -0
  51. data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +1125 -0
  52. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +518 -0
  53. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +1166 -0
  54. data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +416 -0
  55. data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +953 -0
  56. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +419 -0
  57. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +1919 -0
  58. data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +83 -0
  59. data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +12 -0
  60. data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +471 -0
  61. data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +1945 -0
  62. data/lua-hooks/ext/luajit/dynasm/dynasm.lua +1094 -0
  63. data/lua-hooks/ext/luajit/etc/luajit.1 +88 -0
  64. data/lua-hooks/ext/luajit/etc/luajit.pc +25 -0
  65. data/lua-hooks/ext/luajit/src/Makefile +697 -0
  66. data/lua-hooks/ext/luajit/src/Makefile.dep +244 -0
  67. data/lua-hooks/ext/luajit/src/host/README +4 -0
  68. data/lua-hooks/ext/luajit/src/host/buildvm +0 -0
  69. data/lua-hooks/ext/luajit/src/host/buildvm.c +518 -0
  70. data/lua-hooks/ext/luajit/src/host/buildvm.h +105 -0
  71. data/lua-hooks/ext/luajit/src/host/buildvm.o +0 -0
  72. data/lua-hooks/ext/luajit/src/host/buildvm_arch.h +7449 -0
  73. data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +345 -0
  74. data/lua-hooks/ext/luajit/src/host/buildvm_asm.o +0 -0
  75. data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +229 -0
  76. data/lua-hooks/ext/luajit/src/host/buildvm_fold.o +0 -0
  77. data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +457 -0
  78. data/lua-hooks/ext/luajit/src/host/buildvm_lib.o +0 -0
  79. data/lua-hooks/ext/luajit/src/host/buildvm_libbc.h +45 -0
  80. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +368 -0
  81. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.o +0 -0
  82. data/lua-hooks/ext/luajit/src/host/genlibbc.lua +197 -0
  83. data/lua-hooks/ext/luajit/src/host/genminilua.lua +428 -0
  84. data/lua-hooks/ext/luajit/src/host/minilua +0 -0
  85. data/lua-hooks/ext/luajit/src/host/minilua.c +7770 -0
  86. data/lua-hooks/ext/luajit/src/host/minilua.o +0 -0
  87. data/lua-hooks/ext/luajit/src/jit/bc.lua +190 -0
  88. data/lua-hooks/ext/luajit/src/jit/bcsave.lua +661 -0
  89. data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +689 -0
  90. data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +428 -0
  91. data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +17 -0
  92. data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +591 -0
  93. data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +17 -0
  94. data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +838 -0
  95. data/lua-hooks/ext/luajit/src/jit/dump.lua +706 -0
  96. data/lua-hooks/ext/luajit/src/jit/p.lua +310 -0
  97. data/lua-hooks/ext/luajit/src/jit/v.lua +170 -0
  98. data/lua-hooks/ext/luajit/src/jit/vmdef.lua +362 -0
  99. data/lua-hooks/ext/luajit/src/jit/zone.lua +45 -0
  100. data/lua-hooks/ext/{lua → luajit/src}/lauxlib.h +10 -17
  101. data/lua-hooks/ext/luajit/src/lib_aux.c +356 -0
  102. data/lua-hooks/ext/luajit/src/lib_aux.o +0 -0
  103. data/lua-hooks/ext/luajit/src/lib_aux_dyn.o +0 -0
  104. data/lua-hooks/ext/luajit/src/lib_base.c +664 -0
  105. data/lua-hooks/ext/luajit/src/lib_base.o +0 -0
  106. data/lua-hooks/ext/luajit/src/lib_base_dyn.o +0 -0
  107. data/lua-hooks/ext/luajit/src/lib_bit.c +180 -0
  108. data/lua-hooks/ext/luajit/src/lib_bit.o +0 -0
  109. data/lua-hooks/ext/luajit/src/lib_bit_dyn.o +0 -0
  110. data/lua-hooks/ext/luajit/src/lib_debug.c +405 -0
  111. data/lua-hooks/ext/luajit/src/lib_debug.o +0 -0
  112. data/lua-hooks/ext/luajit/src/lib_debug_dyn.o +0 -0
  113. data/lua-hooks/ext/luajit/src/lib_ffi.c +872 -0
  114. data/lua-hooks/ext/luajit/src/lib_ffi.o +0 -0
  115. data/lua-hooks/ext/luajit/src/lib_ffi_dyn.o +0 -0
  116. data/lua-hooks/ext/luajit/src/lib_init.c +55 -0
  117. data/lua-hooks/ext/luajit/src/lib_init.o +0 -0
  118. data/lua-hooks/ext/luajit/src/lib_init_dyn.o +0 -0
  119. data/lua-hooks/ext/luajit/src/lib_io.c +541 -0
  120. data/lua-hooks/ext/luajit/src/lib_io.o +0 -0
  121. data/lua-hooks/ext/luajit/src/lib_io_dyn.o +0 -0
  122. data/lua-hooks/ext/luajit/src/lib_jit.c +767 -0
  123. data/lua-hooks/ext/luajit/src/lib_jit.o +0 -0
  124. data/lua-hooks/ext/luajit/src/lib_jit_dyn.o +0 -0
  125. data/lua-hooks/ext/luajit/src/lib_math.c +230 -0
  126. data/lua-hooks/ext/luajit/src/lib_math.o +0 -0
  127. data/lua-hooks/ext/luajit/src/lib_math_dyn.o +0 -0
  128. data/lua-hooks/ext/luajit/src/lib_os.c +292 -0
  129. data/lua-hooks/ext/luajit/src/lib_os.o +0 -0
  130. data/lua-hooks/ext/luajit/src/lib_os_dyn.o +0 -0
  131. data/lua-hooks/ext/luajit/src/lib_package.c +610 -0
  132. data/lua-hooks/ext/luajit/src/lib_package.o +0 -0
  133. data/lua-hooks/ext/luajit/src/lib_package_dyn.o +0 -0
  134. data/lua-hooks/ext/luajit/src/lib_string.c +752 -0
  135. data/lua-hooks/ext/luajit/src/lib_string.o +0 -0
  136. data/lua-hooks/ext/luajit/src/lib_string_dyn.o +0 -0
  137. data/lua-hooks/ext/luajit/src/lib_table.c +307 -0
  138. data/lua-hooks/ext/luajit/src/lib_table.o +0 -0
  139. data/lua-hooks/ext/luajit/src/lib_table_dyn.o +0 -0
  140. data/lua-hooks/ext/luajit/src/libluajit.a +0 -0
  141. data/lua-hooks/ext/luajit/src/libluajit.so +0 -0
  142. data/lua-hooks/ext/luajit/src/lj.supp +26 -0
  143. data/lua-hooks/ext/luajit/src/lj_alloc.c +1398 -0
  144. data/lua-hooks/ext/luajit/src/lj_alloc.h +17 -0
  145. data/lua-hooks/ext/luajit/src/lj_alloc.o +0 -0
  146. data/lua-hooks/ext/luajit/src/lj_alloc_dyn.o +0 -0
  147. data/lua-hooks/ext/luajit/src/lj_api.c +1210 -0
  148. data/lua-hooks/ext/luajit/src/lj_api.o +0 -0
  149. data/lua-hooks/ext/luajit/src/lj_api_dyn.o +0 -0
  150. data/lua-hooks/ext/luajit/src/lj_arch.h +509 -0
  151. data/lua-hooks/ext/luajit/src/lj_asm.c +2278 -0
  152. data/lua-hooks/ext/luajit/src/lj_asm.h +17 -0
  153. data/lua-hooks/ext/luajit/src/lj_asm.o +0 -0
  154. data/lua-hooks/ext/luajit/src/lj_asm_arm.h +2217 -0
  155. data/lua-hooks/ext/luajit/src/lj_asm_dyn.o +0 -0
  156. data/lua-hooks/ext/luajit/src/lj_asm_mips.h +1833 -0
  157. data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +2015 -0
  158. data/lua-hooks/ext/luajit/src/lj_asm_x86.h +2634 -0
  159. data/lua-hooks/ext/luajit/src/lj_bc.c +14 -0
  160. data/lua-hooks/ext/luajit/src/lj_bc.h +265 -0
  161. data/lua-hooks/ext/luajit/src/lj_bc.o +0 -0
  162. data/lua-hooks/ext/luajit/src/lj_bc_dyn.o +0 -0
  163. data/lua-hooks/ext/luajit/src/lj_bcdef.h +220 -0
  164. data/lua-hooks/ext/luajit/src/lj_bcdump.h +68 -0
  165. data/lua-hooks/ext/luajit/src/lj_bcread.c +457 -0
  166. data/lua-hooks/ext/luajit/src/lj_bcread.o +0 -0
  167. data/lua-hooks/ext/luajit/src/lj_bcread_dyn.o +0 -0
  168. data/lua-hooks/ext/luajit/src/lj_bcwrite.c +361 -0
  169. data/lua-hooks/ext/luajit/src/lj_bcwrite.o +0 -0
  170. data/lua-hooks/ext/luajit/src/lj_bcwrite_dyn.o +0 -0
  171. data/lua-hooks/ext/luajit/src/lj_buf.c +234 -0
  172. data/lua-hooks/ext/luajit/src/lj_buf.h +105 -0
  173. data/lua-hooks/ext/luajit/src/lj_buf.o +0 -0
  174. data/lua-hooks/ext/luajit/src/lj_buf_dyn.o +0 -0
  175. data/lua-hooks/ext/luajit/src/lj_carith.c +429 -0
  176. data/lua-hooks/ext/luajit/src/lj_carith.h +37 -0
  177. data/lua-hooks/ext/luajit/src/lj_carith.o +0 -0
  178. data/lua-hooks/ext/luajit/src/lj_carith_dyn.o +0 -0
  179. data/lua-hooks/ext/luajit/src/lj_ccall.c +984 -0
  180. data/lua-hooks/ext/luajit/src/lj_ccall.h +178 -0
  181. data/lua-hooks/ext/luajit/src/lj_ccall.o +0 -0
  182. data/lua-hooks/ext/luajit/src/lj_ccall_dyn.o +0 -0
  183. data/lua-hooks/ext/luajit/src/lj_ccallback.c +712 -0
  184. data/lua-hooks/ext/luajit/src/lj_ccallback.h +25 -0
  185. data/lua-hooks/ext/luajit/src/lj_ccallback.o +0 -0
  186. data/lua-hooks/ext/luajit/src/lj_ccallback_dyn.o +0 -0
  187. data/lua-hooks/ext/luajit/src/lj_cconv.c +752 -0
  188. data/lua-hooks/ext/luajit/src/lj_cconv.h +70 -0
  189. data/lua-hooks/ext/luajit/src/lj_cconv.o +0 -0
  190. data/lua-hooks/ext/luajit/src/lj_cconv_dyn.o +0 -0
  191. data/lua-hooks/ext/luajit/src/lj_cdata.c +288 -0
  192. data/lua-hooks/ext/luajit/src/lj_cdata.h +76 -0
  193. data/lua-hooks/ext/luajit/src/lj_cdata.o +0 -0
  194. data/lua-hooks/ext/luajit/src/lj_cdata_dyn.o +0 -0
  195. data/lua-hooks/ext/luajit/src/lj_char.c +43 -0
  196. data/lua-hooks/ext/luajit/src/lj_char.h +42 -0
  197. data/lua-hooks/ext/luajit/src/lj_char.o +0 -0
  198. data/lua-hooks/ext/luajit/src/lj_char_dyn.o +0 -0
  199. data/lua-hooks/ext/luajit/src/lj_clib.c +418 -0
  200. data/lua-hooks/ext/luajit/src/lj_clib.h +29 -0
  201. data/lua-hooks/ext/luajit/src/lj_clib.o +0 -0
  202. data/lua-hooks/ext/luajit/src/lj_clib_dyn.o +0 -0
  203. data/lua-hooks/ext/luajit/src/lj_cparse.c +1862 -0
  204. data/lua-hooks/ext/luajit/src/lj_cparse.h +65 -0
  205. data/lua-hooks/ext/luajit/src/lj_cparse.o +0 -0
  206. data/lua-hooks/ext/luajit/src/lj_cparse_dyn.o +0 -0
  207. data/lua-hooks/ext/luajit/src/lj_crecord.c +1834 -0
  208. data/lua-hooks/ext/luajit/src/lj_crecord.h +38 -0
  209. data/lua-hooks/ext/luajit/src/lj_crecord.o +0 -0
  210. data/lua-hooks/ext/luajit/src/lj_crecord_dyn.o +0 -0
  211. data/lua-hooks/ext/luajit/src/lj_ctype.c +635 -0
  212. data/lua-hooks/ext/luajit/src/lj_ctype.h +461 -0
  213. data/lua-hooks/ext/luajit/src/lj_ctype.o +0 -0
  214. data/lua-hooks/ext/luajit/src/lj_ctype_dyn.o +0 -0
  215. data/lua-hooks/ext/luajit/src/lj_debug.c +699 -0
  216. data/lua-hooks/ext/luajit/src/lj_debug.h +65 -0
  217. data/lua-hooks/ext/luajit/src/lj_debug.o +0 -0
  218. data/lua-hooks/ext/luajit/src/lj_debug_dyn.o +0 -0
  219. data/lua-hooks/ext/luajit/src/lj_def.h +365 -0
  220. data/lua-hooks/ext/luajit/src/lj_dispatch.c +557 -0
  221. data/lua-hooks/ext/luajit/src/lj_dispatch.h +138 -0
  222. data/lua-hooks/ext/luajit/src/lj_dispatch.o +0 -0
  223. data/lua-hooks/ext/luajit/src/lj_dispatch_dyn.o +0 -0
  224. data/lua-hooks/ext/luajit/src/lj_emit_arm.h +356 -0
  225. data/lua-hooks/ext/luajit/src/lj_emit_mips.h +211 -0
  226. data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +238 -0
  227. data/lua-hooks/ext/luajit/src/lj_emit_x86.h +462 -0
  228. data/lua-hooks/ext/luajit/src/lj_err.c +794 -0
  229. data/lua-hooks/ext/luajit/src/lj_err.h +41 -0
  230. data/lua-hooks/ext/luajit/src/lj_err.o +0 -0
  231. data/lua-hooks/ext/luajit/src/lj_err_dyn.o +0 -0
  232. data/lua-hooks/ext/luajit/src/lj_errmsg.h +190 -0
  233. data/lua-hooks/ext/luajit/src/lj_ff.h +18 -0
  234. data/lua-hooks/ext/luajit/src/lj_ffdef.h +209 -0
  235. data/lua-hooks/ext/luajit/src/lj_ffrecord.c +1247 -0
  236. data/lua-hooks/ext/luajit/src/lj_ffrecord.h +24 -0
  237. data/lua-hooks/ext/luajit/src/lj_ffrecord.o +0 -0
  238. data/lua-hooks/ext/luajit/src/lj_ffrecord_dyn.o +0 -0
  239. data/lua-hooks/ext/luajit/src/lj_folddef.h +1138 -0
  240. data/lua-hooks/ext/luajit/src/lj_frame.h +259 -0
  241. data/lua-hooks/ext/luajit/src/lj_func.c +185 -0
  242. data/lua-hooks/ext/luajit/src/lj_func.h +24 -0
  243. data/lua-hooks/ext/luajit/src/lj_func.o +0 -0
  244. data/lua-hooks/ext/luajit/src/lj_func_dyn.o +0 -0
  245. data/lua-hooks/ext/luajit/src/lj_gc.c +845 -0
  246. data/lua-hooks/ext/luajit/src/lj_gc.h +134 -0
  247. data/lua-hooks/ext/luajit/src/lj_gc.o +0 -0
  248. data/lua-hooks/ext/luajit/src/lj_gc_dyn.o +0 -0
  249. data/lua-hooks/ext/luajit/src/lj_gdbjit.c +787 -0
  250. data/lua-hooks/ext/luajit/src/lj_gdbjit.h +22 -0
  251. data/lua-hooks/ext/luajit/src/lj_gdbjit.o +0 -0
  252. data/lua-hooks/ext/luajit/src/lj_gdbjit_dyn.o +0 -0
  253. data/lua-hooks/ext/luajit/src/lj_ir.c +505 -0
  254. data/lua-hooks/ext/luajit/src/lj_ir.h +577 -0
  255. data/lua-hooks/ext/luajit/src/lj_ir.o +0 -0
  256. data/lua-hooks/ext/luajit/src/lj_ir_dyn.o +0 -0
  257. data/lua-hooks/ext/luajit/src/lj_ircall.h +321 -0
  258. data/lua-hooks/ext/luajit/src/lj_iropt.h +161 -0
  259. data/lua-hooks/ext/luajit/src/lj_jit.h +440 -0
  260. data/lua-hooks/ext/luajit/src/lj_lex.c +482 -0
  261. data/lua-hooks/ext/luajit/src/lj_lex.h +86 -0
  262. data/lua-hooks/ext/luajit/src/lj_lex.o +0 -0
  263. data/lua-hooks/ext/luajit/src/lj_lex_dyn.o +0 -0
  264. data/lua-hooks/ext/luajit/src/lj_lib.c +303 -0
  265. data/lua-hooks/ext/luajit/src/lj_lib.h +115 -0
  266. data/lua-hooks/ext/luajit/src/lj_lib.o +0 -0
  267. data/lua-hooks/ext/luajit/src/lj_lib_dyn.o +0 -0
  268. data/lua-hooks/ext/luajit/src/lj_libdef.h +414 -0
  269. data/lua-hooks/ext/luajit/src/lj_load.c +168 -0
  270. data/lua-hooks/ext/luajit/src/lj_load.o +0 -0
  271. data/lua-hooks/ext/luajit/src/lj_load_dyn.o +0 -0
  272. data/lua-hooks/ext/luajit/src/lj_mcode.c +386 -0
  273. data/lua-hooks/ext/luajit/src/lj_mcode.h +30 -0
  274. data/lua-hooks/ext/luajit/src/lj_mcode.o +0 -0
  275. data/lua-hooks/ext/luajit/src/lj_mcode_dyn.o +0 -0
  276. data/lua-hooks/ext/luajit/src/lj_meta.c +477 -0
  277. data/lua-hooks/ext/luajit/src/lj_meta.h +38 -0
  278. data/lua-hooks/ext/luajit/src/lj_meta.o +0 -0
  279. data/lua-hooks/ext/luajit/src/lj_meta_dyn.o +0 -0
  280. data/lua-hooks/ext/luajit/src/lj_obj.c +50 -0
  281. data/lua-hooks/ext/luajit/src/lj_obj.h +976 -0
  282. data/lua-hooks/ext/luajit/src/lj_obj.o +0 -0
  283. data/lua-hooks/ext/luajit/src/lj_obj_dyn.o +0 -0
  284. data/lua-hooks/ext/luajit/src/lj_opt_dce.c +78 -0
  285. data/lua-hooks/ext/luajit/src/lj_opt_dce.o +0 -0
  286. data/lua-hooks/ext/luajit/src/lj_opt_dce_dyn.o +0 -0
  287. data/lua-hooks/ext/luajit/src/lj_opt_fold.c +2488 -0
  288. data/lua-hooks/ext/luajit/src/lj_opt_fold.o +0 -0
  289. data/lua-hooks/ext/luajit/src/lj_opt_fold_dyn.o +0 -0
  290. data/lua-hooks/ext/luajit/src/lj_opt_loop.c +449 -0
  291. data/lua-hooks/ext/luajit/src/lj_opt_loop.o +0 -0
  292. data/lua-hooks/ext/luajit/src/lj_opt_loop_dyn.o +0 -0
  293. data/lua-hooks/ext/luajit/src/lj_opt_mem.c +935 -0
  294. data/lua-hooks/ext/luajit/src/lj_opt_mem.o +0 -0
  295. data/lua-hooks/ext/luajit/src/lj_opt_mem_dyn.o +0 -0
  296. data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +652 -0
  297. data/lua-hooks/ext/luajit/src/lj_opt_narrow.o +0 -0
  298. data/lua-hooks/ext/luajit/src/lj_opt_narrow_dyn.o +0 -0
  299. data/lua-hooks/ext/luajit/src/lj_opt_sink.c +245 -0
  300. data/lua-hooks/ext/luajit/src/lj_opt_sink.o +0 -0
  301. data/lua-hooks/ext/luajit/src/lj_opt_sink_dyn.o +0 -0
  302. data/lua-hooks/ext/luajit/src/lj_opt_split.c +856 -0
  303. data/lua-hooks/ext/luajit/src/lj_opt_split.o +0 -0
  304. data/lua-hooks/ext/luajit/src/lj_opt_split_dyn.o +0 -0
  305. data/lua-hooks/ext/luajit/src/lj_parse.c +2725 -0
  306. data/lua-hooks/ext/luajit/src/lj_parse.h +18 -0
  307. data/lua-hooks/ext/luajit/src/lj_parse.o +0 -0
  308. data/lua-hooks/ext/luajit/src/lj_parse_dyn.o +0 -0
  309. data/lua-hooks/ext/luajit/src/lj_profile.c +368 -0
  310. data/lua-hooks/ext/luajit/src/lj_profile.h +21 -0
  311. data/lua-hooks/ext/luajit/src/lj_profile.o +0 -0
  312. data/lua-hooks/ext/luajit/src/lj_profile_dyn.o +0 -0
  313. data/lua-hooks/ext/luajit/src/lj_recdef.h +270 -0
  314. data/lua-hooks/ext/luajit/src/lj_record.c +2554 -0
  315. data/lua-hooks/ext/luajit/src/lj_record.h +45 -0
  316. data/lua-hooks/ext/luajit/src/lj_record.o +0 -0
  317. data/lua-hooks/ext/luajit/src/lj_record_dyn.o +0 -0
  318. data/lua-hooks/ext/luajit/src/lj_snap.c +870 -0
  319. data/lua-hooks/ext/luajit/src/lj_snap.h +34 -0
  320. data/lua-hooks/ext/luajit/src/lj_snap.o +0 -0
  321. data/lua-hooks/ext/luajit/src/lj_snap_dyn.o +0 -0
  322. data/lua-hooks/ext/luajit/src/lj_state.c +300 -0
  323. data/lua-hooks/ext/luajit/src/lj_state.h +35 -0
  324. data/lua-hooks/ext/luajit/src/lj_state.o +0 -0
  325. data/lua-hooks/ext/luajit/src/lj_state_dyn.o +0 -0
  326. data/lua-hooks/ext/luajit/src/lj_str.c +197 -0
  327. data/lua-hooks/ext/luajit/src/lj_str.h +27 -0
  328. data/lua-hooks/ext/luajit/src/lj_str.o +0 -0
  329. data/lua-hooks/ext/luajit/src/lj_str_dyn.o +0 -0
  330. data/lua-hooks/ext/luajit/src/lj_strfmt.c +554 -0
  331. data/lua-hooks/ext/luajit/src/lj_strfmt.h +125 -0
  332. data/lua-hooks/ext/luajit/src/lj_strfmt.o +0 -0
  333. data/lua-hooks/ext/luajit/src/lj_strfmt_dyn.o +0 -0
  334. data/lua-hooks/ext/luajit/src/lj_strscan.c +547 -0
  335. data/lua-hooks/ext/luajit/src/lj_strscan.h +39 -0
  336. data/lua-hooks/ext/luajit/src/lj_strscan.o +0 -0
  337. data/lua-hooks/ext/luajit/src/lj_strscan_dyn.o +0 -0
  338. data/lua-hooks/ext/luajit/src/lj_tab.c +666 -0
  339. data/lua-hooks/ext/luajit/src/lj_tab.h +73 -0
  340. data/lua-hooks/ext/luajit/src/lj_tab.o +0 -0
  341. data/lua-hooks/ext/luajit/src/lj_tab_dyn.o +0 -0
  342. data/lua-hooks/ext/luajit/src/lj_target.h +164 -0
  343. data/lua-hooks/ext/luajit/src/lj_target_arm.h +270 -0
  344. data/lua-hooks/ext/luajit/src/lj_target_arm64.h +97 -0
  345. data/lua-hooks/ext/luajit/src/lj_target_mips.h +260 -0
  346. data/lua-hooks/ext/luajit/src/lj_target_ppc.h +280 -0
  347. data/lua-hooks/ext/luajit/src/lj_target_x86.h +345 -0
  348. data/lua-hooks/ext/luajit/src/lj_trace.c +859 -0
  349. data/lua-hooks/ext/luajit/src/lj_trace.h +54 -0
  350. data/lua-hooks/ext/luajit/src/lj_trace.o +0 -0
  351. data/lua-hooks/ext/luajit/src/lj_trace_dyn.o +0 -0
  352. data/lua-hooks/ext/luajit/src/lj_traceerr.h +63 -0
  353. data/lua-hooks/ext/luajit/src/lj_udata.c +34 -0
  354. data/lua-hooks/ext/luajit/src/lj_udata.h +14 -0
  355. data/lua-hooks/ext/luajit/src/lj_udata.o +0 -0
  356. data/lua-hooks/ext/luajit/src/lj_udata_dyn.o +0 -0
  357. data/lua-hooks/ext/luajit/src/lj_vm.S +2730 -0
  358. data/lua-hooks/ext/luajit/src/lj_vm.h +114 -0
  359. data/lua-hooks/ext/luajit/src/lj_vm.o +0 -0
  360. data/lua-hooks/ext/luajit/src/lj_vm_dyn.o +0 -0
  361. data/lua-hooks/ext/luajit/src/lj_vmevent.c +58 -0
  362. data/lua-hooks/ext/luajit/src/lj_vmevent.h +59 -0
  363. data/lua-hooks/ext/luajit/src/lj_vmevent.o +0 -0
  364. data/lua-hooks/ext/luajit/src/lj_vmevent_dyn.o +0 -0
  365. data/lua-hooks/ext/luajit/src/lj_vmmath.c +152 -0
  366. data/lua-hooks/ext/luajit/src/lj_vmmath.o +0 -0
  367. data/lua-hooks/ext/luajit/src/lj_vmmath_dyn.o +0 -0
  368. data/lua-hooks/ext/luajit/src/ljamalg.c +96 -0
  369. data/lua-hooks/ext/{lua → luajit/src}/lua.h +12 -7
  370. data/lua-hooks/ext/luajit/src/lua.hpp +9 -0
  371. data/lua-hooks/ext/luajit/src/luaconf.h +156 -0
  372. data/lua-hooks/ext/luajit/src/luajit +0 -0
  373. data/lua-hooks/ext/luajit/src/luajit.c +570 -0
  374. data/lua-hooks/ext/luajit/src/luajit.h +79 -0
  375. data/lua-hooks/ext/luajit/src/luajit.o +0 -0
  376. data/lua-hooks/ext/luajit/src/lualib.h +43 -0
  377. data/lua-hooks/ext/luajit/src/msvcbuild.bat +114 -0
  378. data/lua-hooks/ext/luajit/src/ps4build.bat +103 -0
  379. data/lua-hooks/ext/luajit/src/psvitabuild.bat +93 -0
  380. data/lua-hooks/ext/luajit/src/vm_arm.dasc +4585 -0
  381. data/lua-hooks/ext/luajit/src/vm_arm64.dasc +3764 -0
  382. data/lua-hooks/ext/luajit/src/vm_mips.dasc +4355 -0
  383. data/lua-hooks/ext/luajit/src/vm_ppc.dasc +5252 -0
  384. data/lua-hooks/ext/luajit/src/vm_x64.dasc +4902 -0
  385. data/lua-hooks/ext/luajit/src/vm_x86.dasc +5710 -0
  386. data/lua-hooks/ext/luajit/src/xb1build.bat +101 -0
  387. data/lua-hooks/ext/luajit/src/xedkbuild.bat +92 -0
  388. data/lua-hooks/ext/luautf8/lutf8lib.c +3 -3
  389. data/lua-hooks/lib/boot.lua +37 -2
  390. metadata +372 -69
  391. data/lua-hooks/ext/bitop/README +0 -22
  392. data/lua-hooks/ext/bitop/bit.c +0 -189
  393. data/lua-hooks/ext/extconf.rb +0 -38
  394. data/lua-hooks/ext/lua/COPYRIGHT +0 -34
  395. data/lua-hooks/ext/lua/lapi.c +0 -1087
  396. data/lua-hooks/ext/lua/lapi.h +0 -16
  397. data/lua-hooks/ext/lua/lauxlib.c +0 -652
  398. data/lua-hooks/ext/lua/lbaselib.c +0 -659
  399. data/lua-hooks/ext/lua/lcode.c +0 -831
  400. data/lua-hooks/ext/lua/lcode.h +0 -76
  401. data/lua-hooks/ext/lua/ldblib.c +0 -398
  402. data/lua-hooks/ext/lua/ldebug.c +0 -638
  403. data/lua-hooks/ext/lua/ldebug.h +0 -33
  404. data/lua-hooks/ext/lua/ldo.c +0 -519
  405. data/lua-hooks/ext/lua/ldo.h +0 -57
  406. data/lua-hooks/ext/lua/ldump.c +0 -164
  407. data/lua-hooks/ext/lua/lfunc.c +0 -174
  408. data/lua-hooks/ext/lua/lfunc.h +0 -34
  409. data/lua-hooks/ext/lua/lgc.c +0 -710
  410. data/lua-hooks/ext/lua/lgc.h +0 -110
  411. data/lua-hooks/ext/lua/linit.c +0 -38
  412. data/lua-hooks/ext/lua/liolib.c +0 -556
  413. data/lua-hooks/ext/lua/llex.c +0 -463
  414. data/lua-hooks/ext/lua/llex.h +0 -81
  415. data/lua-hooks/ext/lua/llimits.h +0 -128
  416. data/lua-hooks/ext/lua/lmathlib.c +0 -263
  417. data/lua-hooks/ext/lua/lmem.c +0 -86
  418. data/lua-hooks/ext/lua/lmem.h +0 -49
  419. data/lua-hooks/ext/lua/loadlib.c +0 -705
  420. data/lua-hooks/ext/lua/loadlib_rel.c +0 -760
  421. data/lua-hooks/ext/lua/lobject.c +0 -214
  422. data/lua-hooks/ext/lua/lobject.h +0 -381
  423. data/lua-hooks/ext/lua/lopcodes.c +0 -102
  424. data/lua-hooks/ext/lua/lopcodes.h +0 -268
  425. data/lua-hooks/ext/lua/loslib.c +0 -243
  426. data/lua-hooks/ext/lua/lparser.c +0 -1339
  427. data/lua-hooks/ext/lua/lparser.h +0 -82
  428. data/lua-hooks/ext/lua/lstate.c +0 -214
  429. data/lua-hooks/ext/lua/lstate.h +0 -169
  430. data/lua-hooks/ext/lua/lstring.c +0 -111
  431. data/lua-hooks/ext/lua/lstring.h +0 -31
  432. data/lua-hooks/ext/lua/lstrlib.c +0 -871
  433. data/lua-hooks/ext/lua/ltable.c +0 -588
  434. data/lua-hooks/ext/lua/ltable.h +0 -40
  435. data/lua-hooks/ext/lua/ltablib.c +0 -287
  436. data/lua-hooks/ext/lua/ltm.c +0 -75
  437. data/lua-hooks/ext/lua/ltm.h +0 -54
  438. data/lua-hooks/ext/lua/lua.c +0 -392
  439. data/lua-hooks/ext/lua/lua.def +0 -131
  440. data/lua-hooks/ext/lua/lua.rc +0 -28
  441. data/lua-hooks/ext/lua/lua_dll.rc +0 -26
  442. data/lua-hooks/ext/lua/luac.c +0 -200
  443. data/lua-hooks/ext/lua/luac.rc +0 -1
  444. data/lua-hooks/ext/lua/luaconf.h +0 -763
  445. data/lua-hooks/ext/lua/luaconf.h.in +0 -724
  446. data/lua-hooks/ext/lua/luaconf.h.orig +0 -763
  447. data/lua-hooks/ext/lua/lualib.h +0 -53
  448. data/lua-hooks/ext/lua/lundump.c +0 -227
  449. data/lua-hooks/ext/lua/lundump.h +0 -36
  450. data/lua-hooks/ext/lua/lvm.c +0 -767
  451. data/lua-hooks/ext/lua/lvm.h +0 -36
  452. data/lua-hooks/ext/lua/lzio.c +0 -82
  453. data/lua-hooks/ext/lua/lzio.h +0 -67
  454. 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