debase-ruby_core_source 0.10.14 → 0.10.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (303) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/debase-ruby_core_source.gemspec +2 -2
  4. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/addr2line.h +1 -1
  5. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/build_assert/build_assert.h +40 -0
  6. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/check_type/check_type.h +63 -0
  7. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/container_of/container_of.h +142 -0
  8. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/list/list.h +773 -0
  9. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ccan/str/str.h +16 -0
  10. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/constant.h +51 -0
  11. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +109 -0
  12. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/dln.h +10 -9
  13. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/encindex.h +69 -0
  14. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +334 -0
  15. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/gc.h +27 -10
  16. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id.h +250 -0
  17. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/id_table.h +31 -0
  18. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns.inc +217 -0
  19. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +1570 -0
  20. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/internal.h +2036 -0
  21. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/iseq.h +308 -0
  22. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/known_errors.inc +16 -1
  23. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/method.h +218 -0
  24. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node.h +115 -79
  25. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/node_name.inc +12 -22
  26. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +1601 -0
  27. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +103 -0
  28. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/optunifs.inc +28 -83
  29. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/parse.h +74 -60
  30. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +43 -0
  31. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/regenc.h +254 -0
  32. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regint.h +299 -211
  33. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/regparse.h +45 -37
  34. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/revision.h +1 -0
  35. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/ruby_assert.h +54 -0
  36. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/ruby_atomic.h +84 -26
  37. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/siphash.h +1 -1
  38. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/symbol.h +108 -0
  39. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_pthread.h +14 -11
  40. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/thread_win32.h +2 -6
  41. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/timev.h +42 -0
  42. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/transcode_data.h +34 -12
  43. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/version.h +73 -0
  44. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm.inc +3667 -0
  45. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +213 -0
  46. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_core.h +1768 -0
  47. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550/debug.h → ruby-2.5.4-p155/vm_debug.h} +4 -8
  48. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_exec.h +38 -30
  49. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +255 -0
  50. data/lib/debase/ruby_core_source/{ruby-1.9.3-p550 → ruby-2.5.4-p155}/vm_opts.h +14 -9
  51. data/lib/debase/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +214 -0
  52. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/addr2line.h +20 -0
  53. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/builtin.h +84 -0
  54. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/build_assert/build_assert.h +40 -0
  55. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/check_type/check_type.h +63 -0
  56. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/container_of/container_of.h +142 -0
  57. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/list/list.h +789 -0
  58. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ccan/str/str.h +17 -0
  59. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/constant.h +55 -0
  60. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/darray.h +226 -0
  61. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/debug_counter.h +469 -0
  62. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/dln.h +31 -0
  63. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/encindex.h +70 -0
  64. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/eval_intern.h +339 -0
  65. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/gc.h +143 -0
  66. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/hrtime.h +216 -0
  67. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id.h +295 -0
  68. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/id_table.h +36 -0
  69. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns.inc +249 -0
  70. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/insns_info.inc +9064 -0
  71. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/array.h +113 -0
  72. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bignum.h +246 -0
  73. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/bits.h +565 -0
  74. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/class.h +211 -0
  75. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cmdlineopt.h +61 -0
  76. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compar.h +49 -0
  77. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compile.h +35 -0
  78. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/compilers.h +107 -0
  79. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/complex.h +29 -0
  80. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/cont.h +24 -0
  81. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/dir.h +16 -0
  82. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enc.h +19 -0
  83. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/encoding.h +30 -0
  84. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enum.h +18 -0
  85. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/enumerator.h +21 -0
  86. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/error.h +191 -0
  87. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/eval.h +32 -0
  88. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/file.h +38 -0
  89. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/fixnum.h +184 -0
  90. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/gc.h +188 -0
  91. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/hash.h +243 -0
  92. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/imemo.h +243 -0
  93. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/inits.h +50 -0
  94. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/io.h +38 -0
  95. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/load.h +18 -0
  96. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/loadpath.h +16 -0
  97. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/math.h +23 -0
  98. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/missing.h +18 -0
  99. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/numeric.h +271 -0
  100. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/object.h +83 -0
  101. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/parse.h +23 -0
  102. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/proc.h +32 -0
  103. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/process.h +137 -0
  104. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/ractor.h +6 -0
  105. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/random.h +16 -0
  106. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/range.h +40 -0
  107. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/rational.h +72 -0
  108. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/re.h +30 -0
  109. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/sanitizers.h +190 -0
  110. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/serial.h +23 -0
  111. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/signal.h +21 -0
  112. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/static_assert.h +16 -0
  113. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/string.h +141 -0
  114. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/struct.h +153 -0
  115. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/symbol.h +41 -0
  116. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/thread.h +53 -0
  117. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/time.h +34 -0
  118. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/transcode.h +20 -0
  119. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/util.h +27 -0
  120. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/variable.h +83 -0
  121. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/vm.h +134 -0
  122. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal/warnings.h +16 -0
  123. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/internal.h +109 -0
  124. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/iseq.h +325 -0
  125. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/known_errors.inc +791 -0
  126. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/method.h +254 -0
  127. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit.h +231 -0
  128. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/mjit_compile.inc +8333 -0
  129. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node.h +510 -0
  130. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/node_name.inc +208 -0
  131. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/opt_sc.inc +109 -0
  132. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optinsn.inc +128 -0
  133. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/optunifs.inc +43 -0
  134. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/parse.h +214 -0
  135. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/probes_helper.h +44 -0
  136. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ractor_core.h +346 -0
  137. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regenc.h +255 -0
  138. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regint.h +957 -0
  139. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/regparse.h +370 -0
  140. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/revision.h +2 -0
  141. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_assert.h +14 -0
  142. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/ruby_atomic.h +23 -0
  143. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/siphash.h +48 -0
  144. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/symbol.h +119 -0
  145. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_none.h +17 -0
  146. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_pthread.h +115 -0
  147. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/thread_win32.h +61 -0
  148. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/timev.h +57 -0
  149. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transcode_data.h +138 -0
  150. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/transient_heap.h +65 -0
  151. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/variable.h +21 -0
  152. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/version.h +91 -0
  153. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm.inc +5481 -0
  154. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_call_iseq_optimized.inc +244 -0
  155. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_callinfo.h +502 -0
  156. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_core.h +2089 -0
  157. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_debug.h +113 -0
  158. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_exec.h +197 -0
  159. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_insnhelper.h +262 -0
  160. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_opts.h +73 -0
  161. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vm_sync.h +137 -0
  162. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/vmtc.inc +243 -0
  163. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit.h +73 -0
  164. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_asm.h +408 -0
  165. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_codegen.h +23 -0
  166. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_core.h +307 -0
  167. data/lib/debase/ruby_core_source/ruby-3.2.0-preview1/yjit_iface.h +38 -0
  168. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/addr2line.h +20 -0
  169. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/builtin.h +121 -0
  170. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/build_assert/build_assert.h +40 -0
  171. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/check_type/check_type.h +63 -0
  172. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/container_of/container_of.h +142 -0
  173. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/list/list.h +789 -0
  174. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ccan/str/str.h +17 -0
  175. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/constant.h +55 -0
  176. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/darray.h +179 -0
  177. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/debug_counter.h +469 -0
  178. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/dln.h +31 -0
  179. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/encindex.h +70 -0
  180. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/eval_intern.h +339 -0
  181. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/gc.h +143 -0
  182. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/hrtime.h +226 -0
  183. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/id.h +295 -0
  184. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/id_table.h +36 -0
  185. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/insns.inc +249 -0
  186. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/insns_info.inc +9061 -0
  187. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/array.h +162 -0
  188. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/bignum.h +246 -0
  189. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/bits.h +565 -0
  190. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/class.h +212 -0
  191. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/cmdlineopt.h +58 -0
  192. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/compar.h +49 -0
  193. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/compile.h +35 -0
  194. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/compilers.h +107 -0
  195. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/complex.h +29 -0
  196. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/cont.h +26 -0
  197. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/dir.h +16 -0
  198. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/enc.h +19 -0
  199. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/encoding.h +30 -0
  200. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/enum.h +18 -0
  201. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/enumerator.h +21 -0
  202. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/error.h +191 -0
  203. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/eval.h +32 -0
  204. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/file.h +38 -0
  205. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/fixnum.h +184 -0
  206. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/gc.h +188 -0
  207. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/hash.h +243 -0
  208. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/imemo.h +242 -0
  209. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/inits.h +50 -0
  210. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/io.h +38 -0
  211. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/load.h +18 -0
  212. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/loadpath.h +16 -0
  213. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/math.h +23 -0
  214. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/missing.h +18 -0
  215. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/numeric.h +271 -0
  216. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/object.h +83 -0
  217. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/parse.h +23 -0
  218. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/proc.h +32 -0
  219. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/process.h +137 -0
  220. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/ractor.h +6 -0
  221. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/random.h +16 -0
  222. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/range.h +40 -0
  223. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/rational.h +72 -0
  224. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/re.h +30 -0
  225. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/sanitizers.h +190 -0
  226. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/serial.h +23 -0
  227. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/signal.h +21 -0
  228. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/static_assert.h +16 -0
  229. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/string.h +146 -0
  230. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/struct.h +153 -0
  231. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/symbol.h +42 -0
  232. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/thread.h +54 -0
  233. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/time.h +34 -0
  234. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/transcode.h +20 -0
  235. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/util.h +27 -0
  236. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/variable.h +83 -0
  237. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/vm.h +134 -0
  238. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal/warnings.h +16 -0
  239. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/internal.h +113 -0
  240. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/iseq.h +328 -0
  241. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/known_errors.inc +791 -0
  242. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/method.h +253 -0
  243. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit.h +136 -0
  244. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit_compile_attr.inc +430 -0
  245. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit_compiler.h +58 -0
  246. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/mjit_unit.h +29 -0
  247. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/node.h +510 -0
  248. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/node_name.inc +208 -0
  249. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/opt_sc.inc +109 -0
  250. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/optinsn.inc +128 -0
  251. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/optunifs.inc +43 -0
  252. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/parse.h +214 -0
  253. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/probes_helper.h +44 -0
  254. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ractor_core.h +341 -0
  255. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/regenc.h +255 -0
  256. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/regint.h +957 -0
  257. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/regparse.h +370 -0
  258. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/revision.h +2 -0
  259. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ruby_assert.h +14 -0
  260. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/ruby_atomic.h +23 -0
  261. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/siphash.h +48 -0
  262. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/symbol.h +119 -0
  263. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/thread_none.h +20 -0
  264. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/thread_pthread.h +132 -0
  265. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/thread_win32.h +63 -0
  266. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/timev.h +57 -0
  267. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/transcode_data.h +138 -0
  268. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/transient_heap.h +65 -0
  269. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/variable.h +21 -0
  270. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/version.h +68 -0
  271. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm.inc +5476 -0
  272. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_call_iseq_optimized.inc +244 -0
  273. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_callinfo.h +522 -0
  274. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_core.h +2130 -0
  275. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_debug.h +122 -0
  276. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_exec.h +197 -0
  277. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_insnhelper.h +269 -0
  278. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_opts.h +73 -0
  279. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vm_sync.h +137 -0
  280. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/vmtc.inc +243 -0
  281. data/lib/debase/ruby_core_source/ruby-3.2.0-preview2/yjit.h +72 -0
  282. data/lib/debase/ruby_core_source/version.rb +1 -1
  283. metadata +284 -44
  284. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/constant.h +0 -34
  285. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/encdb.h +0 -167
  286. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/eval_intern.h +0 -234
  287. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/id.h +0 -177
  288. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns.inc +0 -179
  289. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/insns_info.inc +0 -695
  290. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/internal.h +0 -242
  291. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/iseq.h +0 -126
  292. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/method.h +0 -105
  293. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/opt_sc.inc +0 -670
  294. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/optinsn.inc +0 -30
  295. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/regenc.h +0 -219
  296. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/revision.h +0 -1
  297. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/timev.h +0 -21
  298. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/transdb.h +0 -189
  299. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/version.h +0 -52
  300. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm.inc +0 -3054
  301. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_core.h +0 -763
  302. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vm_insnhelper.h +0 -220
  303. data/lib/debase/ruby_core_source/ruby-1.9.3-p550/vmtc.inc +0 -97
@@ -0,0 +1,430 @@
1
+ static rb_snum_t
2
+ mjit_call_attribute_sp_inc(const int insn, const VALUE *operands)
3
+ {
4
+ switch (insn) {
5
+ case BIN(nop): {
6
+ return attr_sp_inc_nop();
7
+ }
8
+ case BIN(getlocal): {
9
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
10
+ MAYBE_UNUSED(rb_num_t level) = (rb_num_t)operands[1];
11
+ return attr_sp_inc_getlocal(idx, level);
12
+ }
13
+ case BIN(setlocal): {
14
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
15
+ MAYBE_UNUSED(rb_num_t level) = (rb_num_t)operands[1];
16
+ return attr_sp_inc_setlocal(idx, level);
17
+ }
18
+ case BIN(getblockparam): {
19
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
20
+ MAYBE_UNUSED(rb_num_t level) = (rb_num_t)operands[1];
21
+ return attr_sp_inc_getblockparam(idx, level);
22
+ }
23
+ case BIN(setblockparam): {
24
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
25
+ MAYBE_UNUSED(rb_num_t level) = (rb_num_t)operands[1];
26
+ return attr_sp_inc_setblockparam(idx, level);
27
+ }
28
+ case BIN(getblockparamproxy): {
29
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
30
+ MAYBE_UNUSED(rb_num_t level) = (rb_num_t)operands[1];
31
+ return attr_sp_inc_getblockparamproxy(idx, level);
32
+ }
33
+ case BIN(getspecial): {
34
+ MAYBE_UNUSED(rb_num_t key) = (rb_num_t)operands[0];
35
+ MAYBE_UNUSED(rb_num_t type) = (rb_num_t)operands[1];
36
+ return attr_sp_inc_getspecial(key, type);
37
+ }
38
+ case BIN(setspecial): {
39
+ MAYBE_UNUSED(rb_num_t key) = (rb_num_t)operands[0];
40
+ return attr_sp_inc_setspecial(key);
41
+ }
42
+ case BIN(getinstancevariable): {
43
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
44
+ MAYBE_UNUSED(IVC ic) = (IVC)operands[1];
45
+ return attr_sp_inc_getinstancevariable(id, ic);
46
+ }
47
+ case BIN(setinstancevariable): {
48
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
49
+ MAYBE_UNUSED(IVC ic) = (IVC)operands[1];
50
+ return attr_sp_inc_setinstancevariable(id, ic);
51
+ }
52
+ case BIN(getclassvariable): {
53
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
54
+ MAYBE_UNUSED(ICVARC ic) = (ICVARC)operands[1];
55
+ return attr_sp_inc_getclassvariable(id, ic);
56
+ }
57
+ case BIN(setclassvariable): {
58
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
59
+ MAYBE_UNUSED(ICVARC ic) = (ICVARC)operands[1];
60
+ return attr_sp_inc_setclassvariable(id, ic);
61
+ }
62
+ case BIN(opt_getconstant_path): {
63
+ MAYBE_UNUSED(IC ic) = (IC)operands[0];
64
+ return attr_sp_inc_opt_getconstant_path(ic);
65
+ }
66
+ case BIN(getconstant): {
67
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
68
+ return attr_sp_inc_getconstant(id);
69
+ }
70
+ case BIN(setconstant): {
71
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
72
+ return attr_sp_inc_setconstant(id);
73
+ }
74
+ case BIN(getglobal): {
75
+ MAYBE_UNUSED(ID gid) = (ID)operands[0];
76
+ return attr_sp_inc_getglobal(gid);
77
+ }
78
+ case BIN(setglobal): {
79
+ MAYBE_UNUSED(ID gid) = (ID)operands[0];
80
+ return attr_sp_inc_setglobal(gid);
81
+ }
82
+ case BIN(putnil): {
83
+ return attr_sp_inc_putnil();
84
+ }
85
+ case BIN(putself): {
86
+ return attr_sp_inc_putself();
87
+ }
88
+ case BIN(putobject): {
89
+ MAYBE_UNUSED(VALUE val) = (VALUE)operands[0];
90
+ return attr_sp_inc_putobject(val);
91
+ }
92
+ case BIN(putspecialobject): {
93
+ MAYBE_UNUSED(rb_num_t value_type) = (rb_num_t)operands[0];
94
+ return attr_sp_inc_putspecialobject(value_type);
95
+ }
96
+ case BIN(putstring): {
97
+ MAYBE_UNUSED(VALUE str) = (VALUE)operands[0];
98
+ return attr_sp_inc_putstring(str);
99
+ }
100
+ case BIN(concatstrings): {
101
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
102
+ return attr_sp_inc_concatstrings(num);
103
+ }
104
+ case BIN(anytostring): {
105
+ return attr_sp_inc_anytostring();
106
+ }
107
+ case BIN(toregexp): {
108
+ MAYBE_UNUSED(rb_num_t opt) = (rb_num_t)operands[0];
109
+ MAYBE_UNUSED(rb_num_t cnt) = (rb_num_t)operands[1];
110
+ return attr_sp_inc_toregexp(opt, cnt);
111
+ }
112
+ case BIN(intern): {
113
+ return attr_sp_inc_intern();
114
+ }
115
+ case BIN(newarray): {
116
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
117
+ return attr_sp_inc_newarray(num);
118
+ }
119
+ case BIN(newarraykwsplat): {
120
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
121
+ return attr_sp_inc_newarraykwsplat(num);
122
+ }
123
+ case BIN(duparray): {
124
+ MAYBE_UNUSED(VALUE ary) = (VALUE)operands[0];
125
+ return attr_sp_inc_duparray(ary);
126
+ }
127
+ case BIN(duphash): {
128
+ MAYBE_UNUSED(VALUE hash) = (VALUE)operands[0];
129
+ return attr_sp_inc_duphash(hash);
130
+ }
131
+ case BIN(expandarray): {
132
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
133
+ MAYBE_UNUSED(rb_num_t flag) = (rb_num_t)operands[1];
134
+ return attr_sp_inc_expandarray(num, flag);
135
+ }
136
+ case BIN(concatarray): {
137
+ return attr_sp_inc_concatarray();
138
+ }
139
+ case BIN(splatarray): {
140
+ MAYBE_UNUSED(VALUE flag) = (VALUE)operands[0];
141
+ return attr_sp_inc_splatarray(flag);
142
+ }
143
+ case BIN(newhash): {
144
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
145
+ return attr_sp_inc_newhash(num);
146
+ }
147
+ case BIN(newrange): {
148
+ MAYBE_UNUSED(rb_num_t flag) = (rb_num_t)operands[0];
149
+ return attr_sp_inc_newrange(flag);
150
+ }
151
+ case BIN(pop): {
152
+ return attr_sp_inc_pop();
153
+ }
154
+ case BIN(dup): {
155
+ return attr_sp_inc_dup();
156
+ }
157
+ case BIN(dupn): {
158
+ MAYBE_UNUSED(rb_num_t n) = (rb_num_t)operands[0];
159
+ return attr_sp_inc_dupn(n);
160
+ }
161
+ case BIN(swap): {
162
+ return attr_sp_inc_swap();
163
+ }
164
+ case BIN(opt_reverse): {
165
+ MAYBE_UNUSED(rb_num_t n) = (rb_num_t)operands[0];
166
+ return attr_sp_inc_opt_reverse(n);
167
+ }
168
+ case BIN(topn): {
169
+ MAYBE_UNUSED(rb_num_t n) = (rb_num_t)operands[0];
170
+ return attr_sp_inc_topn(n);
171
+ }
172
+ case BIN(setn): {
173
+ MAYBE_UNUSED(rb_num_t n) = (rb_num_t)operands[0];
174
+ return attr_sp_inc_setn(n);
175
+ }
176
+ case BIN(adjuststack): {
177
+ MAYBE_UNUSED(rb_num_t n) = (rb_num_t)operands[0];
178
+ return attr_sp_inc_adjuststack(n);
179
+ }
180
+ case BIN(defined): {
181
+ MAYBE_UNUSED(rb_num_t op_type) = (rb_num_t)operands[0];
182
+ MAYBE_UNUSED(VALUE obj) = (VALUE)operands[1];
183
+ MAYBE_UNUSED(VALUE pushval) = (VALUE)operands[2];
184
+ return attr_sp_inc_defined(op_type, obj, pushval);
185
+ }
186
+ case BIN(checkmatch): {
187
+ MAYBE_UNUSED(rb_num_t flag) = (rb_num_t)operands[0];
188
+ return attr_sp_inc_checkmatch(flag);
189
+ }
190
+ case BIN(checkkeyword): {
191
+ MAYBE_UNUSED(lindex_t kw_bits_index) = (lindex_t)operands[0];
192
+ MAYBE_UNUSED(lindex_t keyword_index) = (lindex_t)operands[1];
193
+ return attr_sp_inc_checkkeyword(kw_bits_index, keyword_index);
194
+ }
195
+ case BIN(checktype): {
196
+ MAYBE_UNUSED(rb_num_t type) = (rb_num_t)operands[0];
197
+ return attr_sp_inc_checktype(type);
198
+ }
199
+ case BIN(defineclass): {
200
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
201
+ MAYBE_UNUSED(ISEQ class_iseq) = (ISEQ)operands[1];
202
+ MAYBE_UNUSED(rb_num_t flags) = (rb_num_t)operands[2];
203
+ return attr_sp_inc_defineclass(id, class_iseq, flags);
204
+ }
205
+ case BIN(definemethod): {
206
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
207
+ MAYBE_UNUSED(ISEQ iseq) = (ISEQ)operands[1];
208
+ return attr_sp_inc_definemethod(id, iseq);
209
+ }
210
+ case BIN(definesmethod): {
211
+ MAYBE_UNUSED(ID id) = (ID)operands[0];
212
+ MAYBE_UNUSED(ISEQ iseq) = (ISEQ)operands[1];
213
+ return attr_sp_inc_definesmethod(id, iseq);
214
+ }
215
+ case BIN(send): {
216
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
217
+ MAYBE_UNUSED(ISEQ blockiseq) = (ISEQ)operands[1];
218
+ return attr_sp_inc_send(cd, blockiseq);
219
+ }
220
+ case BIN(opt_send_without_block): {
221
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
222
+ return attr_sp_inc_opt_send_without_block(cd);
223
+ }
224
+ case BIN(objtostring): {
225
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
226
+ return attr_sp_inc_objtostring(cd);
227
+ }
228
+ case BIN(opt_str_freeze): {
229
+ MAYBE_UNUSED(VALUE str) = (VALUE)operands[0];
230
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[1];
231
+ return attr_sp_inc_opt_str_freeze(str, cd);
232
+ }
233
+ case BIN(opt_nil_p): {
234
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
235
+ return attr_sp_inc_opt_nil_p(cd);
236
+ }
237
+ case BIN(opt_str_uminus): {
238
+ MAYBE_UNUSED(VALUE str) = (VALUE)operands[0];
239
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[1];
240
+ return attr_sp_inc_opt_str_uminus(str, cd);
241
+ }
242
+ case BIN(opt_newarray_max): {
243
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
244
+ return attr_sp_inc_opt_newarray_max(num);
245
+ }
246
+ case BIN(opt_newarray_min): {
247
+ MAYBE_UNUSED(rb_num_t num) = (rb_num_t)operands[0];
248
+ return attr_sp_inc_opt_newarray_min(num);
249
+ }
250
+ case BIN(invokesuper): {
251
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
252
+ MAYBE_UNUSED(ISEQ blockiseq) = (ISEQ)operands[1];
253
+ return attr_sp_inc_invokesuper(cd, blockiseq);
254
+ }
255
+ case BIN(invokeblock): {
256
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
257
+ return attr_sp_inc_invokeblock(cd);
258
+ }
259
+ case BIN(leave): {
260
+ return attr_sp_inc_leave();
261
+ }
262
+ case BIN(throw): {
263
+ MAYBE_UNUSED(rb_num_t throw_state) = (rb_num_t)operands[0];
264
+ return attr_sp_inc_throw(throw_state);
265
+ }
266
+ case BIN(jump): {
267
+ MAYBE_UNUSED(OFFSET dst) = (OFFSET)operands[0];
268
+ return attr_sp_inc_jump(dst);
269
+ }
270
+ case BIN(branchif): {
271
+ MAYBE_UNUSED(OFFSET dst) = (OFFSET)operands[0];
272
+ return attr_sp_inc_branchif(dst);
273
+ }
274
+ case BIN(branchunless): {
275
+ MAYBE_UNUSED(OFFSET dst) = (OFFSET)operands[0];
276
+ return attr_sp_inc_branchunless(dst);
277
+ }
278
+ case BIN(branchnil): {
279
+ MAYBE_UNUSED(OFFSET dst) = (OFFSET)operands[0];
280
+ return attr_sp_inc_branchnil(dst);
281
+ }
282
+ case BIN(once): {
283
+ MAYBE_UNUSED(ISEQ iseq) = (ISEQ)operands[0];
284
+ MAYBE_UNUSED(ISE ise) = (ISE)operands[1];
285
+ return attr_sp_inc_once(iseq, ise);
286
+ }
287
+ case BIN(opt_case_dispatch): {
288
+ MAYBE_UNUSED(CDHASH hash) = (CDHASH)operands[0];
289
+ MAYBE_UNUSED(OFFSET else_offset) = (OFFSET)operands[1];
290
+ return attr_sp_inc_opt_case_dispatch(hash, else_offset);
291
+ }
292
+ case BIN(opt_plus): {
293
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
294
+ return attr_sp_inc_opt_plus(cd);
295
+ }
296
+ case BIN(opt_minus): {
297
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
298
+ return attr_sp_inc_opt_minus(cd);
299
+ }
300
+ case BIN(opt_mult): {
301
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
302
+ return attr_sp_inc_opt_mult(cd);
303
+ }
304
+ case BIN(opt_div): {
305
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
306
+ return attr_sp_inc_opt_div(cd);
307
+ }
308
+ case BIN(opt_mod): {
309
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
310
+ return attr_sp_inc_opt_mod(cd);
311
+ }
312
+ case BIN(opt_eq): {
313
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
314
+ return attr_sp_inc_opt_eq(cd);
315
+ }
316
+ case BIN(opt_neq): {
317
+ MAYBE_UNUSED(CALL_DATA cd_eq) = (CALL_DATA)operands[0];
318
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[1];
319
+ return attr_sp_inc_opt_neq(cd_eq, cd);
320
+ }
321
+ case BIN(opt_lt): {
322
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
323
+ return attr_sp_inc_opt_lt(cd);
324
+ }
325
+ case BIN(opt_le): {
326
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
327
+ return attr_sp_inc_opt_le(cd);
328
+ }
329
+ case BIN(opt_gt): {
330
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
331
+ return attr_sp_inc_opt_gt(cd);
332
+ }
333
+ case BIN(opt_ge): {
334
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
335
+ return attr_sp_inc_opt_ge(cd);
336
+ }
337
+ case BIN(opt_ltlt): {
338
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
339
+ return attr_sp_inc_opt_ltlt(cd);
340
+ }
341
+ case BIN(opt_and): {
342
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
343
+ return attr_sp_inc_opt_and(cd);
344
+ }
345
+ case BIN(opt_or): {
346
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
347
+ return attr_sp_inc_opt_or(cd);
348
+ }
349
+ case BIN(opt_aref): {
350
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
351
+ return attr_sp_inc_opt_aref(cd);
352
+ }
353
+ case BIN(opt_aset): {
354
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
355
+ return attr_sp_inc_opt_aset(cd);
356
+ }
357
+ case BIN(opt_aset_with): {
358
+ MAYBE_UNUSED(VALUE key) = (VALUE)operands[0];
359
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[1];
360
+ return attr_sp_inc_opt_aset_with(key, cd);
361
+ }
362
+ case BIN(opt_aref_with): {
363
+ MAYBE_UNUSED(VALUE key) = (VALUE)operands[0];
364
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[1];
365
+ return attr_sp_inc_opt_aref_with(key, cd);
366
+ }
367
+ case BIN(opt_length): {
368
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
369
+ return attr_sp_inc_opt_length(cd);
370
+ }
371
+ case BIN(opt_size): {
372
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
373
+ return attr_sp_inc_opt_size(cd);
374
+ }
375
+ case BIN(opt_empty_p): {
376
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
377
+ return attr_sp_inc_opt_empty_p(cd);
378
+ }
379
+ case BIN(opt_succ): {
380
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
381
+ return attr_sp_inc_opt_succ(cd);
382
+ }
383
+ case BIN(opt_not): {
384
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
385
+ return attr_sp_inc_opt_not(cd);
386
+ }
387
+ case BIN(opt_regexpmatch2): {
388
+ MAYBE_UNUSED(CALL_DATA cd) = (CALL_DATA)operands[0];
389
+ return attr_sp_inc_opt_regexpmatch2(cd);
390
+ }
391
+ case BIN(invokebuiltin): {
392
+ MAYBE_UNUSED(RB_BUILTIN bf) = (RB_BUILTIN)operands[0];
393
+ return attr_sp_inc_invokebuiltin(bf);
394
+ }
395
+ case BIN(opt_invokebuiltin_delegate): {
396
+ MAYBE_UNUSED(RB_BUILTIN bf) = (RB_BUILTIN)operands[0];
397
+ MAYBE_UNUSED(rb_num_t index) = (rb_num_t)operands[1];
398
+ return attr_sp_inc_opt_invokebuiltin_delegate(bf, index);
399
+ }
400
+ case BIN(opt_invokebuiltin_delegate_leave): {
401
+ MAYBE_UNUSED(RB_BUILTIN bf) = (RB_BUILTIN)operands[0];
402
+ MAYBE_UNUSED(rb_num_t index) = (rb_num_t)operands[1];
403
+ return attr_sp_inc_opt_invokebuiltin_delegate_leave(bf, index);
404
+ }
405
+ case BIN(getlocal_WC_0): {
406
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
407
+ return attr_sp_inc_getlocal_WC_0(idx);
408
+ }
409
+ case BIN(getlocal_WC_1): {
410
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
411
+ return attr_sp_inc_getlocal_WC_1(idx);
412
+ }
413
+ case BIN(setlocal_WC_0): {
414
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
415
+ return attr_sp_inc_setlocal_WC_0(idx);
416
+ }
417
+ case BIN(setlocal_WC_1): {
418
+ MAYBE_UNUSED(lindex_t idx) = (lindex_t)operands[0];
419
+ return attr_sp_inc_setlocal_WC_1(idx);
420
+ }
421
+ case BIN(putobject_INT2FIX_0_): {
422
+ return attr_sp_inc_putobject_INT2FIX_0_();
423
+ }
424
+ case BIN(putobject_INT2FIX_1_): {
425
+ return attr_sp_inc_putobject_INT2FIX_1_();
426
+ }
427
+ default:
428
+ rb_bug("unexpected insn in mjit_call_attribute_sp_inc");
429
+ }
430
+ }
@@ -0,0 +1,58 @@
1
+ // This file is parsed by tool/mjit/generate.rb for MJIT's C/Ruby interop.
2
+ #ifndef MJIT_COMPILER_H
3
+ #define MJIT_COMPILER_H
4
+
5
+ #include "ruby/internal/config.h"
6
+ #include "vm_core.h"
7
+ #include "vm_callinfo.h"
8
+ #include "builtin.h"
9
+ #include "mjit.h"
10
+ #include "mjit_unit.h"
11
+
12
+ // Macros to check if a position is already compiled using compile_status.stack_size_for_pos
13
+ #define NOT_COMPILED_STACK_SIZE -1
14
+ #define ALREADY_COMPILED_P(status, pos) (status->stack_size_for_pos[pos] != NOT_COMPILED_STACK_SIZE)
15
+
16
+ // Storage to keep data which is consistent in each conditional branch.
17
+ // This is created and used for one `compile_insns` call and its values
18
+ // should be copied for extra `compile_insns` call.
19
+ struct compile_branch {
20
+ unsigned int stack_size; // this simulates sp (stack pointer) of YARV
21
+ bool finish_p; // if true, compilation in this branch should stop and let another branch to be compiled
22
+ };
23
+
24
+ // For propagating information needed for lazily pushing a frame.
25
+ struct inlined_call_context {
26
+ int orig_argc; // ci->orig_argc
27
+ VALUE me; // vm_cc_cme(cc)
28
+ int param_size; // def_iseq_ptr(vm_cc_cme(cc)->def)->body->param.size
29
+ int local_size; // def_iseq_ptr(vm_cc_cme(cc)->def)->body->local_table_size
30
+ };
31
+
32
+ // Storage to keep compiler's status. This should have information
33
+ // which is global during one `mjit_compile` call. Ones conditional
34
+ // in each branch should be stored in `compile_branch`.
35
+ struct compile_status {
36
+ bool success; // has true if compilation has had no issue
37
+ int *stack_size_for_pos; // stack_size_for_pos[pos] has stack size for the position (otherwise -1)
38
+ // If true, JIT-ed code will use local variables to store pushed values instead of
39
+ // using VM's stack and moving stack pointer.
40
+ bool local_stack_p;
41
+ // Safely-accessible ivar cache entries copied from main thread.
42
+ union iseq_inline_storage_entry *is_entries;
43
+ // Index of call cache entries captured to compiled_iseq to be marked on GC
44
+ int cc_entries_index;
45
+ // A pointer to root (i.e. not inlined) iseq being compiled.
46
+ const struct rb_iseq_constant_body *compiled_iseq;
47
+ int compiled_id; // Just a copy of compiled_iseq->jit_unit->id
48
+ // Mutated optimization levels
49
+ struct rb_mjit_compile_info *compile_info;
50
+ bool merge_ivar_guards_p; // If true, merge guards of ivar accesses
51
+ rb_serial_t ivar_serial; // ic_serial of IVC in is_entries (used only when merge_ivar_guards_p)
52
+ size_t max_ivar_index; // Max IVC index in is_entries (used only when merge_ivar_guards_p)
53
+ // If `inlined_iseqs[pos]` is not NULL, `mjit_compile_body` tries to inline ISeq there.
54
+ const struct rb_iseq_constant_body **inlined_iseqs;
55
+ struct inlined_call_context inline_context;
56
+ };
57
+
58
+ #endif /* MJIT_COMPILER_H */
@@ -0,0 +1,29 @@
1
+ #ifndef MJIT_UNIT_H
2
+ #define MJIT_UNIT_H
3
+
4
+ #include "ccan/list/list.h"
5
+
6
+ // The unit structure that holds metadata of ISeq for MJIT.
7
+ struct rb_mjit_unit {
8
+ struct ccan_list_node unode;
9
+ // Unique order number of unit.
10
+ int id;
11
+ // Dlopen handle of the loaded object file.
12
+ void *handle;
13
+ rb_iseq_t *iseq;
14
+ #if defined(_WIN32)
15
+ // DLL cannot be removed while loaded on Windows. If this is set, it'll be lazily deleted.
16
+ char *so_file;
17
+ #endif
18
+ // Only used by unload_units. Flag to check this unit is currently on stack or not.
19
+ bool used_code_p;
20
+ // True if it's a unit for JIT compaction
21
+ bool compact_p;
22
+ // mjit_compile's optimization switches
23
+ struct rb_mjit_compile_info compile_info;
24
+ // captured CC values, they should be marked with iseq.
25
+ const struct rb_callcache **cc_entries;
26
+ unsigned int cc_entries_size; // ISEQ_BODY(iseq)->ci_size + ones of inlined iseqs
27
+ };
28
+
29
+ #endif /* MJIT_UNIT_H */