datadog-ruby_core_source 3.3.6 → 3.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (374) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.datadog.md +7 -1
  3. data/datadog-ruby_core_source.gemspec +6 -1
  4. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/id.h +7 -0
  5. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/array.h +1 -0
  6. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/basic_operators.h +2 -0
  7. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/bits.h +82 -0
  8. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/class.h +1 -1
  9. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/encoding.h +2 -0
  10. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/error.h +2 -0
  11. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/fixnum.h +1 -0
  12. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/gc.h +23 -28
  13. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/hash.h +1 -0
  14. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/imemo.h +7 -1
  15. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/io.h +4 -1
  16. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/parse.h +14 -2
  17. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/ractor.h +4 -0
  18. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/sanitizers.h +36 -3
  19. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/string.h +34 -18
  20. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/thread.h +29 -0
  21. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/vm.h +3 -3
  22. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/method.h +1 -0
  23. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/ast.h +2146 -453
  24. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/defines.h +44 -7
  25. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/diagnostic.h +24 -6
  26. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/extension.h +2 -2
  27. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/node.h +0 -21
  28. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/options.h +94 -3
  29. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/parser.h +82 -40
  30. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/prism.h +47 -11
  31. data/lib/datadog/ruby_core_source/ruby-3.4.0-rc1/prism/regexp.h +43 -0
  32. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/static_literals.h +3 -2
  33. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_char.h +1 -2
  34. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_constant_pool.h +0 -8
  35. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_integer.h +22 -15
  36. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_newline_list.h +11 -0
  37. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_string.h +28 -12
  38. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/version.h +3 -3
  39. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism_compile.h +23 -12
  40. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ractor_core.h +8 -20
  41. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/rubyparser.h +168 -249
  42. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/shape.h +2 -1
  43. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/thread_pthread.h +26 -25
  44. data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_core.h +62 -48
  45. data/lib/datadog/ruby_core_source/version.rb +1 -1
  46. data/lib/datadog/ruby_core_source.rb +14 -1
  47. metadata +109 -372
  48. data/.github/workflows/publish.yml +0 -18
  49. data/.gitignore +0 -7
  50. data/.idea/vcs.xml +0 -28
  51. data/CHANGELOG.md +0 -284
  52. data/CONTRIBUTING.md +0 -2
  53. data/Gemfile +0 -4
  54. data/Rakefile +0 -73
  55. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/addr2line.h +0 -21
  56. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/constant.h +0 -50
  57. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/debug_counter.h +0 -109
  58. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/dln.h +0 -51
  59. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/encindex.h +0 -69
  60. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/eval_intern.h +0 -334
  61. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/gc.h +0 -116
  62. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/id_table.h +0 -31
  63. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/insns.inc +0 -217
  64. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/insns_info.inc +0 -1570
  65. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/known_errors.inc +0 -746
  66. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/node_name.inc +0 -198
  67. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/opt_sc.inc +0 -1601
  68. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/optinsn.inc +0 -103
  69. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/optunifs.inc +0 -61
  70. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/parse.h +0 -206
  71. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/probes_helper.h +0 -43
  72. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regenc.h +0 -254
  73. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regint.h +0 -938
  74. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/regparse.h +0 -370
  75. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/revision.h +0 -1
  76. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/siphash.h +0 -48
  77. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/symbol.h +0 -108
  78. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/thread_win32.h +0 -36
  79. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/timev.h +0 -42
  80. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/transcode_data.h +0 -139
  81. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/version.h +0 -73
  82. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm.inc +0 -3667
  83. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_call_iseq_optimized.inc +0 -213
  84. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_exec.h +0 -192
  85. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vm_insnhelper.h +0 -255
  86. data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/vmtc.inc +0 -214
  87. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/addr2line.h +0 -21
  88. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/constant.h +0 -51
  89. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/debug_counter.h +0 -109
  90. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/dln.h +0 -51
  91. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/encindex.h +0 -69
  92. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/eval_intern.h +0 -334
  93. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/gc.h +0 -116
  94. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/id_table.h +0 -31
  95. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/insns.inc +0 -217
  96. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/insns_info.inc +0 -1570
  97. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/known_errors.inc +0 -746
  98. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/node_name.inc +0 -198
  99. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/opt_sc.inc +0 -1601
  100. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/optinsn.inc +0 -103
  101. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/optunifs.inc +0 -61
  102. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/parse.h +0 -206
  103. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/probes_helper.h +0 -43
  104. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regenc.h +0 -254
  105. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regint.h +0 -938
  106. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/regparse.h +0 -370
  107. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/revision.h +0 -1
  108. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/siphash.h +0 -48
  109. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/symbol.h +0 -108
  110. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/thread_win32.h +0 -36
  111. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/timev.h +0 -42
  112. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/transcode_data.h +0 -139
  113. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/version.h +0 -73
  114. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm.inc +0 -3667
  115. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_call_iseq_optimized.inc +0 -213
  116. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_exec.h +0 -192
  117. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vm_insnhelper.h +0 -255
  118. data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/vmtc.inc +0 -214
  119. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/addr2line.h +0 -21
  120. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/constant.h +0 -51
  121. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/debug_counter.h +0 -109
  122. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/dln.h +0 -51
  123. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/encindex.h +0 -69
  124. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/eval_intern.h +0 -334
  125. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/gc.h +0 -116
  126. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/id_table.h +0 -31
  127. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/insns.inc +0 -217
  128. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/insns_info.inc +0 -1570
  129. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/known_errors.inc +0 -746
  130. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/node_name.inc +0 -198
  131. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/opt_sc.inc +0 -1601
  132. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/optinsn.inc +0 -103
  133. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/optunifs.inc +0 -61
  134. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/parse.h +0 -200
  135. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/probes_helper.h +0 -43
  136. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regenc.h +0 -254
  137. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regint.h +0 -938
  138. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/regparse.h +0 -370
  139. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/revision.h +0 -1
  140. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/siphash.h +0 -48
  141. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/symbol.h +0 -108
  142. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/thread_win32.h +0 -36
  143. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/timev.h +0 -42
  144. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/transcode_data.h +0 -139
  145. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/version.h +0 -73
  146. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm.inc +0 -3667
  147. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_call_iseq_optimized.inc +0 -213
  148. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_exec.h +0 -192
  149. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vm_insnhelper.h +0 -255
  150. data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/vmtc.inc +0 -214
  151. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/addr2line.h +0 -22
  152. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/builtin.h +0 -117
  153. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/constant.h +0 -53
  154. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/darray.h +0 -246
  155. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/debug_counter.h +0 -423
  156. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/dln.h +0 -32
  157. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/encindex.h +0 -70
  158. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/eval_intern.h +0 -343
  159. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/hrtime.h +0 -227
  160. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/insns.inc +0 -251
  161. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/insns_info.inc +0 -9215
  162. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/known_errors.inc +0 -791
  163. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/node_name.inc +0 -212
  164. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/optinsn.inc +0 -128
  165. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/optunifs.inc +0 -43
  166. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parse.h +0 -243
  167. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parser_bits.h +0 -564
  168. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/parser_node.h +0 -32
  169. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/probes_helper.h +0 -42
  170. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regenc.h +0 -254
  171. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regint.h +0 -1004
  172. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/regparse.h +0 -371
  173. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/revision.h +0 -5
  174. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/rjit.h +0 -101
  175. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/rjit_c.h +0 -164
  176. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/siphash.h +0 -48
  177. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/symbol.h +0 -118
  178. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/thread_win32.h +0 -58
  179. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/timev.h +0 -58
  180. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/transcode_data.h +0 -138
  181. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/variable.h +0 -39
  182. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/version.h +0 -69
  183. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm.inc +0 -5436
  184. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_call_iseq_optimized.inc +0 -244
  185. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_callinfo.h +0 -619
  186. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_exec.h +0 -199
  187. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_insnhelper.h +0 -261
  188. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_sync.h +0 -137
  189. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vmtc.inc +0 -245
  190. data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/yjit.h +0 -72
  191. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/addr2line.h +0 -22
  192. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/builtin.h +0 -117
  193. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/constant.h +0 -53
  194. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/darray.h +0 -246
  195. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/debug_counter.h +0 -423
  196. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/dln.h +0 -32
  197. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/encindex.h +0 -70
  198. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/eval_intern.h +0 -343
  199. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/hrtime.h +0 -227
  200. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/insns.inc +0 -251
  201. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/insns_info.inc +0 -9215
  202. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/known_errors.inc +0 -791
  203. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/node_name.inc +0 -212
  204. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/optinsn.inc +0 -128
  205. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/optunifs.inc +0 -43
  206. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parse.h +0 -243
  207. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parser_bits.h +0 -564
  208. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/parser_node.h +0 -32
  209. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/probes_helper.h +0 -42
  210. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regenc.h +0 -254
  211. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regint.h +0 -1006
  212. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/regparse.h +0 -371
  213. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/revision.h +0 -5
  214. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/rjit.h +0 -101
  215. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/rjit_c.h +0 -164
  216. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/siphash.h +0 -48
  217. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/symbol.h +0 -118
  218. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/thread_win32.h +0 -58
  219. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/timev.h +0 -58
  220. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/transcode_data.h +0 -138
  221. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/variable.h +0 -39
  222. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/version.h +0 -69
  223. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm.inc +0 -5436
  224. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_call_iseq_optimized.inc +0 -244
  225. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_callinfo.h +0 -614
  226. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_exec.h +0 -199
  227. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_insnhelper.h +0 -261
  228. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_sync.h +0 -137
  229. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vmtc.inc +0 -245
  230. data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/yjit.h +0 -72
  231. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/addr2line.h +0 -22
  232. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/builtin.h +0 -119
  233. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/constant.h +0 -53
  234. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/darray.h +0 -191
  235. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/debug_counter.h +0 -423
  236. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/dln.h +0 -34
  237. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/encindex.h +0 -70
  238. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/eval_intern.h +0 -324
  239. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/hrtime.h +0 -237
  240. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/insns.inc +0 -259
  241. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/insns_info.inc +0 -9530
  242. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/known_errors.inc +0 -1419
  243. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/node_name.inc +0 -224
  244. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/optinsn.inc +0 -128
  245. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/optunifs.inc +0 -43
  246. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parse.h +0 -243
  247. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parser_bits.h +0 -564
  248. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/parser_node.h +0 -32
  249. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/prism/regexp.h +0 -33
  250. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/prism/util/pm_string_list.h +0 -44
  251. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/probes_helper.h +0 -42
  252. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regenc.h +0 -254
  253. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regint.h +0 -1010
  254. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/regparse.h +0 -371
  255. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/revision.h +0 -5
  256. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/rjit.h +0 -101
  257. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/rjit_c.h +0 -165
  258. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/siphash.h +0 -48
  259. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/symbol.h +0 -118
  260. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/thread_win32.h +0 -58
  261. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/timev.h +0 -58
  262. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/transcode_data.h +0 -138
  263. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/variable.h +0 -39
  264. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/version.h +0 -69
  265. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm.inc +0 -5643
  266. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_call_iseq_optimized.inc +0 -244
  267. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_callinfo.h +0 -605
  268. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_exec.h +0 -199
  269. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_insnhelper.h +0 -272
  270. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vm_sync.h +0 -137
  271. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/vmtc.inc +0 -253
  272. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview1/yjit.h +0 -79
  273. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/addr2line.h +0 -22
  274. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/builtin.h +0 -119
  275. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/constant.h +0 -53
  276. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/darray.h +0 -209
  277. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/debug_counter.h +0 -423
  278. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/dln.h +0 -32
  279. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/encindex.h +0 -70
  280. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/eval_intern.h +0 -324
  281. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/hrtime.h +0 -237
  282. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/insns.inc +0 -265
  283. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/insns_info.inc +0 -9902
  284. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/known_errors.inc +0 -1419
  285. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/node_name.inc +0 -224
  286. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/optinsn.inc +0 -128
  287. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/optunifs.inc +0 -43
  288. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parse.h +0 -244
  289. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parser_bits.h +0 -564
  290. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/parser_node.h +0 -32
  291. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/probes_helper.h +0 -42
  292. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regenc.h +0 -254
  293. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regint.h +0 -1006
  294. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/regparse.h +0 -371
  295. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/revision.h +0 -5
  296. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/rjit.h +0 -101
  297. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/rjit_c.h +0 -165
  298. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/siphash.h +0 -48
  299. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/symbol.h +0 -123
  300. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/thread_win32.h +0 -58
  301. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/timev.h +0 -58
  302. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/transcode_data.h +0 -138
  303. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/variable.h +0 -39
  304. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/version.h +0 -69
  305. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm.inc +0 -5840
  306. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_call_iseq_optimized.inc +0 -244
  307. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_callinfo.h +0 -627
  308. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_exec.h +0 -199
  309. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_insnhelper.h +0 -277
  310. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vm_sync.h +0 -137
  311. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/vmtc.inc +0 -259
  312. data/lib/datadog/ruby_core_source/ruby-3.4.0-preview2/yjit.h +0 -79
  313. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/build_assert/build_assert.h +0 -0
  314. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/check_type/check_type.h +0 -0
  315. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/container_of/container_of.h +0 -0
  316. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/list/list.h +0 -0
  317. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ccan/str/str.h +0 -0
  318. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/id_table.h +0 -0
  319. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/bignum.h +0 -0
  320. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/cmdlineopt.h +0 -0
  321. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compar.h +0 -0
  322. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compile.h +0 -0
  323. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/compilers.h +0 -0
  324. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/complex.h +0 -0
  325. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/cont.h +0 -0
  326. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/dir.h +0 -0
  327. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enc.h +0 -0
  328. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enum.h +0 -0
  329. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/enumerator.h +0 -0
  330. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/eval.h +0 -0
  331. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/file.h +0 -0
  332. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/inits.h +0 -0
  333. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/load.h +0 -0
  334. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/loadpath.h +0 -0
  335. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/math.h +0 -0
  336. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/missing.h +0 -0
  337. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/numeric.h +0 -0
  338. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/object.h +0 -0
  339. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/proc.h +0 -0
  340. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/process.h +0 -0
  341. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/random.h +0 -0
  342. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/range.h +0 -0
  343. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/rational.h +0 -0
  344. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/re.h +0 -0
  345. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/ruby_parser.h +0 -0
  346. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/serial.h +0 -0
  347. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/signal.h +0 -0
  348. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/st.h +0 -0
  349. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/static_assert.h +0 -0
  350. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/struct.h +0 -0
  351. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/symbol.h +0 -0
  352. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/time.h +0 -0
  353. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/transcode.h +0 -0
  354. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/util.h +0 -0
  355. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/variable.h +0 -0
  356. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal/warnings.h +0 -0
  357. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/internal.h +0 -0
  358. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/iseq.h +0 -0
  359. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/node.h +0 -0
  360. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/parser_st.h +0 -0
  361. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/parser_value.h +0 -0
  362. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/encoding.h +0 -0
  363. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/pack.h +0 -0
  364. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/prettyprint.h +0 -0
  365. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_buffer.h +0 -0
  366. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_list.h +0 -0
  367. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_memchr.h +0 -0
  368. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_strncasecmp.h +0 -0
  369. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/prism/util/pm_strpbrk.h +0 -0
  370. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ruby_assert.h +0 -0
  371. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/ruby_atomic.h +0 -0
  372. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/thread_none.h +0 -0
  373. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_debug.h +0 -0
  374. /data/lib/datadog/ruby_core_source/{ruby-3.4.0-preview1 → ruby-3.4.0-rc1}/vm_opts.h +0 -0
@@ -1,3667 +0,0 @@
1
- /* -*-c-*- *********************************************************/
2
- /*******************************************************************/
3
- /*******************************************************************/
4
- /**
5
- This file is VM main loop.
6
-
7
- ----
8
- This file is auto generated by insns2vm.rb
9
- DO NOT TOUCH!
10
-
11
- If you want to fix something, you must edit 'insns.def'
12
- */
13
-
14
-
15
- INSN_ENTRY(nop){START_OF_ORIGINAL_INSN(nop);
16
- {
17
-
18
-
19
- DEBUG_ENTER_INSN("nop");
20
- ADD_PC(1+0);
21
- PREFETCH(GET_PC());
22
- #define CURRENT_INSN_nop 1
23
- #define INSN_IS_SC() 0
24
- #define INSN_LABEL(lab) LABEL_nop_##lab
25
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
26
- COLLECT_USAGE_INSN(BIN(nop));
27
- {
28
- #line 40 "insns.def"
29
- /* none */
30
-
31
- #line 32 "vm.inc"
32
- #undef CURRENT_INSN_nop
33
- #undef INSN_IS_SC
34
- #undef INSN_LABEL
35
- #undef LABEL_IS_SC
36
- END_INSN(nop);}}}
37
- INSN_ENTRY(getlocal){START_OF_ORIGINAL_INSN(getlocal);
38
- {
39
- VALUE val;
40
- rb_num_t level = (rb_num_t)GET_OPERAND(2);
41
- lindex_t idx = (lindex_t)GET_OPERAND(1);
42
-
43
- DEBUG_ENTER_INSN("getlocal");
44
- ADD_PC(1+2);
45
- PREFETCH(GET_PC());
46
- #define CURRENT_INSN_getlocal 1
47
- #define INSN_IS_SC() 0
48
- #define INSN_LABEL(lab) LABEL_getlocal_##lab
49
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
50
- COLLECT_USAGE_INSN(BIN(getlocal));
51
- COLLECT_USAGE_OPERAND(BIN(getlocal), 0, idx);
52
- COLLECT_USAGE_OPERAND(BIN(getlocal), 1, level);
53
- {
54
- #line 60 "insns.def"
55
- val = *(vm_get_ep(GET_EP(), level) - idx);
56
- RB_DEBUG_COUNTER_INC(lvar_get);
57
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
58
-
59
- #line 60 "vm.inc"
60
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
61
- PUSH(val);
62
- #undef CURRENT_INSN_getlocal
63
- #undef INSN_IS_SC
64
- #undef INSN_LABEL
65
- #undef LABEL_IS_SC
66
- END_INSN(getlocal);}}}
67
- INSN_ENTRY(setlocal){START_OF_ORIGINAL_INSN(setlocal);
68
- {
69
- rb_num_t level = (rb_num_t)GET_OPERAND(2);
70
- lindex_t idx = (lindex_t)GET_OPERAND(1);
71
- VALUE val = TOPN(0);
72
- DEBUG_ENTER_INSN("setlocal");
73
- ADD_PC(1+2);
74
- PREFETCH(GET_PC());
75
- POPN(1);
76
- #define CURRENT_INSN_setlocal 1
77
- #define INSN_IS_SC() 0
78
- #define INSN_LABEL(lab) LABEL_setlocal_##lab
79
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
80
- COLLECT_USAGE_INSN(BIN(setlocal));
81
- COLLECT_USAGE_OPERAND(BIN(setlocal), 0, idx);
82
- COLLECT_USAGE_OPERAND(BIN(setlocal), 1, level);
83
- {
84
- #line 78 "insns.def"
85
- vm_env_write(vm_get_ep(GET_EP(), level), -(int)idx, val);
86
- RB_DEBUG_COUNTER_INC(lvar_set);
87
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
88
-
89
- #line 90 "vm.inc"
90
- #undef CURRENT_INSN_setlocal
91
- #undef INSN_IS_SC
92
- #undef INSN_LABEL
93
- #undef LABEL_IS_SC
94
- END_INSN(setlocal);}}}
95
- INSN_ENTRY(getblockparam){START_OF_ORIGINAL_INSN(getblockparam);
96
- {
97
- VALUE val;
98
- rb_num_t level = (rb_num_t)GET_OPERAND(2);
99
- lindex_t idx = (lindex_t)GET_OPERAND(1);
100
-
101
- DEBUG_ENTER_INSN("getblockparam");
102
- ADD_PC(1+2);
103
- PREFETCH(GET_PC());
104
- #define CURRENT_INSN_getblockparam 1
105
- #define INSN_IS_SC() 0
106
- #define INSN_LABEL(lab) LABEL_getblockparam_##lab
107
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
108
- COLLECT_USAGE_INSN(BIN(getblockparam));
109
- COLLECT_USAGE_OPERAND(BIN(getblockparam), 0, idx);
110
- COLLECT_USAGE_OPERAND(BIN(getblockparam), 1, level);
111
- {
112
- #line 94 "insns.def"
113
- const VALUE *ep = vm_get_ep(GET_EP(), level);
114
- VM_ASSERT(VM_ENV_LOCAL_P(ep));
115
-
116
- if (!VM_ENV_FLAGS(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM)) {
117
- val = rb_vm_bh_to_procval(ec, VM_ENV_BLOCK_HANDLER(ep));
118
- vm_env_write(ep, -(int)idx, val);
119
- VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);
120
- }
121
- else {
122
- val = *(ep - idx);
123
- RB_DEBUG_COUNTER_INC(lvar_get);
124
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
125
- }
126
-
127
- #line 128 "vm.inc"
128
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
129
- PUSH(val);
130
- #undef CURRENT_INSN_getblockparam
131
- #undef INSN_IS_SC
132
- #undef INSN_LABEL
133
- #undef LABEL_IS_SC
134
- END_INSN(getblockparam);}}}
135
- INSN_ENTRY(setblockparam){START_OF_ORIGINAL_INSN(setblockparam);
136
- {
137
- rb_num_t level = (rb_num_t)GET_OPERAND(2);
138
- lindex_t idx = (lindex_t)GET_OPERAND(1);
139
- VALUE val = TOPN(0);
140
- DEBUG_ENTER_INSN("setblockparam");
141
- ADD_PC(1+2);
142
- PREFETCH(GET_PC());
143
- POPN(1);
144
- #define CURRENT_INSN_setblockparam 1
145
- #define INSN_IS_SC() 0
146
- #define INSN_LABEL(lab) LABEL_setblockparam_##lab
147
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
148
- COLLECT_USAGE_INSN(BIN(setblockparam));
149
- COLLECT_USAGE_OPERAND(BIN(setblockparam), 0, idx);
150
- COLLECT_USAGE_OPERAND(BIN(setblockparam), 1, level);
151
- {
152
- #line 120 "insns.def"
153
- const VALUE *ep = vm_get_ep(GET_EP(), level);
154
- VM_ASSERT(VM_ENV_LOCAL_P(ep));
155
-
156
- vm_env_write(ep, -(int)idx, val);
157
- RB_DEBUG_COUNTER_INC(lvar_set);
158
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
159
-
160
- VM_ENV_FLAGS_SET(ep, VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM);
161
-
162
- #line 163 "vm.inc"
163
- #undef CURRENT_INSN_setblockparam
164
- #undef INSN_IS_SC
165
- #undef INSN_LABEL
166
- #undef LABEL_IS_SC
167
- END_INSN(setblockparam);}}}
168
- INSN_ENTRY(getspecial){START_OF_ORIGINAL_INSN(getspecial);
169
- {
170
- VALUE val;
171
- rb_num_t type = (rb_num_t)GET_OPERAND(2);
172
- rb_num_t key = (rb_num_t)GET_OPERAND(1);
173
-
174
- DEBUG_ENTER_INSN("getspecial");
175
- ADD_PC(1+2);
176
- PREFETCH(GET_PC());
177
- #define CURRENT_INSN_getspecial 1
178
- #define INSN_IS_SC() 0
179
- #define INSN_LABEL(lab) LABEL_getspecial_##lab
180
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
181
- COLLECT_USAGE_INSN(BIN(getspecial));
182
- COLLECT_USAGE_OPERAND(BIN(getspecial), 0, key);
183
- COLLECT_USAGE_OPERAND(BIN(getspecial), 1, type);
184
- {
185
- #line 141 "insns.def"
186
- val = vm_getspecial(ec, GET_LEP(), key, type);
187
-
188
- #line 189 "vm.inc"
189
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
190
- PUSH(val);
191
- #undef CURRENT_INSN_getspecial
192
- #undef INSN_IS_SC
193
- #undef INSN_LABEL
194
- #undef LABEL_IS_SC
195
- END_INSN(getspecial);}}}
196
- INSN_ENTRY(setspecial){START_OF_ORIGINAL_INSN(setspecial);
197
- {
198
- rb_num_t key = (rb_num_t)GET_OPERAND(1);
199
- VALUE obj = TOPN(0);
200
- DEBUG_ENTER_INSN("setspecial");
201
- ADD_PC(1+1);
202
- PREFETCH(GET_PC());
203
- POPN(1);
204
- #define CURRENT_INSN_setspecial 1
205
- #define INSN_IS_SC() 0
206
- #define INSN_LABEL(lab) LABEL_setspecial_##lab
207
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
208
- COLLECT_USAGE_INSN(BIN(setspecial));
209
- COLLECT_USAGE_OPERAND(BIN(setspecial), 0, key);
210
- {
211
- #line 155 "insns.def"
212
- lep_svar_set(ec, GET_LEP(), key, obj);
213
-
214
- #line 215 "vm.inc"
215
- #undef CURRENT_INSN_setspecial
216
- #undef INSN_IS_SC
217
- #undef INSN_LABEL
218
- #undef LABEL_IS_SC
219
- END_INSN(setspecial);}}}
220
- INSN_ENTRY(getinstancevariable){START_OF_ORIGINAL_INSN(getinstancevariable);
221
- {
222
- VALUE val;
223
- IC ic = (IC)GET_OPERAND(2);
224
- ID id = (ID)GET_OPERAND(1);
225
-
226
- DEBUG_ENTER_INSN("getinstancevariable");
227
- ADD_PC(1+2);
228
- PREFETCH(GET_PC());
229
- #define CURRENT_INSN_getinstancevariable 1
230
- #define INSN_IS_SC() 0
231
- #define INSN_LABEL(lab) LABEL_getinstancevariable_##lab
232
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
233
- COLLECT_USAGE_INSN(BIN(getinstancevariable));
234
- COLLECT_USAGE_OPERAND(BIN(getinstancevariable), 0, id);
235
- COLLECT_USAGE_OPERAND(BIN(getinstancevariable), 1, ic);
236
- {
237
- #line 169 "insns.def"
238
- val = vm_getinstancevariable(GET_SELF(), id, ic);
239
-
240
- #line 241 "vm.inc"
241
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
242
- PUSH(val);
243
- #undef CURRENT_INSN_getinstancevariable
244
- #undef INSN_IS_SC
245
- #undef INSN_LABEL
246
- #undef LABEL_IS_SC
247
- END_INSN(getinstancevariable);}}}
248
- INSN_ENTRY(setinstancevariable){START_OF_ORIGINAL_INSN(setinstancevariable);
249
- {
250
- IC ic = (IC)GET_OPERAND(2);
251
- ID id = (ID)GET_OPERAND(1);
252
- VALUE val = TOPN(0);
253
- DEBUG_ENTER_INSN("setinstancevariable");
254
- ADD_PC(1+2);
255
- PREFETCH(GET_PC());
256
- POPN(1);
257
- #define CURRENT_INSN_setinstancevariable 1
258
- #define INSN_IS_SC() 0
259
- #define INSN_LABEL(lab) LABEL_setinstancevariable_##lab
260
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
261
- COLLECT_USAGE_INSN(BIN(setinstancevariable));
262
- COLLECT_USAGE_OPERAND(BIN(setinstancevariable), 0, id);
263
- COLLECT_USAGE_OPERAND(BIN(setinstancevariable), 1, ic);
264
- {
265
- #line 183 "insns.def"
266
- vm_setinstancevariable(GET_SELF(), id, val, ic);
267
-
268
- #line 269 "vm.inc"
269
- #undef CURRENT_INSN_setinstancevariable
270
- #undef INSN_IS_SC
271
- #undef INSN_LABEL
272
- #undef LABEL_IS_SC
273
- END_INSN(setinstancevariable);}}}
274
- INSN_ENTRY(getclassvariable){START_OF_ORIGINAL_INSN(getclassvariable);
275
- {
276
- VALUE val;
277
- ID id = (ID)GET_OPERAND(1);
278
-
279
- DEBUG_ENTER_INSN("getclassvariable");
280
- ADD_PC(1+1);
281
- PREFETCH(GET_PC());
282
- #define CURRENT_INSN_getclassvariable 1
283
- #define INSN_IS_SC() 0
284
- #define INSN_LABEL(lab) LABEL_getclassvariable_##lab
285
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
286
- COLLECT_USAGE_INSN(BIN(getclassvariable));
287
- COLLECT_USAGE_OPERAND(BIN(getclassvariable), 0, id);
288
- {
289
- #line 197 "insns.def"
290
- val = rb_cvar_get(vm_get_cvar_base(rb_vm_get_cref(GET_EP()), GET_CFP()), id);
291
-
292
- #line 293 "vm.inc"
293
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
294
- PUSH(val);
295
- #undef CURRENT_INSN_getclassvariable
296
- #undef INSN_IS_SC
297
- #undef INSN_LABEL
298
- #undef LABEL_IS_SC
299
- END_INSN(getclassvariable);}}}
300
- INSN_ENTRY(setclassvariable){START_OF_ORIGINAL_INSN(setclassvariable);
301
- {
302
- ID id = (ID)GET_OPERAND(1);
303
- VALUE val = TOPN(0);
304
- DEBUG_ENTER_INSN("setclassvariable");
305
- ADD_PC(1+1);
306
- PREFETCH(GET_PC());
307
- POPN(1);
308
- #define CURRENT_INSN_setclassvariable 1
309
- #define INSN_IS_SC() 0
310
- #define INSN_LABEL(lab) LABEL_setclassvariable_##lab
311
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
312
- COLLECT_USAGE_INSN(BIN(setclassvariable));
313
- COLLECT_USAGE_OPERAND(BIN(setclassvariable), 0, id);
314
- {
315
- #line 211 "insns.def"
316
- vm_ensure_not_refinement_module(GET_SELF());
317
- rb_cvar_set(vm_get_cvar_base(rb_vm_get_cref(GET_EP()), GET_CFP()), id, val);
318
-
319
- #line 320 "vm.inc"
320
- #undef CURRENT_INSN_setclassvariable
321
- #undef INSN_IS_SC
322
- #undef INSN_LABEL
323
- #undef LABEL_IS_SC
324
- END_INSN(setclassvariable);}}}
325
- INSN_ENTRY(getconstant){START_OF_ORIGINAL_INSN(getconstant);
326
- {
327
- VALUE val;
328
- ID id = (ID)GET_OPERAND(1);
329
- VALUE klass = TOPN(0);
330
- DEBUG_ENTER_INSN("getconstant");
331
- ADD_PC(1+1);
332
- PREFETCH(GET_PC());
333
- POPN(1);
334
- #define CURRENT_INSN_getconstant 1
335
- #define INSN_IS_SC() 0
336
- #define INSN_LABEL(lab) LABEL_getconstant_##lab
337
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
338
- COLLECT_USAGE_INSN(BIN(getconstant));
339
- COLLECT_USAGE_OPERAND(BIN(getconstant), 0, id);
340
- {
341
- #line 233 "insns.def"
342
- val = vm_get_ev_const(ec, klass, id, 0);
343
-
344
- #line 345 "vm.inc"
345
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
346
- PUSH(val);
347
- #undef CURRENT_INSN_getconstant
348
- #undef INSN_IS_SC
349
- #undef INSN_LABEL
350
- #undef LABEL_IS_SC
351
- END_INSN(getconstant);}}}
352
- INSN_ENTRY(setconstant){START_OF_ORIGINAL_INSN(setconstant);
353
- {
354
- ID id = (ID)GET_OPERAND(1);
355
- VALUE val = TOPN(1);
356
- VALUE cbase = TOPN(0);
357
- DEBUG_ENTER_INSN("setconstant");
358
- ADD_PC(1+1);
359
- PREFETCH(GET_PC());
360
- POPN(2);
361
- #define CURRENT_INSN_setconstant 1
362
- #define INSN_IS_SC() 0
363
- #define INSN_LABEL(lab) LABEL_setconstant_##lab
364
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
365
- COLLECT_USAGE_INSN(BIN(setconstant));
366
- COLLECT_USAGE_OPERAND(BIN(setconstant), 0, id);
367
- {
368
- #line 255 "insns.def"
369
- vm_check_if_namespace(cbase);
370
- vm_ensure_not_refinement_module(GET_SELF());
371
- rb_const_set(cbase, id, val);
372
-
373
- #line 374 "vm.inc"
374
- #undef CURRENT_INSN_setconstant
375
- #undef INSN_IS_SC
376
- #undef INSN_LABEL
377
- #undef LABEL_IS_SC
378
- END_INSN(setconstant);}}}
379
- INSN_ENTRY(getglobal){START_OF_ORIGINAL_INSN(getglobal);
380
- {
381
- VALUE val;
382
- GENTRY entry = (GENTRY)GET_OPERAND(1);
383
-
384
- DEBUG_ENTER_INSN("getglobal");
385
- ADD_PC(1+1);
386
- PREFETCH(GET_PC());
387
- #define CURRENT_INSN_getglobal 1
388
- #define INSN_IS_SC() 0
389
- #define INSN_LABEL(lab) LABEL_getglobal_##lab
390
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
391
- COLLECT_USAGE_INSN(BIN(getglobal));
392
- COLLECT_USAGE_OPERAND(BIN(getglobal), 0, entry);
393
- {
394
- #line 271 "insns.def"
395
- val = GET_GLOBAL((VALUE)entry);
396
-
397
- #line 398 "vm.inc"
398
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
399
- PUSH(val);
400
- #undef CURRENT_INSN_getglobal
401
- #undef INSN_IS_SC
402
- #undef INSN_LABEL
403
- #undef LABEL_IS_SC
404
- END_INSN(getglobal);}}}
405
- INSN_ENTRY(setglobal){START_OF_ORIGINAL_INSN(setglobal);
406
- {
407
- GENTRY entry = (GENTRY)GET_OPERAND(1);
408
- VALUE val = TOPN(0);
409
- DEBUG_ENTER_INSN("setglobal");
410
- ADD_PC(1+1);
411
- PREFETCH(GET_PC());
412
- POPN(1);
413
- #define CURRENT_INSN_setglobal 1
414
- #define INSN_IS_SC() 0
415
- #define INSN_LABEL(lab) LABEL_setglobal_##lab
416
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
417
- COLLECT_USAGE_INSN(BIN(setglobal));
418
- COLLECT_USAGE_OPERAND(BIN(setglobal), 0, entry);
419
- {
420
- #line 285 "insns.def"
421
- SET_GLOBAL((VALUE)entry, val);
422
-
423
- #line 424 "vm.inc"
424
- #undef CURRENT_INSN_setglobal
425
- #undef INSN_IS_SC
426
- #undef INSN_LABEL
427
- #undef LABEL_IS_SC
428
- END_INSN(setglobal);}}}
429
- INSN_ENTRY(putnil){START_OF_ORIGINAL_INSN(putnil);
430
- {
431
- VALUE val;
432
-
433
-
434
- DEBUG_ENTER_INSN("putnil");
435
- ADD_PC(1+0);
436
- PREFETCH(GET_PC());
437
- #define CURRENT_INSN_putnil 1
438
- #define INSN_IS_SC() 0
439
- #define INSN_LABEL(lab) LABEL_putnil_##lab
440
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
441
- COLLECT_USAGE_INSN(BIN(putnil));
442
- {
443
- #line 304 "insns.def"
444
- val = Qnil;
445
-
446
- #line 447 "vm.inc"
447
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
448
- PUSH(val);
449
- #undef CURRENT_INSN_putnil
450
- #undef INSN_IS_SC
451
- #undef INSN_LABEL
452
- #undef LABEL_IS_SC
453
- END_INSN(putnil);}}}
454
- INSN_ENTRY(putself){START_OF_ORIGINAL_INSN(putself);
455
- {
456
- VALUE val;
457
-
458
-
459
- DEBUG_ENTER_INSN("putself");
460
- ADD_PC(1+0);
461
- PREFETCH(GET_PC());
462
- #define CURRENT_INSN_putself 1
463
- #define INSN_IS_SC() 0
464
- #define INSN_LABEL(lab) LABEL_putself_##lab
465
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
466
- COLLECT_USAGE_INSN(BIN(putself));
467
- {
468
- #line 318 "insns.def"
469
- val = GET_SELF();
470
-
471
- #line 472 "vm.inc"
472
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
473
- PUSH(val);
474
- #undef CURRENT_INSN_putself
475
- #undef INSN_IS_SC
476
- #undef INSN_LABEL
477
- #undef LABEL_IS_SC
478
- END_INSN(putself);}}}
479
- INSN_ENTRY(putobject){START_OF_ORIGINAL_INSN(putobject);
480
- {
481
- VALUE val = (VALUE)GET_OPERAND(1);
482
-
483
- DEBUG_ENTER_INSN("putobject");
484
- ADD_PC(1+1);
485
- PREFETCH(GET_PC());
486
- #define CURRENT_INSN_putobject 1
487
- #define INSN_IS_SC() 0
488
- #define INSN_LABEL(lab) LABEL_putobject_##lab
489
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
490
- COLLECT_USAGE_INSN(BIN(putobject));
491
- COLLECT_USAGE_OPERAND(BIN(putobject), 0, val);
492
- {
493
- #line 334 "insns.def"
494
- /* */
495
-
496
- #line 497 "vm.inc"
497
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
498
- PUSH(val);
499
- #undef CURRENT_INSN_putobject
500
- #undef INSN_IS_SC
501
- #undef INSN_LABEL
502
- #undef LABEL_IS_SC
503
- END_INSN(putobject);}}}
504
- INSN_ENTRY(putspecialobject){START_OF_ORIGINAL_INSN(putspecialobject);
505
- {
506
- VALUE val;
507
- rb_num_t value_type = (rb_num_t)GET_OPERAND(1);
508
-
509
- DEBUG_ENTER_INSN("putspecialobject");
510
- ADD_PC(1+1);
511
- PREFETCH(GET_PC());
512
- #define CURRENT_INSN_putspecialobject 1
513
- #define INSN_IS_SC() 0
514
- #define INSN_LABEL(lab) LABEL_putspecialobject_##lab
515
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
516
- COLLECT_USAGE_INSN(BIN(putspecialobject));
517
- COLLECT_USAGE_OPERAND(BIN(putspecialobject), 0, value_type);
518
- {
519
- #line 349 "insns.def"
520
- enum vm_special_object_type type;
521
-
522
- type = (enum vm_special_object_type)value_type;
523
- val = vm_get_special_object(GET_EP(), type);
524
-
525
- #line 526 "vm.inc"
526
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
527
- PUSH(val);
528
- #undef CURRENT_INSN_putspecialobject
529
- #undef INSN_IS_SC
530
- #undef INSN_LABEL
531
- #undef LABEL_IS_SC
532
- END_INSN(putspecialobject);}}}
533
- INSN_ENTRY(putiseq){START_OF_ORIGINAL_INSN(putiseq);
534
- {
535
- VALUE ret;
536
- ISEQ iseq = (ISEQ)GET_OPERAND(1);
537
-
538
- DEBUG_ENTER_INSN("putiseq");
539
- ADD_PC(1+1);
540
- PREFETCH(GET_PC());
541
- #define CURRENT_INSN_putiseq 1
542
- #define INSN_IS_SC() 0
543
- #define INSN_LABEL(lab) LABEL_putiseq_##lab
544
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
545
- COLLECT_USAGE_INSN(BIN(putiseq));
546
- COLLECT_USAGE_OPERAND(BIN(putiseq), 0, iseq);
547
- {
548
- #line 366 "insns.def"
549
- ret = (VALUE)iseq;
550
-
551
- #line 552 "vm.inc"
552
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
553
- PUSH(ret);
554
- #undef CURRENT_INSN_putiseq
555
- #undef INSN_IS_SC
556
- #undef INSN_LABEL
557
- #undef LABEL_IS_SC
558
- END_INSN(putiseq);}}}
559
- INSN_ENTRY(putstring){START_OF_ORIGINAL_INSN(putstring);
560
- {
561
- VALUE val;
562
- VALUE str = (VALUE)GET_OPERAND(1);
563
-
564
- DEBUG_ENTER_INSN("putstring");
565
- ADD_PC(1+1);
566
- PREFETCH(GET_PC());
567
- #define CURRENT_INSN_putstring 1
568
- #define INSN_IS_SC() 0
569
- #define INSN_LABEL(lab) LABEL_putstring_##lab
570
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
571
- COLLECT_USAGE_INSN(BIN(putstring));
572
- COLLECT_USAGE_OPERAND(BIN(putstring), 0, str);
573
- {
574
- #line 380 "insns.def"
575
- val = rb_str_resurrect(str);
576
-
577
- #line 578 "vm.inc"
578
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
579
- PUSH(val);
580
- #undef CURRENT_INSN_putstring
581
- #undef INSN_IS_SC
582
- #undef INSN_LABEL
583
- #undef LABEL_IS_SC
584
- END_INSN(putstring);}}}
585
- INSN_ENTRY(concatstrings){START_OF_ORIGINAL_INSN(concatstrings);
586
- {
587
- VALUE val;
588
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
589
-
590
- DEBUG_ENTER_INSN("concatstrings");
591
- ADD_PC(1+1);
592
- PREFETCH(GET_PC());
593
- #define CURRENT_INSN_concatstrings 1
594
- #define INSN_IS_SC() 0
595
- #define INSN_LABEL(lab) LABEL_concatstrings_##lab
596
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
597
- COLLECT_USAGE_INSN(BIN(concatstrings));
598
- COLLECT_USAGE_OPERAND(BIN(concatstrings), 0, num);
599
- {
600
- #line 394 "insns.def"
601
- val = rb_str_concat_literals(num, STACK_ADDR_FROM_TOP(num));
602
- POPN(num);
603
-
604
- #line 605 "vm.inc"
605
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
606
- PUSH(val);
607
- #undef CURRENT_INSN_concatstrings
608
- #undef INSN_IS_SC
609
- #undef INSN_LABEL
610
- #undef LABEL_IS_SC
611
- END_INSN(concatstrings);}}}
612
- INSN_ENTRY(tostring){START_OF_ORIGINAL_INSN(tostring);
613
- {
614
-
615
- VALUE val = TOPN(1);
616
- VALUE str = TOPN(0);
617
- DEBUG_ENTER_INSN("tostring");
618
- ADD_PC(1+0);
619
- PREFETCH(GET_PC());
620
- POPN(2);
621
- #define CURRENT_INSN_tostring 1
622
- #define INSN_IS_SC() 0
623
- #define INSN_LABEL(lab) LABEL_tostring_##lab
624
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
625
- COLLECT_USAGE_INSN(BIN(tostring));
626
- {
627
- #line 409 "insns.def"
628
- VALUE rb_obj_as_string_result(VALUE str, VALUE obj);
629
- val = rb_obj_as_string_result(str, val);
630
-
631
- #line 632 "vm.inc"
632
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
633
- PUSH(val);
634
- #undef CURRENT_INSN_tostring
635
- #undef INSN_IS_SC
636
- #undef INSN_LABEL
637
- #undef LABEL_IS_SC
638
- END_INSN(tostring);}}}
639
- INSN_ENTRY(freezestring){START_OF_ORIGINAL_INSN(freezestring);
640
- {
641
- VALUE debug_info = (VALUE)GET_OPERAND(1);
642
- VALUE str = TOPN(0);
643
- DEBUG_ENTER_INSN("freezestring");
644
- ADD_PC(1+1);
645
- PREFETCH(GET_PC());
646
- POPN(1);
647
- #define CURRENT_INSN_freezestring 1
648
- #define INSN_IS_SC() 0
649
- #define INSN_LABEL(lab) LABEL_freezestring_##lab
650
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
651
- COLLECT_USAGE_INSN(BIN(freezestring));
652
- COLLECT_USAGE_OPERAND(BIN(freezestring), 0, debug_info);
653
- {
654
- #line 424 "insns.def"
655
- vm_freezestring(str, debug_info);
656
-
657
- #line 658 "vm.inc"
658
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
659
- PUSH(str);
660
- #undef CURRENT_INSN_freezestring
661
- #undef INSN_IS_SC
662
- #undef INSN_LABEL
663
- #undef LABEL_IS_SC
664
- END_INSN(freezestring);}}}
665
- INSN_ENTRY(toregexp){START_OF_ORIGINAL_INSN(toregexp);
666
- {
667
- VALUE val;
668
- rb_num_t cnt = (rb_num_t)GET_OPERAND(2);
669
- rb_num_t opt = (rb_num_t)GET_OPERAND(1);
670
-
671
- DEBUG_ENTER_INSN("toregexp");
672
- ADD_PC(1+2);
673
- PREFETCH(GET_PC());
674
- #define CURRENT_INSN_toregexp 1
675
- #define INSN_IS_SC() 0
676
- #define INSN_LABEL(lab) LABEL_toregexp_##lab
677
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
678
- COLLECT_USAGE_INSN(BIN(toregexp));
679
- COLLECT_USAGE_OPERAND(BIN(toregexp), 0, opt);
680
- COLLECT_USAGE_OPERAND(BIN(toregexp), 1, cnt);
681
- {
682
- #line 440 "insns.def"
683
- VALUE rb_reg_new_ary(VALUE ary, int options);
684
- VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *);
685
- const VALUE ary = rb_ary_tmp_new_from_values(0, cnt, STACK_ADDR_FROM_TOP(cnt));
686
- POPN(cnt);
687
- val = rb_reg_new_ary(ary, (int)opt);
688
- rb_ary_clear(ary);
689
-
690
- #line 691 "vm.inc"
691
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
692
- PUSH(val);
693
- #undef CURRENT_INSN_toregexp
694
- #undef INSN_IS_SC
695
- #undef INSN_LABEL
696
- #undef LABEL_IS_SC
697
- END_INSN(toregexp);}}}
698
- INSN_ENTRY(intern){START_OF_ORIGINAL_INSN(intern);
699
- {
700
- VALUE sym;
701
-
702
- VALUE str = TOPN(0);
703
- DEBUG_ENTER_INSN("intern");
704
- ADD_PC(1+0);
705
- PREFETCH(GET_PC());
706
- POPN(1);
707
- #define CURRENT_INSN_intern 1
708
- #define INSN_IS_SC() 0
709
- #define INSN_LABEL(lab) LABEL_intern_##lab
710
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
711
- COLLECT_USAGE_INSN(BIN(intern));
712
- {
713
- #line 459 "insns.def"
714
- sym = rb_str_intern(str);
715
-
716
- #line 717 "vm.inc"
717
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
718
- PUSH(sym);
719
- #undef CURRENT_INSN_intern
720
- #undef INSN_IS_SC
721
- #undef INSN_LABEL
722
- #undef LABEL_IS_SC
723
- END_INSN(intern);}}}
724
- INSN_ENTRY(newarray){START_OF_ORIGINAL_INSN(newarray);
725
- {
726
- VALUE val;
727
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
728
-
729
- DEBUG_ENTER_INSN("newarray");
730
- ADD_PC(1+1);
731
- PREFETCH(GET_PC());
732
- #define CURRENT_INSN_newarray 1
733
- #define INSN_IS_SC() 0
734
- #define INSN_LABEL(lab) LABEL_newarray_##lab
735
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
736
- COLLECT_USAGE_INSN(BIN(newarray));
737
- COLLECT_USAGE_OPERAND(BIN(newarray), 0, num);
738
- {
739
- #line 473 "insns.def"
740
- val = rb_ary_new4(num, STACK_ADDR_FROM_TOP(num));
741
- POPN(num);
742
-
743
- #line 744 "vm.inc"
744
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
745
- PUSH(val);
746
- #undef CURRENT_INSN_newarray
747
- #undef INSN_IS_SC
748
- #undef INSN_LABEL
749
- #undef LABEL_IS_SC
750
- END_INSN(newarray);}}}
751
- INSN_ENTRY(duparray){START_OF_ORIGINAL_INSN(duparray);
752
- {
753
- VALUE val;
754
- VALUE ary = (VALUE)GET_OPERAND(1);
755
-
756
- DEBUG_ENTER_INSN("duparray");
757
- ADD_PC(1+1);
758
- PREFETCH(GET_PC());
759
- #define CURRENT_INSN_duparray 1
760
- #define INSN_IS_SC() 0
761
- #define INSN_LABEL(lab) LABEL_duparray_##lab
762
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
763
- COLLECT_USAGE_INSN(BIN(duparray));
764
- COLLECT_USAGE_OPERAND(BIN(duparray), 0, ary);
765
- {
766
- #line 488 "insns.def"
767
- val = rb_ary_resurrect(ary);
768
-
769
- #line 770 "vm.inc"
770
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
771
- PUSH(val);
772
- #undef CURRENT_INSN_duparray
773
- #undef INSN_IS_SC
774
- #undef INSN_LABEL
775
- #undef LABEL_IS_SC
776
- END_INSN(duparray);}}}
777
- INSN_ENTRY(expandarray){START_OF_ORIGINAL_INSN(expandarray);
778
- {
779
- rb_num_t flag = (rb_num_t)GET_OPERAND(2);
780
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
781
- VALUE ary = TOPN(0);
782
- DEBUG_ENTER_INSN("expandarray");
783
- ADD_PC(1+2);
784
- PREFETCH(GET_PC());
785
- POPN(1);
786
- #define CURRENT_INSN_expandarray 1
787
- #define INSN_IS_SC() 0
788
- #define INSN_LABEL(lab) LABEL_expandarray_##lab
789
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
790
- COLLECT_USAGE_INSN(BIN(expandarray));
791
- COLLECT_USAGE_OPERAND(BIN(expandarray), 0, num);
792
- COLLECT_USAGE_OPERAND(BIN(expandarray), 1, flag);
793
- {
794
- #line 516 "insns.def"
795
- vm_expandarray(GET_CFP(), ary, num, (int)flag);
796
-
797
- #line 798 "vm.inc"
798
- #undef CURRENT_INSN_expandarray
799
- #undef INSN_IS_SC
800
- #undef INSN_LABEL
801
- #undef LABEL_IS_SC
802
- END_INSN(expandarray);}}}
803
- INSN_ENTRY(concatarray){START_OF_ORIGINAL_INSN(concatarray);
804
- {
805
- VALUE ary;
806
-
807
- VALUE ary1 = TOPN(1);
808
- VALUE ary2 = TOPN(0);
809
- DEBUG_ENTER_INSN("concatarray");
810
- ADD_PC(1+0);
811
- PREFETCH(GET_PC());
812
- POPN(2);
813
- #define CURRENT_INSN_concatarray 1
814
- #define INSN_IS_SC() 0
815
- #define INSN_LABEL(lab) LABEL_concatarray_##lab
816
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
817
- COLLECT_USAGE_INSN(BIN(concatarray));
818
- {
819
- #line 530 "insns.def"
820
- ary = vm_concat_array(ary1, ary2);
821
-
822
- #line 823 "vm.inc"
823
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
824
- PUSH(ary);
825
- #undef CURRENT_INSN_concatarray
826
- #undef INSN_IS_SC
827
- #undef INSN_LABEL
828
- #undef LABEL_IS_SC
829
- END_INSN(concatarray);}}}
830
- INSN_ENTRY(splatarray){START_OF_ORIGINAL_INSN(splatarray);
831
- {
832
- VALUE obj;
833
- VALUE flag = (VALUE)GET_OPERAND(1);
834
- VALUE ary = TOPN(0);
835
- DEBUG_ENTER_INSN("splatarray");
836
- ADD_PC(1+1);
837
- PREFETCH(GET_PC());
838
- POPN(1);
839
- #define CURRENT_INSN_splatarray 1
840
- #define INSN_IS_SC() 0
841
- #define INSN_LABEL(lab) LABEL_splatarray_##lab
842
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
843
- COLLECT_USAGE_INSN(BIN(splatarray));
844
- COLLECT_USAGE_OPERAND(BIN(splatarray), 0, flag);
845
- {
846
- #line 544 "insns.def"
847
- obj = vm_splat_array(flag, ary);
848
-
849
- #line 850 "vm.inc"
850
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
851
- PUSH(obj);
852
- #undef CURRENT_INSN_splatarray
853
- #undef INSN_IS_SC
854
- #undef INSN_LABEL
855
- #undef LABEL_IS_SC
856
- END_INSN(splatarray);}}}
857
- INSN_ENTRY(newhash){START_OF_ORIGINAL_INSN(newhash);
858
- {
859
- VALUE val;
860
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
861
-
862
- DEBUG_ENTER_INSN("newhash");
863
- ADD_PC(1+1);
864
- PREFETCH(GET_PC());
865
- #define CURRENT_INSN_newhash 1
866
- #define INSN_IS_SC() 0
867
- #define INSN_LABEL(lab) LABEL_newhash_##lab
868
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
869
- COLLECT_USAGE_INSN(BIN(newhash));
870
- COLLECT_USAGE_OPERAND(BIN(newhash), 0, num);
871
- {
872
- #line 559 "insns.def"
873
- RUBY_DTRACE_CREATE_HOOK(HASH, num);
874
-
875
- val = rb_hash_new_with_size(num / 2);
876
-
877
- if (num) {
878
- rb_hash_bulk_insert(num, STACK_ADDR_FROM_TOP(num), val);
879
- }
880
- POPN(num);
881
-
882
- #line 883 "vm.inc"
883
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
884
- PUSH(val);
885
- #undef CURRENT_INSN_newhash
886
- #undef INSN_IS_SC
887
- #undef INSN_LABEL
888
- #undef LABEL_IS_SC
889
- END_INSN(newhash);}}}
890
- INSN_ENTRY(newrange){START_OF_ORIGINAL_INSN(newrange);
891
- {
892
- VALUE val;
893
- rb_num_t flag = (rb_num_t)GET_OPERAND(1);
894
- VALUE low = TOPN(1);
895
- VALUE high = TOPN(0);
896
- DEBUG_ENTER_INSN("newrange");
897
- ADD_PC(1+1);
898
- PREFETCH(GET_PC());
899
- POPN(2);
900
- #define CURRENT_INSN_newrange 1
901
- #define INSN_IS_SC() 0
902
- #define INSN_LABEL(lab) LABEL_newrange_##lab
903
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
904
- COLLECT_USAGE_INSN(BIN(newrange));
905
- COLLECT_USAGE_OPERAND(BIN(newrange), 0, flag);
906
- {
907
- #line 580 "insns.def"
908
- val = rb_range_new(low, high, (int)flag);
909
-
910
- #line 911 "vm.inc"
911
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
912
- PUSH(val);
913
- #undef CURRENT_INSN_newrange
914
- #undef INSN_IS_SC
915
- #undef INSN_LABEL
916
- #undef LABEL_IS_SC
917
- END_INSN(newrange);}}}
918
- INSN_ENTRY(pop){START_OF_ORIGINAL_INSN(pop);
919
- {
920
-
921
- VALUE val = TOPN(0);
922
- DEBUG_ENTER_INSN("pop");
923
- ADD_PC(1+0);
924
- PREFETCH(GET_PC());
925
- POPN(1);
926
- #define CURRENT_INSN_pop 1
927
- #define INSN_IS_SC() 0
928
- #define INSN_LABEL(lab) LABEL_pop_##lab
929
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
930
- COLLECT_USAGE_INSN(BIN(pop));
931
- {
932
- #line 598 "insns.def"
933
- (void)val;
934
- /* none */
935
-
936
- #line 937 "vm.inc"
937
- #undef CURRENT_INSN_pop
938
- #undef INSN_IS_SC
939
- #undef INSN_LABEL
940
- #undef LABEL_IS_SC
941
- END_INSN(pop);}}}
942
- INSN_ENTRY(dup){START_OF_ORIGINAL_INSN(dup);
943
- {
944
- VALUE val2;
945
- VALUE val1;
946
-
947
- VALUE val = TOPN(0);
948
- DEBUG_ENTER_INSN("dup");
949
- ADD_PC(1+0);
950
- PREFETCH(GET_PC());
951
- POPN(1);
952
- #define CURRENT_INSN_dup 1
953
- #define INSN_IS_SC() 0
954
- #define INSN_LABEL(lab) LABEL_dup_##lab
955
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
956
- COLLECT_USAGE_INSN(BIN(dup));
957
- {
958
- #line 613 "insns.def"
959
- val1 = val2 = val;
960
-
961
- #line 962 "vm.inc"
962
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 2);
963
- PUSH(val1);
964
- PUSH(val2);
965
- #undef CURRENT_INSN_dup
966
- #undef INSN_IS_SC
967
- #undef INSN_LABEL
968
- #undef LABEL_IS_SC
969
- END_INSN(dup);}}}
970
- INSN_ENTRY(dupn){START_OF_ORIGINAL_INSN(dupn);
971
- {
972
- rb_num_t n = (rb_num_t)GET_OPERAND(1);
973
-
974
- DEBUG_ENTER_INSN("dupn");
975
- ADD_PC(1+1);
976
- PREFETCH(GET_PC());
977
- #define CURRENT_INSN_dupn 1
978
- #define INSN_IS_SC() 0
979
- #define INSN_LABEL(lab) LABEL_dupn_##lab
980
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
981
- COLLECT_USAGE_INSN(BIN(dupn));
982
- COLLECT_USAGE_OPERAND(BIN(dupn), 0, n);
983
- {
984
- #line 627 "insns.def"
985
- void *dst = GET_SP();
986
- void *src = STACK_ADDR_FROM_TOP(n);
987
-
988
- INC_SP(n); /* alloca */
989
- MEMCPY(dst, src, VALUE, n);
990
-
991
- #line 992 "vm.inc"
992
- #undef CURRENT_INSN_dupn
993
- #undef INSN_IS_SC
994
- #undef INSN_LABEL
995
- #undef LABEL_IS_SC
996
- END_INSN(dupn);}}}
997
- INSN_ENTRY(swap){START_OF_ORIGINAL_INSN(swap);
998
- {
999
-
1000
- VALUE val = TOPN(1);
1001
- VALUE obj = TOPN(0);
1002
- DEBUG_ENTER_INSN("swap");
1003
- ADD_PC(1+0);
1004
- PREFETCH(GET_PC());
1005
- POPN(2);
1006
- #define CURRENT_INSN_swap 1
1007
- #define INSN_IS_SC() 0
1008
- #define INSN_LABEL(lab) LABEL_swap_##lab
1009
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1010
- COLLECT_USAGE_INSN(BIN(swap));
1011
- {
1012
- #line 646 "insns.def"
1013
- /* none */
1014
-
1015
- #line 1016 "vm.inc"
1016
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 2);
1017
- PUSH(obj);
1018
- PUSH(val);
1019
- #undef CURRENT_INSN_swap
1020
- #undef INSN_IS_SC
1021
- #undef INSN_LABEL
1022
- #undef LABEL_IS_SC
1023
- END_INSN(swap);}}}
1024
- INSN_ENTRY(reverse){START_OF_ORIGINAL_INSN(reverse);
1025
- {
1026
- rb_num_t n = (rb_num_t)GET_OPERAND(1);
1027
-
1028
- DEBUG_ENTER_INSN("reverse");
1029
- ADD_PC(1+1);
1030
- PREFETCH(GET_PC());
1031
- #define CURRENT_INSN_reverse 1
1032
- #define INSN_IS_SC() 0
1033
- #define INSN_LABEL(lab) LABEL_reverse_##lab
1034
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1035
- COLLECT_USAGE_INSN(BIN(reverse));
1036
- COLLECT_USAGE_OPERAND(BIN(reverse), 0, n);
1037
- {
1038
- #line 660 "insns.def"
1039
- rb_num_t i;
1040
- VALUE *sp = STACK_ADDR_FROM_TOP(n);
1041
-
1042
- for (i=0; i<n/2; i++) {
1043
- VALUE v0 = sp[i];
1044
- VALUE v1 = TOPN(i);
1045
- sp[i] = v1;
1046
- TOPN(i) = v0;
1047
- }
1048
-
1049
- #line 1050 "vm.inc"
1050
- #undef CURRENT_INSN_reverse
1051
- #undef INSN_IS_SC
1052
- #undef INSN_LABEL
1053
- #undef LABEL_IS_SC
1054
- END_INSN(reverse);}}}
1055
- INSN_ENTRY(reput){START_OF_ORIGINAL_INSN(reput);
1056
- {
1057
-
1058
- VALUE val = TOPN(0);
1059
- DEBUG_ENTER_INSN("reput");
1060
- ADD_PC(1+0);
1061
- PREFETCH(GET_PC());
1062
- POPN(1);
1063
- #define CURRENT_INSN_reput 1
1064
- #define INSN_IS_SC() 0
1065
- #define INSN_LABEL(lab) LABEL_reput_##lab
1066
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1067
- COLLECT_USAGE_INSN(BIN(reput));
1068
- {
1069
- #line 682 "insns.def"
1070
- /* none */
1071
-
1072
- #line 1073 "vm.inc"
1073
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1074
- PUSH(val);
1075
- #undef CURRENT_INSN_reput
1076
- #undef INSN_IS_SC
1077
- #undef INSN_LABEL
1078
- #undef LABEL_IS_SC
1079
- END_INSN(reput);}}}
1080
- INSN_ENTRY(topn){START_OF_ORIGINAL_INSN(topn);
1081
- {
1082
- VALUE val;
1083
- rb_num_t n = (rb_num_t)GET_OPERAND(1);
1084
-
1085
- DEBUG_ENTER_INSN("topn");
1086
- ADD_PC(1+1);
1087
- PREFETCH(GET_PC());
1088
- #define CURRENT_INSN_topn 1
1089
- #define INSN_IS_SC() 0
1090
- #define INSN_LABEL(lab) LABEL_topn_##lab
1091
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1092
- COLLECT_USAGE_INSN(BIN(topn));
1093
- COLLECT_USAGE_OPERAND(BIN(topn), 0, n);
1094
- {
1095
- #line 696 "insns.def"
1096
- val = TOPN(n);
1097
-
1098
- #line 1099 "vm.inc"
1099
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1100
- PUSH(val);
1101
- #undef CURRENT_INSN_topn
1102
- #undef INSN_IS_SC
1103
- #undef INSN_LABEL
1104
- #undef LABEL_IS_SC
1105
- END_INSN(topn);}}}
1106
- INSN_ENTRY(setn){START_OF_ORIGINAL_INSN(setn);
1107
- {
1108
- rb_num_t n = (rb_num_t)GET_OPERAND(1);
1109
- VALUE val = TOPN(0);
1110
- DEBUG_ENTER_INSN("setn");
1111
- ADD_PC(1+1);
1112
- PREFETCH(GET_PC());
1113
- POPN(1);
1114
- #define CURRENT_INSN_setn 1
1115
- #define INSN_IS_SC() 0
1116
- #define INSN_LABEL(lab) LABEL_setn_##lab
1117
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1118
- COLLECT_USAGE_INSN(BIN(setn));
1119
- COLLECT_USAGE_OPERAND(BIN(setn), 0, n);
1120
- {
1121
- #line 710 "insns.def"
1122
- TOPN(n-1) = val;
1123
-
1124
- #line 1125 "vm.inc"
1125
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1126
- PUSH(val);
1127
- #undef CURRENT_INSN_setn
1128
- #undef INSN_IS_SC
1129
- #undef INSN_LABEL
1130
- #undef LABEL_IS_SC
1131
- END_INSN(setn);}}}
1132
- INSN_ENTRY(adjuststack){START_OF_ORIGINAL_INSN(adjuststack);
1133
- {
1134
- rb_num_t n = (rb_num_t)GET_OPERAND(1);
1135
-
1136
- DEBUG_ENTER_INSN("adjuststack");
1137
- ADD_PC(1+1);
1138
- PREFETCH(GET_PC());
1139
- #define CURRENT_INSN_adjuststack 1
1140
- #define INSN_IS_SC() 0
1141
- #define INSN_LABEL(lab) LABEL_adjuststack_##lab
1142
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1143
- COLLECT_USAGE_INSN(BIN(adjuststack));
1144
- COLLECT_USAGE_OPERAND(BIN(adjuststack), 0, n);
1145
- {
1146
- #line 724 "insns.def"
1147
- DEC_SP(n);
1148
-
1149
- #line 1150 "vm.inc"
1150
- #undef CURRENT_INSN_adjuststack
1151
- #undef INSN_IS_SC
1152
- #undef INSN_LABEL
1153
- #undef LABEL_IS_SC
1154
- END_INSN(adjuststack);}}}
1155
- INSN_ENTRY(defined){START_OF_ORIGINAL_INSN(defined);
1156
- {
1157
- VALUE val;
1158
- VALUE needstr = (VALUE)GET_OPERAND(3);
1159
- VALUE obj = (VALUE)GET_OPERAND(2);
1160
- rb_num_t op_type = (rb_num_t)GET_OPERAND(1);
1161
- VALUE v = TOPN(0);
1162
- DEBUG_ENTER_INSN("defined");
1163
- ADD_PC(1+3);
1164
- PREFETCH(GET_PC());
1165
- POPN(1);
1166
- #define CURRENT_INSN_defined 1
1167
- #define INSN_IS_SC() 0
1168
- #define INSN_LABEL(lab) LABEL_defined_##lab
1169
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1170
- COLLECT_USAGE_INSN(BIN(defined));
1171
- COLLECT_USAGE_OPERAND(BIN(defined), 0, op_type);
1172
- COLLECT_USAGE_OPERAND(BIN(defined), 1, obj);
1173
- COLLECT_USAGE_OPERAND(BIN(defined), 2, needstr);
1174
- {
1175
- #line 743 "insns.def"
1176
- val = vm_defined(ec, GET_CFP(), op_type, obj, needstr, v);
1177
-
1178
- #line 1179 "vm.inc"
1179
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1180
- PUSH(val);
1181
- #undef CURRENT_INSN_defined
1182
- #undef INSN_IS_SC
1183
- #undef INSN_LABEL
1184
- #undef LABEL_IS_SC
1185
- END_INSN(defined);}}}
1186
- INSN_ENTRY(checkmatch){START_OF_ORIGINAL_INSN(checkmatch);
1187
- {
1188
- VALUE result;
1189
- rb_num_t flag = (rb_num_t)GET_OPERAND(1);
1190
- VALUE target = TOPN(1);
1191
- VALUE pattern = TOPN(0);
1192
- DEBUG_ENTER_INSN("checkmatch");
1193
- ADD_PC(1+1);
1194
- PREFETCH(GET_PC());
1195
- POPN(2);
1196
- #define CURRENT_INSN_checkmatch 1
1197
- #define INSN_IS_SC() 0
1198
- #define INSN_LABEL(lab) LABEL_checkmatch_##lab
1199
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1200
- COLLECT_USAGE_INSN(BIN(checkmatch));
1201
- COLLECT_USAGE_OPERAND(BIN(checkmatch), 0, flag);
1202
- {
1203
- #line 762 "insns.def"
1204
- result = vm_check_match(ec, target, pattern, flag);
1205
-
1206
- #line 1207 "vm.inc"
1207
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1208
- PUSH(result);
1209
- #undef CURRENT_INSN_checkmatch
1210
- #undef INSN_IS_SC
1211
- #undef INSN_LABEL
1212
- #undef LABEL_IS_SC
1213
- END_INSN(checkmatch);}}}
1214
- INSN_ENTRY(checkkeyword){START_OF_ORIGINAL_INSN(checkkeyword);
1215
- {
1216
- VALUE ret;
1217
- lindex_t keyword_index = (lindex_t)GET_OPERAND(2);
1218
- lindex_t kw_bits_index = (lindex_t)GET_OPERAND(1);
1219
-
1220
- DEBUG_ENTER_INSN("checkkeyword");
1221
- ADD_PC(1+2);
1222
- PREFETCH(GET_PC());
1223
- #define CURRENT_INSN_checkkeyword 1
1224
- #define INSN_IS_SC() 0
1225
- #define INSN_LABEL(lab) LABEL_checkkeyword_##lab
1226
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1227
- COLLECT_USAGE_INSN(BIN(checkkeyword));
1228
- COLLECT_USAGE_OPERAND(BIN(checkkeyword), 0, kw_bits_index);
1229
- COLLECT_USAGE_OPERAND(BIN(checkkeyword), 1, keyword_index);
1230
- {
1231
- #line 776 "insns.def"
1232
- ret = vm_check_keyword(kw_bits_index, keyword_index, GET_EP());
1233
-
1234
- #line 1235 "vm.inc"
1235
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1236
- PUSH(ret);
1237
- #undef CURRENT_INSN_checkkeyword
1238
- #undef INSN_IS_SC
1239
- #undef INSN_LABEL
1240
- #undef LABEL_IS_SC
1241
- END_INSN(checkkeyword);}}}
1242
- INSN_ENTRY(tracecoverage){START_OF_ORIGINAL_INSN(tracecoverage);
1243
- {
1244
- VALUE data = (VALUE)GET_OPERAND(2);
1245
- rb_num_t nf = (rb_num_t)GET_OPERAND(1);
1246
-
1247
- DEBUG_ENTER_INSN("tracecoverage");
1248
- ADD_PC(1+2);
1249
- PREFETCH(GET_PC());
1250
- #define CURRENT_INSN_tracecoverage 1
1251
- #define INSN_IS_SC() 0
1252
- #define INSN_LABEL(lab) LABEL_tracecoverage_##lab
1253
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1254
- COLLECT_USAGE_INSN(BIN(tracecoverage));
1255
- COLLECT_USAGE_OPERAND(BIN(tracecoverage), 0, nf);
1256
- COLLECT_USAGE_OPERAND(BIN(tracecoverage), 1, data);
1257
- {
1258
- #line 790 "insns.def"
1259
- rb_event_flag_t flag = (rb_event_flag_t)nf;
1260
-
1261
- vm_dtrace(flag, ec);
1262
- EXEC_EVENT_HOOK(ec, flag, GET_SELF(), 0, 0, 0 /* id and klass are resolved at callee */, data);
1263
-
1264
- #line 1265 "vm.inc"
1265
- #undef CURRENT_INSN_tracecoverage
1266
- #undef INSN_IS_SC
1267
- #undef INSN_LABEL
1268
- #undef LABEL_IS_SC
1269
- END_INSN(tracecoverage);}}}
1270
- INSN_ENTRY(defineclass){START_OF_ORIGINAL_INSN(defineclass);
1271
- {
1272
- VALUE val;
1273
- rb_num_t flags = (rb_num_t)GET_OPERAND(3);
1274
- ISEQ class_iseq = (ISEQ)GET_OPERAND(2);
1275
- ID id = (ID)GET_OPERAND(1);
1276
- VALUE cbase = TOPN(1);
1277
- VALUE super = TOPN(0);
1278
- DEBUG_ENTER_INSN("defineclass");
1279
- ADD_PC(1+3);
1280
- PREFETCH(GET_PC());
1281
- POPN(2);
1282
- #define CURRENT_INSN_defineclass 1
1283
- #define INSN_IS_SC() 0
1284
- #define INSN_LABEL(lab) LABEL_defineclass_##lab
1285
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1286
- COLLECT_USAGE_INSN(BIN(defineclass));
1287
- COLLECT_USAGE_OPERAND(BIN(defineclass), 0, id);
1288
- COLLECT_USAGE_OPERAND(BIN(defineclass), 1, class_iseq);
1289
- COLLECT_USAGE_OPERAND(BIN(defineclass), 2, flags);
1290
- {
1291
- #line 815 "insns.def"
1292
- VALUE klass = vm_find_or_create_class_by_id(id, flags, cbase, super);
1293
-
1294
- rb_iseq_check(class_iseq);
1295
-
1296
- /* enter scope */
1297
- vm_push_frame(ec, class_iseq, VM_FRAME_MAGIC_CLASS | VM_ENV_FLAG_LOCAL, klass,
1298
- GET_BLOCK_HANDLER(),
1299
- (VALUE)vm_cref_push(ec, klass, NULL, FALSE),
1300
- class_iseq->body->iseq_encoded, GET_SP(),
1301
- class_iseq->body->local_table_size,
1302
- class_iseq->body->stack_max);
1303
- RESTORE_REGS();
1304
- NEXT_INSN();
1305
-
1306
- #line 1307 "vm.inc"
1307
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1308
- PUSH(val);
1309
- #undef CURRENT_INSN_defineclass
1310
- #undef INSN_IS_SC
1311
- #undef INSN_LABEL
1312
- #undef LABEL_IS_SC
1313
- END_INSN(defineclass);}}}
1314
- INSN_ENTRY(send){START_OF_ORIGINAL_INSN(send);
1315
- {
1316
- VALUE val;
1317
- ISEQ blockiseq = (ISEQ)GET_OPERAND(3);
1318
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
1319
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1320
-
1321
- DEBUG_ENTER_INSN("send");
1322
- ADD_PC(1+3);
1323
- PREFETCH(GET_PC());
1324
- #define CURRENT_INSN_send 1
1325
- #define INSN_IS_SC() 0
1326
- #define INSN_LABEL(lab) LABEL_send_##lab
1327
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1328
- COLLECT_USAGE_INSN(BIN(send));
1329
- COLLECT_USAGE_OPERAND(BIN(send), 0, ci);
1330
- COLLECT_USAGE_OPERAND(BIN(send), 1, cc);
1331
- COLLECT_USAGE_OPERAND(BIN(send), 2, blockiseq);
1332
- {
1333
- #line 846 "insns.def"
1334
- struct rb_calling_info calling;
1335
-
1336
- vm_caller_setup_arg_block(ec, reg_cfp, &calling, ci, blockiseq, FALSE);
1337
- vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
1338
- CALL_METHOD(&calling, ci, cc);
1339
-
1340
- #line 1341 "vm.inc"
1341
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1342
- PUSH(val);
1343
- #undef CURRENT_INSN_send
1344
- #undef INSN_IS_SC
1345
- #undef INSN_LABEL
1346
- #undef LABEL_IS_SC
1347
- END_INSN(send);}}}
1348
- INSN_ENTRY(opt_str_freeze){START_OF_ORIGINAL_INSN(opt_str_freeze);
1349
- {
1350
- VALUE val;
1351
- VALUE str = (VALUE)GET_OPERAND(1);
1352
-
1353
- DEBUG_ENTER_INSN("opt_str_freeze");
1354
- ADD_PC(1+1);
1355
- PREFETCH(GET_PC());
1356
- #define CURRENT_INSN_opt_str_freeze 1
1357
- #define INSN_IS_SC() 0
1358
- #define INSN_LABEL(lab) LABEL_opt_str_freeze_##lab
1359
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1360
- COLLECT_USAGE_INSN(BIN(opt_str_freeze));
1361
- COLLECT_USAGE_OPERAND(BIN(opt_str_freeze), 0, str);
1362
- {
1363
- #line 859 "insns.def"
1364
- if (BASIC_OP_UNREDEFINED_P(BOP_FREEZE, STRING_REDEFINED_OP_FLAG)) {
1365
- val = str;
1366
- }
1367
- else {
1368
- val = rb_funcall(rb_str_resurrect(str), idFreeze, 0);
1369
- }
1370
-
1371
- #line 1372 "vm.inc"
1372
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1373
- PUSH(val);
1374
- #undef CURRENT_INSN_opt_str_freeze
1375
- #undef INSN_IS_SC
1376
- #undef INSN_LABEL
1377
- #undef LABEL_IS_SC
1378
- END_INSN(opt_str_freeze);}}}
1379
- INSN_ENTRY(opt_str_uminus){START_OF_ORIGINAL_INSN(opt_str_uminus);
1380
- {
1381
- VALUE val;
1382
- VALUE str = (VALUE)GET_OPERAND(1);
1383
-
1384
- DEBUG_ENTER_INSN("opt_str_uminus");
1385
- ADD_PC(1+1);
1386
- PREFETCH(GET_PC());
1387
- #define CURRENT_INSN_opt_str_uminus 1
1388
- #define INSN_IS_SC() 0
1389
- #define INSN_LABEL(lab) LABEL_opt_str_uminus_##lab
1390
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1391
- COLLECT_USAGE_INSN(BIN(opt_str_uminus));
1392
- COLLECT_USAGE_OPERAND(BIN(opt_str_uminus), 0, str);
1393
- {
1394
- #line 873 "insns.def"
1395
- if (BASIC_OP_UNREDEFINED_P(BOP_UMINUS, STRING_REDEFINED_OP_FLAG)) {
1396
- val = str;
1397
- }
1398
- else {
1399
- val = rb_funcall(rb_str_resurrect(str), idUMinus, 0);
1400
- }
1401
-
1402
- #line 1403 "vm.inc"
1403
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1404
- PUSH(val);
1405
- #undef CURRENT_INSN_opt_str_uminus
1406
- #undef INSN_IS_SC
1407
- #undef INSN_LABEL
1408
- #undef LABEL_IS_SC
1409
- END_INSN(opt_str_uminus);}}}
1410
- INSN_ENTRY(opt_newarray_max){START_OF_ORIGINAL_INSN(opt_newarray_max);
1411
- {
1412
- VALUE val;
1413
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
1414
-
1415
- DEBUG_ENTER_INSN("opt_newarray_max");
1416
- ADD_PC(1+1);
1417
- PREFETCH(GET_PC());
1418
- #define CURRENT_INSN_opt_newarray_max 1
1419
- #define INSN_IS_SC() 0
1420
- #define INSN_LABEL(lab) LABEL_opt_newarray_max_##lab
1421
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1422
- COLLECT_USAGE_INSN(BIN(opt_newarray_max));
1423
- COLLECT_USAGE_OPERAND(BIN(opt_newarray_max), 0, num);
1424
- {
1425
- #line 887 "insns.def"
1426
- val = vm_opt_newarray_max(num, STACK_ADDR_FROM_TOP(num));
1427
- POPN(num);
1428
-
1429
- #line 1430 "vm.inc"
1430
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1431
- PUSH(val);
1432
- #undef CURRENT_INSN_opt_newarray_max
1433
- #undef INSN_IS_SC
1434
- #undef INSN_LABEL
1435
- #undef LABEL_IS_SC
1436
- END_INSN(opt_newarray_max);}}}
1437
- INSN_ENTRY(opt_newarray_min){START_OF_ORIGINAL_INSN(opt_newarray_min);
1438
- {
1439
- VALUE val;
1440
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
1441
-
1442
- DEBUG_ENTER_INSN("opt_newarray_min");
1443
- ADD_PC(1+1);
1444
- PREFETCH(GET_PC());
1445
- #define CURRENT_INSN_opt_newarray_min 1
1446
- #define INSN_IS_SC() 0
1447
- #define INSN_LABEL(lab) LABEL_opt_newarray_min_##lab
1448
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1449
- COLLECT_USAGE_INSN(BIN(opt_newarray_min));
1450
- COLLECT_USAGE_OPERAND(BIN(opt_newarray_min), 0, num);
1451
- {
1452
- #line 897 "insns.def"
1453
- val = vm_opt_newarray_min(num, STACK_ADDR_FROM_TOP(num));
1454
- POPN(num);
1455
-
1456
- #line 1457 "vm.inc"
1457
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1458
- PUSH(val);
1459
- #undef CURRENT_INSN_opt_newarray_min
1460
- #undef INSN_IS_SC
1461
- #undef INSN_LABEL
1462
- #undef LABEL_IS_SC
1463
- END_INSN(opt_newarray_min);}}}
1464
- INSN_ENTRY(opt_send_without_block){START_OF_ORIGINAL_INSN(opt_send_without_block);
1465
- {
1466
- VALUE val;
1467
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
1468
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1469
-
1470
- DEBUG_ENTER_INSN("opt_send_without_block");
1471
- ADD_PC(1+2);
1472
- PREFETCH(GET_PC());
1473
- #define CURRENT_INSN_opt_send_without_block 1
1474
- #define INSN_IS_SC() 0
1475
- #define INSN_LABEL(lab) LABEL_opt_send_without_block_##lab
1476
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1477
- COLLECT_USAGE_INSN(BIN(opt_send_without_block));
1478
- COLLECT_USAGE_OPERAND(BIN(opt_send_without_block), 0, ci);
1479
- COLLECT_USAGE_OPERAND(BIN(opt_send_without_block), 1, cc);
1480
- {
1481
- #line 912 "insns.def"
1482
- struct rb_calling_info calling;
1483
- calling.block_handler = VM_BLOCK_HANDLER_NONE;
1484
- vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
1485
- CALL_METHOD(&calling, ci, cc);
1486
-
1487
- #line 1488 "vm.inc"
1488
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1489
- PUSH(val);
1490
- #undef CURRENT_INSN_opt_send_without_block
1491
- #undef INSN_IS_SC
1492
- #undef INSN_LABEL
1493
- #undef LABEL_IS_SC
1494
- END_INSN(opt_send_without_block);}}}
1495
- INSN_ENTRY(invokesuper){START_OF_ORIGINAL_INSN(invokesuper);
1496
- {
1497
- VALUE val;
1498
- ISEQ blockiseq = (ISEQ)GET_OPERAND(3);
1499
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
1500
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1501
-
1502
- DEBUG_ENTER_INSN("invokesuper");
1503
- ADD_PC(1+3);
1504
- PREFETCH(GET_PC());
1505
- #define CURRENT_INSN_invokesuper 1
1506
- #define INSN_IS_SC() 0
1507
- #define INSN_LABEL(lab) LABEL_invokesuper_##lab
1508
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1509
- COLLECT_USAGE_INSN(BIN(invokesuper));
1510
- COLLECT_USAGE_OPERAND(BIN(invokesuper), 0, ci);
1511
- COLLECT_USAGE_OPERAND(BIN(invokesuper), 1, cc);
1512
- COLLECT_USAGE_OPERAND(BIN(invokesuper), 2, blockiseq);
1513
- {
1514
- #line 929 "insns.def"
1515
- struct rb_calling_info calling;
1516
- calling.argc = ci->orig_argc;
1517
-
1518
- vm_caller_setup_arg_block(ec, reg_cfp, &calling, ci, blockiseq, TRUE);
1519
- calling.recv = GET_SELF();
1520
- vm_search_super_method(ec, GET_CFP(), &calling, ci, cc);
1521
- CALL_METHOD(&calling, ci, cc);
1522
-
1523
- #line 1524 "vm.inc"
1524
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1525
- PUSH(val);
1526
- #undef CURRENT_INSN_invokesuper
1527
- #undef INSN_IS_SC
1528
- #undef INSN_LABEL
1529
- #undef LABEL_IS_SC
1530
- END_INSN(invokesuper);}}}
1531
- INSN_ENTRY(invokeblock){START_OF_ORIGINAL_INSN(invokeblock);
1532
- {
1533
- VALUE val;
1534
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1535
-
1536
- DEBUG_ENTER_INSN("invokeblock");
1537
- ADD_PC(1+1);
1538
- PREFETCH(GET_PC());
1539
- #define CURRENT_INSN_invokeblock 1
1540
- #define INSN_IS_SC() 0
1541
- #define INSN_LABEL(lab) LABEL_invokeblock_##lab
1542
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1543
- COLLECT_USAGE_INSN(BIN(invokeblock));
1544
- COLLECT_USAGE_OPERAND(BIN(invokeblock), 0, ci);
1545
- {
1546
- #line 949 "insns.def"
1547
- struct rb_calling_info calling;
1548
- calling.argc = ci->orig_argc;
1549
- calling.block_handler = VM_BLOCK_HANDLER_NONE;
1550
- calling.recv = GET_SELF();
1551
-
1552
- val = vm_invoke_block(ec, GET_CFP(), &calling, ci);
1553
- if (val == Qundef) {
1554
- RESTORE_REGS();
1555
- NEXT_INSN();
1556
- }
1557
-
1558
- #line 1559 "vm.inc"
1559
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1560
- PUSH(val);
1561
- #undef CURRENT_INSN_invokeblock
1562
- #undef INSN_IS_SC
1563
- #undef INSN_LABEL
1564
- #undef LABEL_IS_SC
1565
- END_INSN(invokeblock);}}}
1566
- INSN_ENTRY(leave){START_OF_ORIGINAL_INSN(leave);
1567
- {
1568
-
1569
- VALUE val = TOPN(0);
1570
- DEBUG_ENTER_INSN("leave");
1571
- ADD_PC(1+0);
1572
- PREFETCH(GET_PC());
1573
- POPN(1);
1574
- #define CURRENT_INSN_leave 1
1575
- #define INSN_IS_SC() 0
1576
- #define INSN_LABEL(lab) LABEL_leave_##lab
1577
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1578
- COLLECT_USAGE_INSN(BIN(leave));
1579
- {
1580
- #line 972 "insns.def"
1581
- if (OPT_CHECKED_RUN) {
1582
- const VALUE *const bp = vm_base_ptr(reg_cfp);
1583
- if (reg_cfp->sp != bp) {
1584
- vm_stack_consistency_error(ec, reg_cfp, bp);
1585
- }
1586
- }
1587
-
1588
- RUBY_VM_CHECK_INTS(ec);
1589
-
1590
- if (vm_pop_frame(ec, GET_CFP(), GET_EP())) {
1591
- #if OPT_CALL_THREADED_CODE
1592
- rb_ec_thread_ptr(ec)->retval = val;
1593
- return 0;
1594
- #else
1595
- return val;
1596
- #endif
1597
- }
1598
- else {
1599
- RESTORE_REGS();
1600
- }
1601
-
1602
- #line 1603 "vm.inc"
1603
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1604
- PUSH(val);
1605
- #undef CURRENT_INSN_leave
1606
- #undef INSN_IS_SC
1607
- #undef INSN_LABEL
1608
- #undef LABEL_IS_SC
1609
- END_INSN(leave);}}}
1610
- INSN_ENTRY(throw){START_OF_ORIGINAL_INSN(throw);
1611
- {
1612
- VALUE val;
1613
- rb_num_t throw_state = (rb_num_t)GET_OPERAND(1);
1614
- VALUE throwobj = TOPN(0);
1615
- DEBUG_ENTER_INSN("throw");
1616
- ADD_PC(1+1);
1617
- PREFETCH(GET_PC());
1618
- POPN(1);
1619
- #define CURRENT_INSN_throw 1
1620
- #define INSN_IS_SC() 0
1621
- #define INSN_LABEL(lab) LABEL_throw_##lab
1622
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1623
- COLLECT_USAGE_INSN(BIN(throw));
1624
- COLLECT_USAGE_OPERAND(BIN(throw), 0, throw_state);
1625
- {
1626
- #line 1009 "insns.def"
1627
- RUBY_VM_CHECK_INTS(ec);
1628
- val = vm_throw(ec, GET_CFP(), throw_state, throwobj);
1629
- THROW_EXCEPTION(val);
1630
- /* unreachable */
1631
-
1632
- #line 1633 "vm.inc"
1633
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1634
- PUSH(val);
1635
- #undef CURRENT_INSN_throw
1636
- #undef INSN_IS_SC
1637
- #undef INSN_LABEL
1638
- #undef LABEL_IS_SC
1639
- END_INSN(throw);}}}
1640
- INSN_ENTRY(jump){START_OF_ORIGINAL_INSN(jump);
1641
- {
1642
- OFFSET dst = (OFFSET)GET_OPERAND(1);
1643
-
1644
- DEBUG_ENTER_INSN("jump");
1645
- ADD_PC(1+1);
1646
- PREFETCH(GET_PC());
1647
- #define CURRENT_INSN_jump 1
1648
- #define INSN_IS_SC() 0
1649
- #define INSN_LABEL(lab) LABEL_jump_##lab
1650
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1651
- COLLECT_USAGE_INSN(BIN(jump));
1652
- COLLECT_USAGE_OPERAND(BIN(jump), 0, dst);
1653
- {
1654
- #line 1030 "insns.def"
1655
- RUBY_VM_CHECK_INTS(ec);
1656
- JUMP(dst);
1657
-
1658
- #line 1659 "vm.inc"
1659
- #undef CURRENT_INSN_jump
1660
- #undef INSN_IS_SC
1661
- #undef INSN_LABEL
1662
- #undef LABEL_IS_SC
1663
- END_INSN(jump);}}}
1664
- INSN_ENTRY(branchif){START_OF_ORIGINAL_INSN(branchif);
1665
- {
1666
- OFFSET dst = (OFFSET)GET_OPERAND(1);
1667
- VALUE val = TOPN(0);
1668
- DEBUG_ENTER_INSN("branchif");
1669
- ADD_PC(1+1);
1670
- PREFETCH(GET_PC());
1671
- POPN(1);
1672
- #define CURRENT_INSN_branchif 1
1673
- #define INSN_IS_SC() 0
1674
- #define INSN_LABEL(lab) LABEL_branchif_##lab
1675
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1676
- COLLECT_USAGE_INSN(BIN(branchif));
1677
- COLLECT_USAGE_OPERAND(BIN(branchif), 0, dst);
1678
- {
1679
- #line 1045 "insns.def"
1680
- if (RTEST(val)) {
1681
- RUBY_VM_CHECK_INTS(ec);
1682
- JUMP(dst);
1683
- }
1684
-
1685
- #line 1686 "vm.inc"
1686
- #undef CURRENT_INSN_branchif
1687
- #undef INSN_IS_SC
1688
- #undef INSN_LABEL
1689
- #undef LABEL_IS_SC
1690
- END_INSN(branchif);}}}
1691
- INSN_ENTRY(branchunless){START_OF_ORIGINAL_INSN(branchunless);
1692
- {
1693
- OFFSET dst = (OFFSET)GET_OPERAND(1);
1694
- VALUE val = TOPN(0);
1695
- DEBUG_ENTER_INSN("branchunless");
1696
- ADD_PC(1+1);
1697
- PREFETCH(GET_PC());
1698
- POPN(1);
1699
- #define CURRENT_INSN_branchunless 1
1700
- #define INSN_IS_SC() 0
1701
- #define INSN_LABEL(lab) LABEL_branchunless_##lab
1702
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1703
- COLLECT_USAGE_INSN(BIN(branchunless));
1704
- COLLECT_USAGE_OPERAND(BIN(branchunless), 0, dst);
1705
- {
1706
- #line 1062 "insns.def"
1707
- if (!RTEST(val)) {
1708
- RUBY_VM_CHECK_INTS(ec);
1709
- JUMP(dst);
1710
- }
1711
-
1712
- #line 1713 "vm.inc"
1713
- #undef CURRENT_INSN_branchunless
1714
- #undef INSN_IS_SC
1715
- #undef INSN_LABEL
1716
- #undef LABEL_IS_SC
1717
- END_INSN(branchunless);}}}
1718
- INSN_ENTRY(branchnil){START_OF_ORIGINAL_INSN(branchnil);
1719
- {
1720
- OFFSET dst = (OFFSET)GET_OPERAND(1);
1721
- VALUE val = TOPN(0);
1722
- DEBUG_ENTER_INSN("branchnil");
1723
- ADD_PC(1+1);
1724
- PREFETCH(GET_PC());
1725
- POPN(1);
1726
- #define CURRENT_INSN_branchnil 1
1727
- #define INSN_IS_SC() 0
1728
- #define INSN_LABEL(lab) LABEL_branchnil_##lab
1729
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1730
- COLLECT_USAGE_INSN(BIN(branchnil));
1731
- COLLECT_USAGE_OPERAND(BIN(branchnil), 0, dst);
1732
- {
1733
- #line 1079 "insns.def"
1734
- if (NIL_P(val)) {
1735
- RUBY_VM_CHECK_INTS(ec);
1736
- JUMP(dst);
1737
- }
1738
-
1739
- #line 1740 "vm.inc"
1740
- #undef CURRENT_INSN_branchnil
1741
- #undef INSN_IS_SC
1742
- #undef INSN_LABEL
1743
- #undef LABEL_IS_SC
1744
- END_INSN(branchnil);}}}
1745
- INSN_ENTRY(branchiftype){START_OF_ORIGINAL_INSN(branchiftype);
1746
- {
1747
- OFFSET dst = (OFFSET)GET_OPERAND(2);
1748
- rb_num_t type = (rb_num_t)GET_OPERAND(1);
1749
- VALUE val = TOPN(0);
1750
- DEBUG_ENTER_INSN("branchiftype");
1751
- ADD_PC(1+2);
1752
- PREFETCH(GET_PC());
1753
- POPN(1);
1754
- #define CURRENT_INSN_branchiftype 1
1755
- #define INSN_IS_SC() 0
1756
- #define INSN_LABEL(lab) LABEL_branchiftype_##lab
1757
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1758
- COLLECT_USAGE_INSN(BIN(branchiftype));
1759
- COLLECT_USAGE_OPERAND(BIN(branchiftype), 0, type);
1760
- COLLECT_USAGE_OPERAND(BIN(branchiftype), 1, dst);
1761
- {
1762
- #line 1096 "insns.def"
1763
- if (TYPE(val) == (int)type) {
1764
- RUBY_VM_CHECK_INTS(ec);
1765
- JUMP(dst);
1766
- }
1767
-
1768
- #line 1769 "vm.inc"
1769
- #undef CURRENT_INSN_branchiftype
1770
- #undef INSN_IS_SC
1771
- #undef INSN_LABEL
1772
- #undef LABEL_IS_SC
1773
- END_INSN(branchiftype);}}}
1774
- INSN_ENTRY(getinlinecache){START_OF_ORIGINAL_INSN(getinlinecache);
1775
- {
1776
- VALUE val;
1777
- IC ic = (IC)GET_OPERAND(2);
1778
- OFFSET dst = (OFFSET)GET_OPERAND(1);
1779
-
1780
- DEBUG_ENTER_INSN("getinlinecache");
1781
- ADD_PC(1+2);
1782
- PREFETCH(GET_PC());
1783
- #define CURRENT_INSN_getinlinecache 1
1784
- #define INSN_IS_SC() 0
1785
- #define INSN_LABEL(lab) LABEL_getinlinecache_##lab
1786
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1787
- COLLECT_USAGE_INSN(BIN(getinlinecache));
1788
- COLLECT_USAGE_OPERAND(BIN(getinlinecache), 0, dst);
1789
- COLLECT_USAGE_OPERAND(BIN(getinlinecache), 1, ic);
1790
- {
1791
- #line 1118 "insns.def"
1792
- val = vm_ic_hit_p(ic, GET_EP());
1793
- if (val != Qnil) {
1794
- JUMP(dst);
1795
- }
1796
-
1797
- #line 1798 "vm.inc"
1798
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1799
- PUSH(val);
1800
- #undef CURRENT_INSN_getinlinecache
1801
- #undef INSN_IS_SC
1802
- #undef INSN_LABEL
1803
- #undef LABEL_IS_SC
1804
- END_INSN(getinlinecache);}}}
1805
- INSN_ENTRY(setinlinecache){START_OF_ORIGINAL_INSN(setinlinecache);
1806
- {
1807
- IC ic = (IC)GET_OPERAND(1);
1808
- VALUE val = TOPN(0);
1809
- DEBUG_ENTER_INSN("setinlinecache");
1810
- ADD_PC(1+1);
1811
- PREFETCH(GET_PC());
1812
- POPN(1);
1813
- #define CURRENT_INSN_setinlinecache 1
1814
- #define INSN_IS_SC() 0
1815
- #define INSN_LABEL(lab) LABEL_setinlinecache_##lab
1816
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1817
- COLLECT_USAGE_INSN(BIN(setinlinecache));
1818
- COLLECT_USAGE_OPERAND(BIN(setinlinecache), 0, ic);
1819
- {
1820
- #line 1135 "insns.def"
1821
- vm_ic_update(ic, val, GET_EP());
1822
-
1823
- #line 1824 "vm.inc"
1824
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1825
- PUSH(val);
1826
- #undef CURRENT_INSN_setinlinecache
1827
- #undef INSN_IS_SC
1828
- #undef INSN_LABEL
1829
- #undef LABEL_IS_SC
1830
- END_INSN(setinlinecache);}}}
1831
- INSN_ENTRY(once){START_OF_ORIGINAL_INSN(once);
1832
- {
1833
- VALUE val;
1834
- IC ic = (IC)GET_OPERAND(2);
1835
- ISEQ iseq = (ISEQ)GET_OPERAND(1);
1836
-
1837
- DEBUG_ENTER_INSN("once");
1838
- ADD_PC(1+2);
1839
- PREFETCH(GET_PC());
1840
- #define CURRENT_INSN_once 1
1841
- #define INSN_IS_SC() 0
1842
- #define INSN_LABEL(lab) LABEL_once_##lab
1843
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1844
- COLLECT_USAGE_INSN(BIN(once));
1845
- COLLECT_USAGE_OPERAND(BIN(once), 0, iseq);
1846
- COLLECT_USAGE_OPERAND(BIN(once), 1, ic);
1847
- {
1848
- #line 1149 "insns.def"
1849
- val = vm_once_dispatch(ec, iseq, ic);
1850
-
1851
- #line 1852 "vm.inc"
1852
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1853
- PUSH(val);
1854
- #undef CURRENT_INSN_once
1855
- #undef INSN_IS_SC
1856
- #undef INSN_LABEL
1857
- #undef LABEL_IS_SC
1858
- END_INSN(once);}}}
1859
- INSN_ENTRY(opt_case_dispatch){START_OF_ORIGINAL_INSN(opt_case_dispatch);
1860
- {
1861
- OFFSET else_offset = (OFFSET)GET_OPERAND(2);
1862
- CDHASH hash = (CDHASH)GET_OPERAND(1);
1863
- VALUE key = TOPN(0);
1864
- DEBUG_ENTER_INSN("opt_case_dispatch");
1865
- ADD_PC(1+2);
1866
- PREFETCH(GET_PC());
1867
- POPN(1);
1868
- #define CURRENT_INSN_opt_case_dispatch 1
1869
- #define INSN_IS_SC() 0
1870
- #define INSN_LABEL(lab) LABEL_opt_case_dispatch_##lab
1871
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1872
- COLLECT_USAGE_INSN(BIN(opt_case_dispatch));
1873
- COLLECT_USAGE_OPERAND(BIN(opt_case_dispatch), 0, hash);
1874
- COLLECT_USAGE_OPERAND(BIN(opt_case_dispatch), 1, else_offset);
1875
- {
1876
- #line 1163 "insns.def"
1877
- OFFSET dst = vm_case_dispatch(hash, else_offset, key);
1878
-
1879
- if (dst) {
1880
- JUMP(dst);
1881
- }
1882
-
1883
- #line 1884 "vm.inc"
1884
- #undef CURRENT_INSN_opt_case_dispatch
1885
- #undef INSN_IS_SC
1886
- #undef INSN_LABEL
1887
- #undef LABEL_IS_SC
1888
- END_INSN(opt_case_dispatch);}}}
1889
- INSN_ENTRY(opt_plus){START_OF_ORIGINAL_INSN(opt_plus);
1890
- {
1891
- VALUE val;
1892
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
1893
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1894
- VALUE recv = TOPN(1);
1895
- VALUE obj = TOPN(0);
1896
- DEBUG_ENTER_INSN("opt_plus");
1897
- ADD_PC(1+2);
1898
- PREFETCH(GET_PC());
1899
- POPN(2);
1900
- #define CURRENT_INSN_opt_plus 1
1901
- #define INSN_IS_SC() 0
1902
- #define INSN_LABEL(lab) LABEL_opt_plus_##lab
1903
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1904
- COLLECT_USAGE_INSN(BIN(opt_plus));
1905
- COLLECT_USAGE_OPERAND(BIN(opt_plus), 0, ci);
1906
- COLLECT_USAGE_OPERAND(BIN(opt_plus), 1, cc);
1907
- {
1908
- #line 1183 "insns.def"
1909
- val = vm_opt_plus(recv, obj);
1910
-
1911
- if (val == Qundef) {
1912
- /* other */
1913
- PUSH(recv);
1914
- PUSH(obj);
1915
- CALL_SIMPLE_METHOD(recv);
1916
- }
1917
-
1918
- #line 1919 "vm.inc"
1919
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1920
- PUSH(val);
1921
- #undef CURRENT_INSN_opt_plus
1922
- #undef INSN_IS_SC
1923
- #undef INSN_LABEL
1924
- #undef LABEL_IS_SC
1925
- END_INSN(opt_plus);}}}
1926
- INSN_ENTRY(opt_minus){START_OF_ORIGINAL_INSN(opt_minus);
1927
- {
1928
- VALUE val;
1929
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
1930
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1931
- VALUE recv = TOPN(1);
1932
- VALUE obj = TOPN(0);
1933
- DEBUG_ENTER_INSN("opt_minus");
1934
- ADD_PC(1+2);
1935
- PREFETCH(GET_PC());
1936
- POPN(2);
1937
- #define CURRENT_INSN_opt_minus 1
1938
- #define INSN_IS_SC() 0
1939
- #define INSN_LABEL(lab) LABEL_opt_minus_##lab
1940
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1941
- COLLECT_USAGE_INSN(BIN(opt_minus));
1942
- COLLECT_USAGE_OPERAND(BIN(opt_minus), 0, ci);
1943
- COLLECT_USAGE_OPERAND(BIN(opt_minus), 1, cc);
1944
- {
1945
- #line 1204 "insns.def"
1946
- val = vm_opt_minus(recv, obj);
1947
-
1948
- if (val == Qundef) {
1949
- /* other */
1950
- PUSH(recv);
1951
- PUSH(obj);
1952
- CALL_SIMPLE_METHOD(recv);
1953
- }
1954
-
1955
- #line 1956 "vm.inc"
1956
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1957
- PUSH(val);
1958
- #undef CURRENT_INSN_opt_minus
1959
- #undef INSN_IS_SC
1960
- #undef INSN_LABEL
1961
- #undef LABEL_IS_SC
1962
- END_INSN(opt_minus);}}}
1963
- INSN_ENTRY(opt_mult){START_OF_ORIGINAL_INSN(opt_mult);
1964
- {
1965
- VALUE val;
1966
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
1967
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
1968
- VALUE recv = TOPN(1);
1969
- VALUE obj = TOPN(0);
1970
- DEBUG_ENTER_INSN("opt_mult");
1971
- ADD_PC(1+2);
1972
- PREFETCH(GET_PC());
1973
- POPN(2);
1974
- #define CURRENT_INSN_opt_mult 1
1975
- #define INSN_IS_SC() 0
1976
- #define INSN_LABEL(lab) LABEL_opt_mult_##lab
1977
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1978
- COLLECT_USAGE_INSN(BIN(opt_mult));
1979
- COLLECT_USAGE_OPERAND(BIN(opt_mult), 0, ci);
1980
- COLLECT_USAGE_OPERAND(BIN(opt_mult), 1, cc);
1981
- {
1982
- #line 1225 "insns.def"
1983
- val = vm_opt_mult(recv, obj);
1984
-
1985
- if (val == Qundef) {
1986
- /* other */
1987
- PUSH(recv);
1988
- PUSH(obj);
1989
- CALL_SIMPLE_METHOD(recv);
1990
- }
1991
-
1992
- #line 1993 "vm.inc"
1993
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
1994
- PUSH(val);
1995
- #undef CURRENT_INSN_opt_mult
1996
- #undef INSN_IS_SC
1997
- #undef INSN_LABEL
1998
- #undef LABEL_IS_SC
1999
- END_INSN(opt_mult);}}}
2000
- INSN_ENTRY(opt_div){START_OF_ORIGINAL_INSN(opt_div);
2001
- {
2002
- VALUE val;
2003
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2004
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2005
- VALUE recv = TOPN(1);
2006
- VALUE obj = TOPN(0);
2007
- DEBUG_ENTER_INSN("opt_div");
2008
- ADD_PC(1+2);
2009
- PREFETCH(GET_PC());
2010
- POPN(2);
2011
- #define CURRENT_INSN_opt_div 1
2012
- #define INSN_IS_SC() 0
2013
- #define INSN_LABEL(lab) LABEL_opt_div_##lab
2014
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2015
- COLLECT_USAGE_INSN(BIN(opt_div));
2016
- COLLECT_USAGE_OPERAND(BIN(opt_div), 0, ci);
2017
- COLLECT_USAGE_OPERAND(BIN(opt_div), 1, cc);
2018
- {
2019
- #line 1246 "insns.def"
2020
- val = vm_opt_div(recv, obj);
2021
-
2022
- if (val == Qundef) {
2023
- /* other */
2024
- PUSH(recv);
2025
- PUSH(obj);
2026
- CALL_SIMPLE_METHOD(recv);
2027
- }
2028
-
2029
- #line 2030 "vm.inc"
2030
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2031
- PUSH(val);
2032
- #undef CURRENT_INSN_opt_div
2033
- #undef INSN_IS_SC
2034
- #undef INSN_LABEL
2035
- #undef LABEL_IS_SC
2036
- END_INSN(opt_div);}}}
2037
- INSN_ENTRY(opt_mod){START_OF_ORIGINAL_INSN(opt_mod);
2038
- {
2039
- VALUE val;
2040
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2041
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2042
- VALUE recv = TOPN(1);
2043
- VALUE obj = TOPN(0);
2044
- DEBUG_ENTER_INSN("opt_mod");
2045
- ADD_PC(1+2);
2046
- PREFETCH(GET_PC());
2047
- POPN(2);
2048
- #define CURRENT_INSN_opt_mod 1
2049
- #define INSN_IS_SC() 0
2050
- #define INSN_LABEL(lab) LABEL_opt_mod_##lab
2051
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2052
- COLLECT_USAGE_INSN(BIN(opt_mod));
2053
- COLLECT_USAGE_OPERAND(BIN(opt_mod), 0, ci);
2054
- COLLECT_USAGE_OPERAND(BIN(opt_mod), 1, cc);
2055
- {
2056
- #line 1267 "insns.def"
2057
- val = vm_opt_mod(recv, obj);
2058
-
2059
- if (val == Qundef) {
2060
- /* other */
2061
- PUSH(recv);
2062
- PUSH(obj);
2063
- CALL_SIMPLE_METHOD(recv);
2064
- }
2065
-
2066
- #line 2067 "vm.inc"
2067
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2068
- PUSH(val);
2069
- #undef CURRENT_INSN_opt_mod
2070
- #undef INSN_IS_SC
2071
- #undef INSN_LABEL
2072
- #undef LABEL_IS_SC
2073
- END_INSN(opt_mod);}}}
2074
- INSN_ENTRY(opt_eq){START_OF_ORIGINAL_INSN(opt_eq);
2075
- {
2076
- VALUE val;
2077
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2078
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2079
- VALUE recv = TOPN(1);
2080
- VALUE obj = TOPN(0);
2081
- DEBUG_ENTER_INSN("opt_eq");
2082
- ADD_PC(1+2);
2083
- PREFETCH(GET_PC());
2084
- POPN(2);
2085
- #define CURRENT_INSN_opt_eq 1
2086
- #define INSN_IS_SC() 0
2087
- #define INSN_LABEL(lab) LABEL_opt_eq_##lab
2088
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2089
- COLLECT_USAGE_INSN(BIN(opt_eq));
2090
- COLLECT_USAGE_OPERAND(BIN(opt_eq), 0, ci);
2091
- COLLECT_USAGE_OPERAND(BIN(opt_eq), 1, cc);
2092
- {
2093
- #line 1288 "insns.def"
2094
- val = opt_eq_func(recv, obj, ci, cc);
2095
-
2096
- if (val == Qundef) {
2097
- /* other */
2098
- PUSH(recv);
2099
- PUSH(obj);
2100
- CALL_SIMPLE_METHOD(recv);
2101
- }
2102
-
2103
- #line 2104 "vm.inc"
2104
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2105
- PUSH(val);
2106
- #undef CURRENT_INSN_opt_eq
2107
- #undef INSN_IS_SC
2108
- #undef INSN_LABEL
2109
- #undef LABEL_IS_SC
2110
- END_INSN(opt_eq);}}}
2111
- INSN_ENTRY(opt_neq){START_OF_ORIGINAL_INSN(opt_neq);
2112
- {
2113
- VALUE val;
2114
- CALL_CACHE cc_eq = (CALL_CACHE)GET_OPERAND(4);
2115
- CALL_INFO ci_eq = (CALL_INFO)GET_OPERAND(3);
2116
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2117
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2118
- VALUE recv = TOPN(1);
2119
- VALUE obj = TOPN(0);
2120
- DEBUG_ENTER_INSN("opt_neq");
2121
- ADD_PC(1+4);
2122
- PREFETCH(GET_PC());
2123
- POPN(2);
2124
- #define CURRENT_INSN_opt_neq 1
2125
- #define INSN_IS_SC() 0
2126
- #define INSN_LABEL(lab) LABEL_opt_neq_##lab
2127
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2128
- COLLECT_USAGE_INSN(BIN(opt_neq));
2129
- COLLECT_USAGE_OPERAND(BIN(opt_neq), 0, ci);
2130
- COLLECT_USAGE_OPERAND(BIN(opt_neq), 1, cc);
2131
- COLLECT_USAGE_OPERAND(BIN(opt_neq), 2, ci_eq);
2132
- COLLECT_USAGE_OPERAND(BIN(opt_neq), 3, cc_eq);
2133
- {
2134
- #line 1309 "insns.def"
2135
- val = vm_opt_neq(ci, cc, ci_eq, cc_eq, recv, obj);
2136
-
2137
- if (val == Qundef) {
2138
- /* other */
2139
- PUSH(recv);
2140
- PUSH(obj);
2141
- CALL_SIMPLE_METHOD(recv);
2142
- }
2143
-
2144
- #line 2145 "vm.inc"
2145
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2146
- PUSH(val);
2147
- #undef CURRENT_INSN_opt_neq
2148
- #undef INSN_IS_SC
2149
- #undef INSN_LABEL
2150
- #undef LABEL_IS_SC
2151
- END_INSN(opt_neq);}}}
2152
- INSN_ENTRY(opt_lt){START_OF_ORIGINAL_INSN(opt_lt);
2153
- {
2154
- VALUE val;
2155
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2156
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2157
- VALUE recv = TOPN(1);
2158
- VALUE obj = TOPN(0);
2159
- DEBUG_ENTER_INSN("opt_lt");
2160
- ADD_PC(1+2);
2161
- PREFETCH(GET_PC());
2162
- POPN(2);
2163
- #define CURRENT_INSN_opt_lt 1
2164
- #define INSN_IS_SC() 0
2165
- #define INSN_LABEL(lab) LABEL_opt_lt_##lab
2166
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2167
- COLLECT_USAGE_INSN(BIN(opt_lt));
2168
- COLLECT_USAGE_OPERAND(BIN(opt_lt), 0, ci);
2169
- COLLECT_USAGE_OPERAND(BIN(opt_lt), 1, cc);
2170
- {
2171
- #line 1330 "insns.def"
2172
- val = vm_opt_lt(recv, obj);
2173
-
2174
- if (val == Qundef) {
2175
- /* other */
2176
- PUSH(recv);
2177
- PUSH(obj);
2178
- CALL_SIMPLE_METHOD(recv);
2179
- }
2180
-
2181
- #line 2182 "vm.inc"
2182
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2183
- PUSH(val);
2184
- #undef CURRENT_INSN_opt_lt
2185
- #undef INSN_IS_SC
2186
- #undef INSN_LABEL
2187
- #undef LABEL_IS_SC
2188
- END_INSN(opt_lt);}}}
2189
- INSN_ENTRY(opt_le){START_OF_ORIGINAL_INSN(opt_le);
2190
- {
2191
- VALUE val;
2192
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2193
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2194
- VALUE recv = TOPN(1);
2195
- VALUE obj = TOPN(0);
2196
- DEBUG_ENTER_INSN("opt_le");
2197
- ADD_PC(1+2);
2198
- PREFETCH(GET_PC());
2199
- POPN(2);
2200
- #define CURRENT_INSN_opt_le 1
2201
- #define INSN_IS_SC() 0
2202
- #define INSN_LABEL(lab) LABEL_opt_le_##lab
2203
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2204
- COLLECT_USAGE_INSN(BIN(opt_le));
2205
- COLLECT_USAGE_OPERAND(BIN(opt_le), 0, ci);
2206
- COLLECT_USAGE_OPERAND(BIN(opt_le), 1, cc);
2207
- {
2208
- #line 1351 "insns.def"
2209
- val = vm_opt_le(recv, obj);
2210
-
2211
- if (val == Qundef) {
2212
- /* other */
2213
- PUSH(recv);
2214
- PUSH(obj);
2215
- CALL_SIMPLE_METHOD(recv);
2216
- }
2217
-
2218
- #line 2219 "vm.inc"
2219
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2220
- PUSH(val);
2221
- #undef CURRENT_INSN_opt_le
2222
- #undef INSN_IS_SC
2223
- #undef INSN_LABEL
2224
- #undef LABEL_IS_SC
2225
- END_INSN(opt_le);}}}
2226
- INSN_ENTRY(opt_gt){START_OF_ORIGINAL_INSN(opt_gt);
2227
- {
2228
- VALUE val;
2229
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2230
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2231
- VALUE recv = TOPN(1);
2232
- VALUE obj = TOPN(0);
2233
- DEBUG_ENTER_INSN("opt_gt");
2234
- ADD_PC(1+2);
2235
- PREFETCH(GET_PC());
2236
- POPN(2);
2237
- #define CURRENT_INSN_opt_gt 1
2238
- #define INSN_IS_SC() 0
2239
- #define INSN_LABEL(lab) LABEL_opt_gt_##lab
2240
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2241
- COLLECT_USAGE_INSN(BIN(opt_gt));
2242
- COLLECT_USAGE_OPERAND(BIN(opt_gt), 0, ci);
2243
- COLLECT_USAGE_OPERAND(BIN(opt_gt), 1, cc);
2244
- {
2245
- #line 1372 "insns.def"
2246
- val = vm_opt_gt(recv, obj);
2247
-
2248
- if (val == Qundef) {
2249
- /* other */
2250
- PUSH(recv);
2251
- PUSH(obj);
2252
- CALL_SIMPLE_METHOD(recv);
2253
- }
2254
-
2255
- #line 2256 "vm.inc"
2256
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2257
- PUSH(val);
2258
- #undef CURRENT_INSN_opt_gt
2259
- #undef INSN_IS_SC
2260
- #undef INSN_LABEL
2261
- #undef LABEL_IS_SC
2262
- END_INSN(opt_gt);}}}
2263
- INSN_ENTRY(opt_ge){START_OF_ORIGINAL_INSN(opt_ge);
2264
- {
2265
- VALUE val;
2266
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2267
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2268
- VALUE recv = TOPN(1);
2269
- VALUE obj = TOPN(0);
2270
- DEBUG_ENTER_INSN("opt_ge");
2271
- ADD_PC(1+2);
2272
- PREFETCH(GET_PC());
2273
- POPN(2);
2274
- #define CURRENT_INSN_opt_ge 1
2275
- #define INSN_IS_SC() 0
2276
- #define INSN_LABEL(lab) LABEL_opt_ge_##lab
2277
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2278
- COLLECT_USAGE_INSN(BIN(opt_ge));
2279
- COLLECT_USAGE_OPERAND(BIN(opt_ge), 0, ci);
2280
- COLLECT_USAGE_OPERAND(BIN(opt_ge), 1, cc);
2281
- {
2282
- #line 1393 "insns.def"
2283
- val = vm_opt_ge(recv, obj);
2284
-
2285
- if (val == Qundef) {
2286
- /* other */
2287
- PUSH(recv);
2288
- PUSH(obj);
2289
- CALL_SIMPLE_METHOD(recv);
2290
- }
2291
-
2292
- #line 2293 "vm.inc"
2293
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2294
- PUSH(val);
2295
- #undef CURRENT_INSN_opt_ge
2296
- #undef INSN_IS_SC
2297
- #undef INSN_LABEL
2298
- #undef LABEL_IS_SC
2299
- END_INSN(opt_ge);}}}
2300
- INSN_ENTRY(opt_ltlt){START_OF_ORIGINAL_INSN(opt_ltlt);
2301
- {
2302
- VALUE val;
2303
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2304
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2305
- VALUE recv = TOPN(1);
2306
- VALUE obj = TOPN(0);
2307
- DEBUG_ENTER_INSN("opt_ltlt");
2308
- ADD_PC(1+2);
2309
- PREFETCH(GET_PC());
2310
- POPN(2);
2311
- #define CURRENT_INSN_opt_ltlt 1
2312
- #define INSN_IS_SC() 0
2313
- #define INSN_LABEL(lab) LABEL_opt_ltlt_##lab
2314
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2315
- COLLECT_USAGE_INSN(BIN(opt_ltlt));
2316
- COLLECT_USAGE_OPERAND(BIN(opt_ltlt), 0, ci);
2317
- COLLECT_USAGE_OPERAND(BIN(opt_ltlt), 1, cc);
2318
- {
2319
- #line 1414 "insns.def"
2320
- val = vm_opt_ltlt(recv, obj);
2321
-
2322
- if (val == Qundef) {
2323
- /* other */
2324
- PUSH(recv);
2325
- PUSH(obj);
2326
- CALL_SIMPLE_METHOD(recv);
2327
- }
2328
-
2329
- #line 2330 "vm.inc"
2330
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2331
- PUSH(val);
2332
- #undef CURRENT_INSN_opt_ltlt
2333
- #undef INSN_IS_SC
2334
- #undef INSN_LABEL
2335
- #undef LABEL_IS_SC
2336
- END_INSN(opt_ltlt);}}}
2337
- INSN_ENTRY(opt_aref){START_OF_ORIGINAL_INSN(opt_aref);
2338
- {
2339
- VALUE val;
2340
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2341
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2342
- VALUE recv = TOPN(1);
2343
- VALUE obj = TOPN(0);
2344
- DEBUG_ENTER_INSN("opt_aref");
2345
- ADD_PC(1+2);
2346
- PREFETCH(GET_PC());
2347
- POPN(2);
2348
- #define CURRENT_INSN_opt_aref 1
2349
- #define INSN_IS_SC() 0
2350
- #define INSN_LABEL(lab) LABEL_opt_aref_##lab
2351
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2352
- COLLECT_USAGE_INSN(BIN(opt_aref));
2353
- COLLECT_USAGE_OPERAND(BIN(opt_aref), 0, ci);
2354
- COLLECT_USAGE_OPERAND(BIN(opt_aref), 1, cc);
2355
- {
2356
- #line 1435 "insns.def"
2357
- val = vm_opt_aref(recv, obj);
2358
-
2359
- if (val == Qundef) {
2360
- /* other */
2361
- PUSH(recv);
2362
- PUSH(obj);
2363
- CALL_SIMPLE_METHOD(recv);
2364
- }
2365
-
2366
- #line 2367 "vm.inc"
2367
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2368
- PUSH(val);
2369
- #undef CURRENT_INSN_opt_aref
2370
- #undef INSN_IS_SC
2371
- #undef INSN_LABEL
2372
- #undef LABEL_IS_SC
2373
- END_INSN(opt_aref);}}}
2374
- INSN_ENTRY(opt_aset){START_OF_ORIGINAL_INSN(opt_aset);
2375
- {
2376
- VALUE val;
2377
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2378
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2379
- VALUE recv = TOPN(2);
2380
- VALUE obj = TOPN(1);
2381
- VALUE set = TOPN(0);
2382
- DEBUG_ENTER_INSN("opt_aset");
2383
- ADD_PC(1+2);
2384
- PREFETCH(GET_PC());
2385
- POPN(3);
2386
- #define CURRENT_INSN_opt_aset 1
2387
- #define INSN_IS_SC() 0
2388
- #define INSN_LABEL(lab) LABEL_opt_aset_##lab
2389
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2390
- COLLECT_USAGE_INSN(BIN(opt_aset));
2391
- COLLECT_USAGE_OPERAND(BIN(opt_aset), 0, ci);
2392
- COLLECT_USAGE_OPERAND(BIN(opt_aset), 1, cc);
2393
- {
2394
- #line 1456 "insns.def"
2395
- val = vm_opt_aset(recv, obj, set);
2396
-
2397
- if (val == Qundef) {
2398
- /* other */
2399
- PUSH(recv);
2400
- PUSH(obj);
2401
- PUSH(set);
2402
- CALL_SIMPLE_METHOD(recv);
2403
- }
2404
-
2405
- #line 2406 "vm.inc"
2406
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2407
- PUSH(val);
2408
- #undef CURRENT_INSN_opt_aset
2409
- #undef INSN_IS_SC
2410
- #undef INSN_LABEL
2411
- #undef LABEL_IS_SC
2412
- END_INSN(opt_aset);}}}
2413
- INSN_ENTRY(opt_aset_with){START_OF_ORIGINAL_INSN(opt_aset_with);
2414
- {
2415
- VALUE key = (VALUE)GET_OPERAND(3);
2416
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2417
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2418
- VALUE recv = TOPN(1);
2419
- VALUE val = TOPN(0);
2420
- DEBUG_ENTER_INSN("opt_aset_with");
2421
- ADD_PC(1+3);
2422
- PREFETCH(GET_PC());
2423
- POPN(2);
2424
- #define CURRENT_INSN_opt_aset_with 1
2425
- #define INSN_IS_SC() 0
2426
- #define INSN_LABEL(lab) LABEL_opt_aset_with_##lab
2427
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2428
- COLLECT_USAGE_INSN(BIN(opt_aset_with));
2429
- COLLECT_USAGE_OPERAND(BIN(opt_aset_with), 0, ci);
2430
- COLLECT_USAGE_OPERAND(BIN(opt_aset_with), 1, cc);
2431
- COLLECT_USAGE_OPERAND(BIN(opt_aset_with), 2, key);
2432
- {
2433
- #line 1478 "insns.def"
2434
- VALUE tmp = vm_opt_aset_with(recv, key, val);
2435
-
2436
- if (tmp != Qundef) {
2437
- val = tmp;
2438
- }
2439
- else {
2440
- /* other */
2441
- PUSH(recv);
2442
- PUSH(rb_str_resurrect(key));
2443
- PUSH(val);
2444
- CALL_SIMPLE_METHOD(recv);
2445
- }
2446
-
2447
- #line 2448 "vm.inc"
2448
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2449
- PUSH(val);
2450
- #undef CURRENT_INSN_opt_aset_with
2451
- #undef INSN_IS_SC
2452
- #undef INSN_LABEL
2453
- #undef LABEL_IS_SC
2454
- END_INSN(opt_aset_with);}}}
2455
- INSN_ENTRY(opt_aref_with){START_OF_ORIGINAL_INSN(opt_aref_with);
2456
- {
2457
- VALUE val;
2458
- VALUE key = (VALUE)GET_OPERAND(3);
2459
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2460
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2461
- VALUE recv = TOPN(0);
2462
- DEBUG_ENTER_INSN("opt_aref_with");
2463
- ADD_PC(1+3);
2464
- PREFETCH(GET_PC());
2465
- POPN(1);
2466
- #define CURRENT_INSN_opt_aref_with 1
2467
- #define INSN_IS_SC() 0
2468
- #define INSN_LABEL(lab) LABEL_opt_aref_with_##lab
2469
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2470
- COLLECT_USAGE_INSN(BIN(opt_aref_with));
2471
- COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 0, ci);
2472
- COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 1, cc);
2473
- COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 2, key);
2474
- {
2475
- #line 1503 "insns.def"
2476
- val = vm_opt_aref_with(recv, key);
2477
-
2478
- if (val == Qundef) {
2479
- /* other */
2480
- PUSH(recv);
2481
- PUSH(rb_str_resurrect(key));
2482
- CALL_SIMPLE_METHOD(recv);
2483
- }
2484
-
2485
- #line 2486 "vm.inc"
2486
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2487
- PUSH(val);
2488
- #undef CURRENT_INSN_opt_aref_with
2489
- #undef INSN_IS_SC
2490
- #undef INSN_LABEL
2491
- #undef LABEL_IS_SC
2492
- END_INSN(opt_aref_with);}}}
2493
- INSN_ENTRY(opt_length){START_OF_ORIGINAL_INSN(opt_length);
2494
- {
2495
- VALUE val;
2496
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2497
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2498
- VALUE recv = TOPN(0);
2499
- DEBUG_ENTER_INSN("opt_length");
2500
- ADD_PC(1+2);
2501
- PREFETCH(GET_PC());
2502
- POPN(1);
2503
- #define CURRENT_INSN_opt_length 1
2504
- #define INSN_IS_SC() 0
2505
- #define INSN_LABEL(lab) LABEL_opt_length_##lab
2506
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2507
- COLLECT_USAGE_INSN(BIN(opt_length));
2508
- COLLECT_USAGE_OPERAND(BIN(opt_length), 0, ci);
2509
- COLLECT_USAGE_OPERAND(BIN(opt_length), 1, cc);
2510
- {
2511
- #line 1524 "insns.def"
2512
- val = vm_opt_length(recv, BOP_LENGTH);
2513
-
2514
- if (val == Qundef) {
2515
- /* other */
2516
- PUSH(recv);
2517
- CALL_SIMPLE_METHOD(recv);
2518
- }
2519
-
2520
- #line 2521 "vm.inc"
2521
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2522
- PUSH(val);
2523
- #undef CURRENT_INSN_opt_length
2524
- #undef INSN_IS_SC
2525
- #undef INSN_LABEL
2526
- #undef LABEL_IS_SC
2527
- END_INSN(opt_length);}}}
2528
- INSN_ENTRY(opt_size){START_OF_ORIGINAL_INSN(opt_size);
2529
- {
2530
- VALUE val;
2531
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2532
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2533
- VALUE recv = TOPN(0);
2534
- DEBUG_ENTER_INSN("opt_size");
2535
- ADD_PC(1+2);
2536
- PREFETCH(GET_PC());
2537
- POPN(1);
2538
- #define CURRENT_INSN_opt_size 1
2539
- #define INSN_IS_SC() 0
2540
- #define INSN_LABEL(lab) LABEL_opt_size_##lab
2541
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2542
- COLLECT_USAGE_INSN(BIN(opt_size));
2543
- COLLECT_USAGE_OPERAND(BIN(opt_size), 0, ci);
2544
- COLLECT_USAGE_OPERAND(BIN(opt_size), 1, cc);
2545
- {
2546
- #line 1544 "insns.def"
2547
- val = vm_opt_length(recv, BOP_SIZE);
2548
-
2549
- if (val == Qundef) {
2550
- /* other */
2551
- PUSH(recv);
2552
- CALL_SIMPLE_METHOD(recv);
2553
- }
2554
-
2555
- #line 2556 "vm.inc"
2556
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2557
- PUSH(val);
2558
- #undef CURRENT_INSN_opt_size
2559
- #undef INSN_IS_SC
2560
- #undef INSN_LABEL
2561
- #undef LABEL_IS_SC
2562
- END_INSN(opt_size);}}}
2563
- INSN_ENTRY(opt_empty_p){START_OF_ORIGINAL_INSN(opt_empty_p);
2564
- {
2565
- VALUE val;
2566
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2567
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2568
- VALUE recv = TOPN(0);
2569
- DEBUG_ENTER_INSN("opt_empty_p");
2570
- ADD_PC(1+2);
2571
- PREFETCH(GET_PC());
2572
- POPN(1);
2573
- #define CURRENT_INSN_opt_empty_p 1
2574
- #define INSN_IS_SC() 0
2575
- #define INSN_LABEL(lab) LABEL_opt_empty_p_##lab
2576
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2577
- COLLECT_USAGE_INSN(BIN(opt_empty_p));
2578
- COLLECT_USAGE_OPERAND(BIN(opt_empty_p), 0, ci);
2579
- COLLECT_USAGE_OPERAND(BIN(opt_empty_p), 1, cc);
2580
- {
2581
- #line 1564 "insns.def"
2582
- val = vm_opt_empty_p(recv);
2583
-
2584
- if (val == Qundef) {
2585
- /* other */
2586
- PUSH(recv);
2587
- CALL_SIMPLE_METHOD(recv);
2588
- }
2589
-
2590
- #line 2591 "vm.inc"
2591
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2592
- PUSH(val);
2593
- #undef CURRENT_INSN_opt_empty_p
2594
- #undef INSN_IS_SC
2595
- #undef INSN_LABEL
2596
- #undef LABEL_IS_SC
2597
- END_INSN(opt_empty_p);}}}
2598
- INSN_ENTRY(opt_succ){START_OF_ORIGINAL_INSN(opt_succ);
2599
- {
2600
- VALUE val;
2601
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2602
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2603
- VALUE recv = TOPN(0);
2604
- DEBUG_ENTER_INSN("opt_succ");
2605
- ADD_PC(1+2);
2606
- PREFETCH(GET_PC());
2607
- POPN(1);
2608
- #define CURRENT_INSN_opt_succ 1
2609
- #define INSN_IS_SC() 0
2610
- #define INSN_LABEL(lab) LABEL_opt_succ_##lab
2611
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2612
- COLLECT_USAGE_INSN(BIN(opt_succ));
2613
- COLLECT_USAGE_OPERAND(BIN(opt_succ), 0, ci);
2614
- COLLECT_USAGE_OPERAND(BIN(opt_succ), 1, cc);
2615
- {
2616
- #line 1584 "insns.def"
2617
- val = vm_opt_succ(recv);
2618
-
2619
- if (val == Qundef) {
2620
- /* other */
2621
- PUSH(recv);
2622
- CALL_SIMPLE_METHOD(recv);
2623
- }
2624
-
2625
- #line 2626 "vm.inc"
2626
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2627
- PUSH(val);
2628
- #undef CURRENT_INSN_opt_succ
2629
- #undef INSN_IS_SC
2630
- #undef INSN_LABEL
2631
- #undef LABEL_IS_SC
2632
- END_INSN(opt_succ);}}}
2633
- INSN_ENTRY(opt_not){START_OF_ORIGINAL_INSN(opt_not);
2634
- {
2635
- VALUE val;
2636
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2637
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2638
- VALUE recv = TOPN(0);
2639
- DEBUG_ENTER_INSN("opt_not");
2640
- ADD_PC(1+2);
2641
- PREFETCH(GET_PC());
2642
- POPN(1);
2643
- #define CURRENT_INSN_opt_not 1
2644
- #define INSN_IS_SC() 0
2645
- #define INSN_LABEL(lab) LABEL_opt_not_##lab
2646
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2647
- COLLECT_USAGE_INSN(BIN(opt_not));
2648
- COLLECT_USAGE_OPERAND(BIN(opt_not), 0, ci);
2649
- COLLECT_USAGE_OPERAND(BIN(opt_not), 1, cc);
2650
- {
2651
- #line 1604 "insns.def"
2652
- val = vm_opt_not(ci, cc, recv);
2653
-
2654
- if (val == Qundef) {
2655
- /* other */
2656
- PUSH(recv);
2657
- CALL_SIMPLE_METHOD(recv);
2658
- }
2659
-
2660
- #line 2661 "vm.inc"
2661
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2662
- PUSH(val);
2663
- #undef CURRENT_INSN_opt_not
2664
- #undef INSN_IS_SC
2665
- #undef INSN_LABEL
2666
- #undef LABEL_IS_SC
2667
- END_INSN(opt_not);}}}
2668
- INSN_ENTRY(opt_regexpmatch1){START_OF_ORIGINAL_INSN(opt_regexpmatch1);
2669
- {
2670
- VALUE val;
2671
- VALUE recv = (VALUE)GET_OPERAND(1);
2672
- VALUE obj = TOPN(0);
2673
- DEBUG_ENTER_INSN("opt_regexpmatch1");
2674
- ADD_PC(1+1);
2675
- PREFETCH(GET_PC());
2676
- POPN(1);
2677
- #define CURRENT_INSN_opt_regexpmatch1 1
2678
- #define INSN_IS_SC() 0
2679
- #define INSN_LABEL(lab) LABEL_opt_regexpmatch1_##lab
2680
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2681
- COLLECT_USAGE_INSN(BIN(opt_regexpmatch1));
2682
- COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch1), 0, recv);
2683
- {
2684
- #line 1625 "insns.def"
2685
- val = vm_opt_regexpmatch1(recv, obj);
2686
-
2687
- #line 2688 "vm.inc"
2688
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2689
- PUSH(val);
2690
- #undef CURRENT_INSN_opt_regexpmatch1
2691
- #undef INSN_IS_SC
2692
- #undef INSN_LABEL
2693
- #undef LABEL_IS_SC
2694
- END_INSN(opt_regexpmatch1);}}}
2695
- INSN_ENTRY(opt_regexpmatch2){START_OF_ORIGINAL_INSN(opt_regexpmatch2);
2696
- {
2697
- VALUE val;
2698
- CALL_CACHE cc = (CALL_CACHE)GET_OPERAND(2);
2699
- CALL_INFO ci = (CALL_INFO)GET_OPERAND(1);
2700
- VALUE obj2 = TOPN(1);
2701
- VALUE obj1 = TOPN(0);
2702
- DEBUG_ENTER_INSN("opt_regexpmatch2");
2703
- ADD_PC(1+2);
2704
- PREFETCH(GET_PC());
2705
- POPN(2);
2706
- #define CURRENT_INSN_opt_regexpmatch2 1
2707
- #define INSN_IS_SC() 0
2708
- #define INSN_LABEL(lab) LABEL_opt_regexpmatch2_##lab
2709
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2710
- COLLECT_USAGE_INSN(BIN(opt_regexpmatch2));
2711
- COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch2), 0, ci);
2712
- COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch2), 1, cc);
2713
- {
2714
- #line 1639 "insns.def"
2715
- val = vm_opt_regexpmatch2(obj2, obj1);
2716
-
2717
- if (val == Qundef) {
2718
- /* other */
2719
- PUSH(obj2);
2720
- PUSH(obj1);
2721
- CALL_SIMPLE_METHOD(obj2);
2722
- }
2723
-
2724
- #line 2725 "vm.inc"
2725
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2726
- PUSH(val);
2727
- #undef CURRENT_INSN_opt_regexpmatch2
2728
- #undef INSN_IS_SC
2729
- #undef INSN_LABEL
2730
- #undef LABEL_IS_SC
2731
- END_INSN(opt_regexpmatch2);}}}
2732
- INSN_ENTRY(opt_call_c_function){START_OF_ORIGINAL_INSN(opt_call_c_function);
2733
- {
2734
- rb_insn_func_t funcptr = (rb_insn_func_t)GET_OPERAND(1);
2735
-
2736
- DEBUG_ENTER_INSN("opt_call_c_function");
2737
- ADD_PC(1+1);
2738
- PREFETCH(GET_PC());
2739
- #define CURRENT_INSN_opt_call_c_function 1
2740
- #define INSN_IS_SC() 0
2741
- #define INSN_LABEL(lab) LABEL_opt_call_c_function_##lab
2742
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2743
- COLLECT_USAGE_INSN(BIN(opt_call_c_function));
2744
- COLLECT_USAGE_OPERAND(BIN(opt_call_c_function), 0, funcptr);
2745
- {
2746
- #line 1660 "insns.def"
2747
- reg_cfp = (funcptr)(ec, reg_cfp);
2748
-
2749
- if (reg_cfp == 0) {
2750
- VALUE err = ec->errinfo;
2751
- ec->errinfo = Qnil;
2752
- THROW_EXCEPTION(err);
2753
- }
2754
-
2755
- RESTORE_REGS();
2756
- NEXT_INSN();
2757
-
2758
- #line 2759 "vm.inc"
2759
- #undef CURRENT_INSN_opt_call_c_function
2760
- #undef INSN_IS_SC
2761
- #undef INSN_LABEL
2762
- #undef LABEL_IS_SC
2763
- END_INSN(opt_call_c_function);}}}
2764
- INSN_ENTRY(bitblt){START_OF_ORIGINAL_INSN(bitblt);
2765
- {
2766
- VALUE ret;
2767
-
2768
-
2769
- DEBUG_ENTER_INSN("bitblt");
2770
- ADD_PC(1+0);
2771
- PREFETCH(GET_PC());
2772
- #define CURRENT_INSN_bitblt 1
2773
- #define INSN_IS_SC() 0
2774
- #define INSN_LABEL(lab) LABEL_bitblt_##lab
2775
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2776
- COLLECT_USAGE_INSN(BIN(bitblt));
2777
- {
2778
- #line 1683 "insns.def"
2779
- ret = rb_str_new2("a bit of bacon, lettuce and tomato");
2780
-
2781
- #line 2782 "vm.inc"
2782
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2783
- PUSH(ret);
2784
- #undef CURRENT_INSN_bitblt
2785
- #undef INSN_IS_SC
2786
- #undef INSN_LABEL
2787
- #undef LABEL_IS_SC
2788
- END_INSN(bitblt);}}}
2789
- INSN_ENTRY(answer){START_OF_ORIGINAL_INSN(answer);
2790
- {
2791
- VALUE ret;
2792
-
2793
-
2794
- DEBUG_ENTER_INSN("answer");
2795
- ADD_PC(1+0);
2796
- PREFETCH(GET_PC());
2797
- #define CURRENT_INSN_answer 1
2798
- #define INSN_IS_SC() 0
2799
- #define INSN_LABEL(lab) LABEL_answer_##lab
2800
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2801
- COLLECT_USAGE_INSN(BIN(answer));
2802
- {
2803
- #line 1697 "insns.def"
2804
- ret = INT2FIX(42);
2805
-
2806
- #line 2807 "vm.inc"
2807
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2808
- PUSH(ret);
2809
- #undef CURRENT_INSN_answer
2810
- #undef INSN_IS_SC
2811
- #undef INSN_LABEL
2812
- #undef LABEL_IS_SC
2813
- END_INSN(answer);}}}
2814
- INSN_ENTRY(getlocal_OP__WC__0){START_OF_ORIGINAL_INSN(getlocal_OP__WC__0);
2815
- {
2816
- VALUE val;
2817
- #define level 0
2818
- lindex_t idx = (lindex_t)GET_OPERAND(1);
2819
-
2820
- DEBUG_ENTER_INSN("getlocal_OP__WC__0");
2821
- ADD_PC(1+1);
2822
- PREFETCH(GET_PC());
2823
- #define CURRENT_INSN_getlocal_OP__WC__0 1
2824
- #define INSN_IS_SC() 0
2825
- #define INSN_LABEL(lab) LABEL_getlocal_OP__WC__0_##lab
2826
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2827
- COLLECT_USAGE_INSN(BIN(getlocal_OP__WC__0));
2828
- COLLECT_USAGE_OPERAND(BIN(getlocal_OP__WC__0), 0, idx);
2829
- {
2830
- #line 60 "insns.def"
2831
- val = *(vm_get_ep(GET_EP(), level) - idx);
2832
- RB_DEBUG_COUNTER_INC(lvar_get);
2833
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
2834
-
2835
- #line 2836 "vm.inc"
2836
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2837
- PUSH(val);
2838
- #undef level
2839
- #undef CURRENT_INSN_getlocal_OP__WC__0
2840
- #undef INSN_IS_SC
2841
- #undef INSN_LABEL
2842
- #undef LABEL_IS_SC
2843
- END_INSN(getlocal_OP__WC__0);}}}
2844
- INSN_ENTRY(getlocal_OP__WC__1){START_OF_ORIGINAL_INSN(getlocal_OP__WC__1);
2845
- {
2846
- VALUE val;
2847
- #define level 1
2848
- lindex_t idx = (lindex_t)GET_OPERAND(1);
2849
-
2850
- DEBUG_ENTER_INSN("getlocal_OP__WC__1");
2851
- ADD_PC(1+1);
2852
- PREFETCH(GET_PC());
2853
- #define CURRENT_INSN_getlocal_OP__WC__1 1
2854
- #define INSN_IS_SC() 0
2855
- #define INSN_LABEL(lab) LABEL_getlocal_OP__WC__1_##lab
2856
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2857
- COLLECT_USAGE_INSN(BIN(getlocal_OP__WC__1));
2858
- COLLECT_USAGE_OPERAND(BIN(getlocal_OP__WC__1), 0, idx);
2859
- {
2860
- #line 60 "insns.def"
2861
- val = *(vm_get_ep(GET_EP(), level) - idx);
2862
- RB_DEBUG_COUNTER_INC(lvar_get);
2863
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_get_dynamic, level > 0);
2864
-
2865
- #line 2866 "vm.inc"
2866
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2867
- PUSH(val);
2868
- #undef level
2869
- #undef CURRENT_INSN_getlocal_OP__WC__1
2870
- #undef INSN_IS_SC
2871
- #undef INSN_LABEL
2872
- #undef LABEL_IS_SC
2873
- END_INSN(getlocal_OP__WC__1);}}}
2874
- INSN_ENTRY(setlocal_OP__WC__0){START_OF_ORIGINAL_INSN(setlocal_OP__WC__0);
2875
- {
2876
- #define level 0
2877
- lindex_t idx = (lindex_t)GET_OPERAND(1);
2878
- VALUE val = TOPN(0);
2879
- DEBUG_ENTER_INSN("setlocal_OP__WC__0");
2880
- ADD_PC(1+1);
2881
- PREFETCH(GET_PC());
2882
- POPN(1);
2883
- #define CURRENT_INSN_setlocal_OP__WC__0 1
2884
- #define INSN_IS_SC() 0
2885
- #define INSN_LABEL(lab) LABEL_setlocal_OP__WC__0_##lab
2886
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2887
- COLLECT_USAGE_INSN(BIN(setlocal_OP__WC__0));
2888
- COLLECT_USAGE_OPERAND(BIN(setlocal_OP__WC__0), 0, idx);
2889
- {
2890
- #line 78 "insns.def"
2891
- vm_env_write(vm_get_ep(GET_EP(), level), -(int)idx, val);
2892
- RB_DEBUG_COUNTER_INC(lvar_set);
2893
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
2894
-
2895
- #line 2896 "vm.inc"
2896
- #undef level
2897
- #undef CURRENT_INSN_setlocal_OP__WC__0
2898
- #undef INSN_IS_SC
2899
- #undef INSN_LABEL
2900
- #undef LABEL_IS_SC
2901
- END_INSN(setlocal_OP__WC__0);}}}
2902
- INSN_ENTRY(setlocal_OP__WC__1){START_OF_ORIGINAL_INSN(setlocal_OP__WC__1);
2903
- {
2904
- #define level 1
2905
- lindex_t idx = (lindex_t)GET_OPERAND(1);
2906
- VALUE val = TOPN(0);
2907
- DEBUG_ENTER_INSN("setlocal_OP__WC__1");
2908
- ADD_PC(1+1);
2909
- PREFETCH(GET_PC());
2910
- POPN(1);
2911
- #define CURRENT_INSN_setlocal_OP__WC__1 1
2912
- #define INSN_IS_SC() 0
2913
- #define INSN_LABEL(lab) LABEL_setlocal_OP__WC__1_##lab
2914
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2915
- COLLECT_USAGE_INSN(BIN(setlocal_OP__WC__1));
2916
- COLLECT_USAGE_OPERAND(BIN(setlocal_OP__WC__1), 0, idx);
2917
- {
2918
- #line 78 "insns.def"
2919
- vm_env_write(vm_get_ep(GET_EP(), level), -(int)idx, val);
2920
- RB_DEBUG_COUNTER_INC(lvar_set);
2921
- (void)RB_DEBUG_COUNTER_INC_IF(lvar_set_dynamic, level > 0);
2922
-
2923
- #line 2924 "vm.inc"
2924
- #undef level
2925
- #undef CURRENT_INSN_setlocal_OP__WC__1
2926
- #undef INSN_IS_SC
2927
- #undef INSN_LABEL
2928
- #undef LABEL_IS_SC
2929
- END_INSN(setlocal_OP__WC__1);}}}
2930
- INSN_ENTRY(putobject_OP_INT2FIX_O_0_C_){START_OF_ORIGINAL_INSN(putobject_OP_INT2FIX_O_0_C_);
2931
- {
2932
- #define val INT2FIX(0)
2933
-
2934
-
2935
- DEBUG_ENTER_INSN("putobject_OP_INT2FIX_O_0_C_");
2936
- ADD_PC(1+0);
2937
- PREFETCH(GET_PC());
2938
- #define CURRENT_INSN_putobject_OP_INT2FIX_O_0_C_ 1
2939
- #define INSN_IS_SC() 0
2940
- #define INSN_LABEL(lab) LABEL_putobject_OP_INT2FIX_O_0_C__##lab
2941
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2942
- COLLECT_USAGE_INSN(BIN(putobject_OP_INT2FIX_O_0_C_));
2943
- {
2944
- #line 334 "insns.def"
2945
- /* */
2946
-
2947
- #line 2948 "vm.inc"
2948
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2949
- PUSH(val);
2950
- #undef val
2951
- #undef CURRENT_INSN_putobject_OP_INT2FIX_O_0_C_
2952
- #undef INSN_IS_SC
2953
- #undef INSN_LABEL
2954
- #undef LABEL_IS_SC
2955
- END_INSN(putobject_OP_INT2FIX_O_0_C_);}}}
2956
- INSN_ENTRY(putobject_OP_INT2FIX_O_1_C_){START_OF_ORIGINAL_INSN(putobject_OP_INT2FIX_O_1_C_);
2957
- {
2958
- #define val INT2FIX(1)
2959
-
2960
-
2961
- DEBUG_ENTER_INSN("putobject_OP_INT2FIX_O_1_C_");
2962
- ADD_PC(1+0);
2963
- PREFETCH(GET_PC());
2964
- #define CURRENT_INSN_putobject_OP_INT2FIX_O_1_C_ 1
2965
- #define INSN_IS_SC() 0
2966
- #define INSN_LABEL(lab) LABEL_putobject_OP_INT2FIX_O_1_C__##lab
2967
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
2968
- COLLECT_USAGE_INSN(BIN(putobject_OP_INT2FIX_O_1_C_));
2969
- {
2970
- #line 334 "insns.def"
2971
- /* */
2972
-
2973
- #line 2974 "vm.inc"
2974
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(VM_REG_CFP, 1);
2975
- PUSH(val);
2976
- #undef val
2977
- #undef CURRENT_INSN_putobject_OP_INT2FIX_O_1_C_
2978
- #undef INSN_IS_SC
2979
- #undef INSN_LABEL
2980
- #undef LABEL_IS_SC
2981
- END_INSN(putobject_OP_INT2FIX_O_1_C_);}}}
2982
- INSN_ENTRY(trace_nop){
2983
- {
2984
- {
2985
- vm_trace(ec, GET_CFP(), GET_PC());
2986
- DISPATCH_ORIGINAL_INSN(nop);
2987
-
2988
- END_INSN(trace_nop);}}}
2989
- INSN_ENTRY(trace_getlocal){
2990
- {
2991
- {
2992
- vm_trace(ec, GET_CFP(), GET_PC());
2993
- DISPATCH_ORIGINAL_INSN(getlocal);
2994
-
2995
- END_INSN(trace_getlocal);}}}
2996
- INSN_ENTRY(trace_setlocal){
2997
- {
2998
- {
2999
- vm_trace(ec, GET_CFP(), GET_PC());
3000
- DISPATCH_ORIGINAL_INSN(setlocal);
3001
-
3002
- END_INSN(trace_setlocal);}}}
3003
- INSN_ENTRY(trace_getblockparam){
3004
- {
3005
- {
3006
- vm_trace(ec, GET_CFP(), GET_PC());
3007
- DISPATCH_ORIGINAL_INSN(getblockparam);
3008
-
3009
- END_INSN(trace_getblockparam);}}}
3010
- INSN_ENTRY(trace_setblockparam){
3011
- {
3012
- {
3013
- vm_trace(ec, GET_CFP(), GET_PC());
3014
- DISPATCH_ORIGINAL_INSN(setblockparam);
3015
-
3016
- END_INSN(trace_setblockparam);}}}
3017
- INSN_ENTRY(trace_getspecial){
3018
- {
3019
- {
3020
- vm_trace(ec, GET_CFP(), GET_PC());
3021
- DISPATCH_ORIGINAL_INSN(getspecial);
3022
-
3023
- END_INSN(trace_getspecial);}}}
3024
- INSN_ENTRY(trace_setspecial){
3025
- {
3026
- {
3027
- vm_trace(ec, GET_CFP(), GET_PC());
3028
- DISPATCH_ORIGINAL_INSN(setspecial);
3029
-
3030
- END_INSN(trace_setspecial);}}}
3031
- INSN_ENTRY(trace_getinstancevariable){
3032
- {
3033
- {
3034
- vm_trace(ec, GET_CFP(), GET_PC());
3035
- DISPATCH_ORIGINAL_INSN(getinstancevariable);
3036
-
3037
- END_INSN(trace_getinstancevariable);}}}
3038
- INSN_ENTRY(trace_setinstancevariable){
3039
- {
3040
- {
3041
- vm_trace(ec, GET_CFP(), GET_PC());
3042
- DISPATCH_ORIGINAL_INSN(setinstancevariable);
3043
-
3044
- END_INSN(trace_setinstancevariable);}}}
3045
- INSN_ENTRY(trace_getclassvariable){
3046
- {
3047
- {
3048
- vm_trace(ec, GET_CFP(), GET_PC());
3049
- DISPATCH_ORIGINAL_INSN(getclassvariable);
3050
-
3051
- END_INSN(trace_getclassvariable);}}}
3052
- INSN_ENTRY(trace_setclassvariable){
3053
- {
3054
- {
3055
- vm_trace(ec, GET_CFP(), GET_PC());
3056
- DISPATCH_ORIGINAL_INSN(setclassvariable);
3057
-
3058
- END_INSN(trace_setclassvariable);}}}
3059
- INSN_ENTRY(trace_getconstant){
3060
- {
3061
- {
3062
- vm_trace(ec, GET_CFP(), GET_PC());
3063
- DISPATCH_ORIGINAL_INSN(getconstant);
3064
-
3065
- END_INSN(trace_getconstant);}}}
3066
- INSN_ENTRY(trace_setconstant){
3067
- {
3068
- {
3069
- vm_trace(ec, GET_CFP(), GET_PC());
3070
- DISPATCH_ORIGINAL_INSN(setconstant);
3071
-
3072
- END_INSN(trace_setconstant);}}}
3073
- INSN_ENTRY(trace_getglobal){
3074
- {
3075
- {
3076
- vm_trace(ec, GET_CFP(), GET_PC());
3077
- DISPATCH_ORIGINAL_INSN(getglobal);
3078
-
3079
- END_INSN(trace_getglobal);}}}
3080
- INSN_ENTRY(trace_setglobal){
3081
- {
3082
- {
3083
- vm_trace(ec, GET_CFP(), GET_PC());
3084
- DISPATCH_ORIGINAL_INSN(setglobal);
3085
-
3086
- END_INSN(trace_setglobal);}}}
3087
- INSN_ENTRY(trace_putnil){
3088
- {
3089
- {
3090
- vm_trace(ec, GET_CFP(), GET_PC());
3091
- DISPATCH_ORIGINAL_INSN(putnil);
3092
-
3093
- END_INSN(trace_putnil);}}}
3094
- INSN_ENTRY(trace_putself){
3095
- {
3096
- {
3097
- vm_trace(ec, GET_CFP(), GET_PC());
3098
- DISPATCH_ORIGINAL_INSN(putself);
3099
-
3100
- END_INSN(trace_putself);}}}
3101
- INSN_ENTRY(trace_putobject){
3102
- {
3103
- {
3104
- vm_trace(ec, GET_CFP(), GET_PC());
3105
- DISPATCH_ORIGINAL_INSN(putobject);
3106
-
3107
- END_INSN(trace_putobject);}}}
3108
- INSN_ENTRY(trace_putspecialobject){
3109
- {
3110
- {
3111
- vm_trace(ec, GET_CFP(), GET_PC());
3112
- DISPATCH_ORIGINAL_INSN(putspecialobject);
3113
-
3114
- END_INSN(trace_putspecialobject);}}}
3115
- INSN_ENTRY(trace_putiseq){
3116
- {
3117
- {
3118
- vm_trace(ec, GET_CFP(), GET_PC());
3119
- DISPATCH_ORIGINAL_INSN(putiseq);
3120
-
3121
- END_INSN(trace_putiseq);}}}
3122
- INSN_ENTRY(trace_putstring){
3123
- {
3124
- {
3125
- vm_trace(ec, GET_CFP(), GET_PC());
3126
- DISPATCH_ORIGINAL_INSN(putstring);
3127
-
3128
- END_INSN(trace_putstring);}}}
3129
- INSN_ENTRY(trace_concatstrings){
3130
- {
3131
- {
3132
- vm_trace(ec, GET_CFP(), GET_PC());
3133
- DISPATCH_ORIGINAL_INSN(concatstrings);
3134
-
3135
- END_INSN(trace_concatstrings);}}}
3136
- INSN_ENTRY(trace_tostring){
3137
- {
3138
- {
3139
- vm_trace(ec, GET_CFP(), GET_PC());
3140
- DISPATCH_ORIGINAL_INSN(tostring);
3141
-
3142
- END_INSN(trace_tostring);}}}
3143
- INSN_ENTRY(trace_freezestring){
3144
- {
3145
- {
3146
- vm_trace(ec, GET_CFP(), GET_PC());
3147
- DISPATCH_ORIGINAL_INSN(freezestring);
3148
-
3149
- END_INSN(trace_freezestring);}}}
3150
- INSN_ENTRY(trace_toregexp){
3151
- {
3152
- {
3153
- vm_trace(ec, GET_CFP(), GET_PC());
3154
- DISPATCH_ORIGINAL_INSN(toregexp);
3155
-
3156
- END_INSN(trace_toregexp);}}}
3157
- INSN_ENTRY(trace_intern){
3158
- {
3159
- {
3160
- vm_trace(ec, GET_CFP(), GET_PC());
3161
- DISPATCH_ORIGINAL_INSN(intern);
3162
-
3163
- END_INSN(trace_intern);}}}
3164
- INSN_ENTRY(trace_newarray){
3165
- {
3166
- {
3167
- vm_trace(ec, GET_CFP(), GET_PC());
3168
- DISPATCH_ORIGINAL_INSN(newarray);
3169
-
3170
- END_INSN(trace_newarray);}}}
3171
- INSN_ENTRY(trace_duparray){
3172
- {
3173
- {
3174
- vm_trace(ec, GET_CFP(), GET_PC());
3175
- DISPATCH_ORIGINAL_INSN(duparray);
3176
-
3177
- END_INSN(trace_duparray);}}}
3178
- INSN_ENTRY(trace_expandarray){
3179
- {
3180
- {
3181
- vm_trace(ec, GET_CFP(), GET_PC());
3182
- DISPATCH_ORIGINAL_INSN(expandarray);
3183
-
3184
- END_INSN(trace_expandarray);}}}
3185
- INSN_ENTRY(trace_concatarray){
3186
- {
3187
- {
3188
- vm_trace(ec, GET_CFP(), GET_PC());
3189
- DISPATCH_ORIGINAL_INSN(concatarray);
3190
-
3191
- END_INSN(trace_concatarray);}}}
3192
- INSN_ENTRY(trace_splatarray){
3193
- {
3194
- {
3195
- vm_trace(ec, GET_CFP(), GET_PC());
3196
- DISPATCH_ORIGINAL_INSN(splatarray);
3197
-
3198
- END_INSN(trace_splatarray);}}}
3199
- INSN_ENTRY(trace_newhash){
3200
- {
3201
- {
3202
- vm_trace(ec, GET_CFP(), GET_PC());
3203
- DISPATCH_ORIGINAL_INSN(newhash);
3204
-
3205
- END_INSN(trace_newhash);}}}
3206
- INSN_ENTRY(trace_newrange){
3207
- {
3208
- {
3209
- vm_trace(ec, GET_CFP(), GET_PC());
3210
- DISPATCH_ORIGINAL_INSN(newrange);
3211
-
3212
- END_INSN(trace_newrange);}}}
3213
- INSN_ENTRY(trace_pop){
3214
- {
3215
- {
3216
- vm_trace(ec, GET_CFP(), GET_PC());
3217
- DISPATCH_ORIGINAL_INSN(pop);
3218
-
3219
- END_INSN(trace_pop);}}}
3220
- INSN_ENTRY(trace_dup){
3221
- {
3222
- {
3223
- vm_trace(ec, GET_CFP(), GET_PC());
3224
- DISPATCH_ORIGINAL_INSN(dup);
3225
-
3226
- END_INSN(trace_dup);}}}
3227
- INSN_ENTRY(trace_dupn){
3228
- {
3229
- {
3230
- vm_trace(ec, GET_CFP(), GET_PC());
3231
- DISPATCH_ORIGINAL_INSN(dupn);
3232
-
3233
- END_INSN(trace_dupn);}}}
3234
- INSN_ENTRY(trace_swap){
3235
- {
3236
- {
3237
- vm_trace(ec, GET_CFP(), GET_PC());
3238
- DISPATCH_ORIGINAL_INSN(swap);
3239
-
3240
- END_INSN(trace_swap);}}}
3241
- INSN_ENTRY(trace_reverse){
3242
- {
3243
- {
3244
- vm_trace(ec, GET_CFP(), GET_PC());
3245
- DISPATCH_ORIGINAL_INSN(reverse);
3246
-
3247
- END_INSN(trace_reverse);}}}
3248
- INSN_ENTRY(trace_reput){
3249
- {
3250
- {
3251
- vm_trace(ec, GET_CFP(), GET_PC());
3252
- DISPATCH_ORIGINAL_INSN(reput);
3253
-
3254
- END_INSN(trace_reput);}}}
3255
- INSN_ENTRY(trace_topn){
3256
- {
3257
- {
3258
- vm_trace(ec, GET_CFP(), GET_PC());
3259
- DISPATCH_ORIGINAL_INSN(topn);
3260
-
3261
- END_INSN(trace_topn);}}}
3262
- INSN_ENTRY(trace_setn){
3263
- {
3264
- {
3265
- vm_trace(ec, GET_CFP(), GET_PC());
3266
- DISPATCH_ORIGINAL_INSN(setn);
3267
-
3268
- END_INSN(trace_setn);}}}
3269
- INSN_ENTRY(trace_adjuststack){
3270
- {
3271
- {
3272
- vm_trace(ec, GET_CFP(), GET_PC());
3273
- DISPATCH_ORIGINAL_INSN(adjuststack);
3274
-
3275
- END_INSN(trace_adjuststack);}}}
3276
- INSN_ENTRY(trace_defined){
3277
- {
3278
- {
3279
- vm_trace(ec, GET_CFP(), GET_PC());
3280
- DISPATCH_ORIGINAL_INSN(defined);
3281
-
3282
- END_INSN(trace_defined);}}}
3283
- INSN_ENTRY(trace_checkmatch){
3284
- {
3285
- {
3286
- vm_trace(ec, GET_CFP(), GET_PC());
3287
- DISPATCH_ORIGINAL_INSN(checkmatch);
3288
-
3289
- END_INSN(trace_checkmatch);}}}
3290
- INSN_ENTRY(trace_checkkeyword){
3291
- {
3292
- {
3293
- vm_trace(ec, GET_CFP(), GET_PC());
3294
- DISPATCH_ORIGINAL_INSN(checkkeyword);
3295
-
3296
- END_INSN(trace_checkkeyword);}}}
3297
- INSN_ENTRY(trace_tracecoverage){
3298
- {
3299
- {
3300
- vm_trace(ec, GET_CFP(), GET_PC());
3301
- DISPATCH_ORIGINAL_INSN(tracecoverage);
3302
-
3303
- END_INSN(trace_tracecoverage);}}}
3304
- INSN_ENTRY(trace_defineclass){
3305
- {
3306
- {
3307
- vm_trace(ec, GET_CFP(), GET_PC());
3308
- DISPATCH_ORIGINAL_INSN(defineclass);
3309
-
3310
- END_INSN(trace_defineclass);}}}
3311
- INSN_ENTRY(trace_send){
3312
- {
3313
- {
3314
- vm_trace(ec, GET_CFP(), GET_PC());
3315
- DISPATCH_ORIGINAL_INSN(send);
3316
-
3317
- END_INSN(trace_send);}}}
3318
- INSN_ENTRY(trace_opt_str_freeze){
3319
- {
3320
- {
3321
- vm_trace(ec, GET_CFP(), GET_PC());
3322
- DISPATCH_ORIGINAL_INSN(opt_str_freeze);
3323
-
3324
- END_INSN(trace_opt_str_freeze);}}}
3325
- INSN_ENTRY(trace_opt_str_uminus){
3326
- {
3327
- {
3328
- vm_trace(ec, GET_CFP(), GET_PC());
3329
- DISPATCH_ORIGINAL_INSN(opt_str_uminus);
3330
-
3331
- END_INSN(trace_opt_str_uminus);}}}
3332
- INSN_ENTRY(trace_opt_newarray_max){
3333
- {
3334
- {
3335
- vm_trace(ec, GET_CFP(), GET_PC());
3336
- DISPATCH_ORIGINAL_INSN(opt_newarray_max);
3337
-
3338
- END_INSN(trace_opt_newarray_max);}}}
3339
- INSN_ENTRY(trace_opt_newarray_min){
3340
- {
3341
- {
3342
- vm_trace(ec, GET_CFP(), GET_PC());
3343
- DISPATCH_ORIGINAL_INSN(opt_newarray_min);
3344
-
3345
- END_INSN(trace_opt_newarray_min);}}}
3346
- INSN_ENTRY(trace_opt_send_without_block){
3347
- {
3348
- {
3349
- vm_trace(ec, GET_CFP(), GET_PC());
3350
- DISPATCH_ORIGINAL_INSN(opt_send_without_block);
3351
-
3352
- END_INSN(trace_opt_send_without_block);}}}
3353
- INSN_ENTRY(trace_invokesuper){
3354
- {
3355
- {
3356
- vm_trace(ec, GET_CFP(), GET_PC());
3357
- DISPATCH_ORIGINAL_INSN(invokesuper);
3358
-
3359
- END_INSN(trace_invokesuper);}}}
3360
- INSN_ENTRY(trace_invokeblock){
3361
- {
3362
- {
3363
- vm_trace(ec, GET_CFP(), GET_PC());
3364
- DISPATCH_ORIGINAL_INSN(invokeblock);
3365
-
3366
- END_INSN(trace_invokeblock);}}}
3367
- INSN_ENTRY(trace_leave){
3368
- {
3369
- {
3370
- vm_trace(ec, GET_CFP(), GET_PC());
3371
- DISPATCH_ORIGINAL_INSN(leave);
3372
-
3373
- END_INSN(trace_leave);}}}
3374
- INSN_ENTRY(trace_throw){
3375
- {
3376
- {
3377
- vm_trace(ec, GET_CFP(), GET_PC());
3378
- DISPATCH_ORIGINAL_INSN(throw);
3379
-
3380
- END_INSN(trace_throw);}}}
3381
- INSN_ENTRY(trace_jump){
3382
- {
3383
- {
3384
- vm_trace(ec, GET_CFP(), GET_PC());
3385
- DISPATCH_ORIGINAL_INSN(jump);
3386
-
3387
- END_INSN(trace_jump);}}}
3388
- INSN_ENTRY(trace_branchif){
3389
- {
3390
- {
3391
- vm_trace(ec, GET_CFP(), GET_PC());
3392
- DISPATCH_ORIGINAL_INSN(branchif);
3393
-
3394
- END_INSN(trace_branchif);}}}
3395
- INSN_ENTRY(trace_branchunless){
3396
- {
3397
- {
3398
- vm_trace(ec, GET_CFP(), GET_PC());
3399
- DISPATCH_ORIGINAL_INSN(branchunless);
3400
-
3401
- END_INSN(trace_branchunless);}}}
3402
- INSN_ENTRY(trace_branchnil){
3403
- {
3404
- {
3405
- vm_trace(ec, GET_CFP(), GET_PC());
3406
- DISPATCH_ORIGINAL_INSN(branchnil);
3407
-
3408
- END_INSN(trace_branchnil);}}}
3409
- INSN_ENTRY(trace_branchiftype){
3410
- {
3411
- {
3412
- vm_trace(ec, GET_CFP(), GET_PC());
3413
- DISPATCH_ORIGINAL_INSN(branchiftype);
3414
-
3415
- END_INSN(trace_branchiftype);}}}
3416
- INSN_ENTRY(trace_getinlinecache){
3417
- {
3418
- {
3419
- vm_trace(ec, GET_CFP(), GET_PC());
3420
- DISPATCH_ORIGINAL_INSN(getinlinecache);
3421
-
3422
- END_INSN(trace_getinlinecache);}}}
3423
- INSN_ENTRY(trace_setinlinecache){
3424
- {
3425
- {
3426
- vm_trace(ec, GET_CFP(), GET_PC());
3427
- DISPATCH_ORIGINAL_INSN(setinlinecache);
3428
-
3429
- END_INSN(trace_setinlinecache);}}}
3430
- INSN_ENTRY(trace_once){
3431
- {
3432
- {
3433
- vm_trace(ec, GET_CFP(), GET_PC());
3434
- DISPATCH_ORIGINAL_INSN(once);
3435
-
3436
- END_INSN(trace_once);}}}
3437
- INSN_ENTRY(trace_opt_case_dispatch){
3438
- {
3439
- {
3440
- vm_trace(ec, GET_CFP(), GET_PC());
3441
- DISPATCH_ORIGINAL_INSN(opt_case_dispatch);
3442
-
3443
- END_INSN(trace_opt_case_dispatch);}}}
3444
- INSN_ENTRY(trace_opt_plus){
3445
- {
3446
- {
3447
- vm_trace(ec, GET_CFP(), GET_PC());
3448
- DISPATCH_ORIGINAL_INSN(opt_plus);
3449
-
3450
- END_INSN(trace_opt_plus);}}}
3451
- INSN_ENTRY(trace_opt_minus){
3452
- {
3453
- {
3454
- vm_trace(ec, GET_CFP(), GET_PC());
3455
- DISPATCH_ORIGINAL_INSN(opt_minus);
3456
-
3457
- END_INSN(trace_opt_minus);}}}
3458
- INSN_ENTRY(trace_opt_mult){
3459
- {
3460
- {
3461
- vm_trace(ec, GET_CFP(), GET_PC());
3462
- DISPATCH_ORIGINAL_INSN(opt_mult);
3463
-
3464
- END_INSN(trace_opt_mult);}}}
3465
- INSN_ENTRY(trace_opt_div){
3466
- {
3467
- {
3468
- vm_trace(ec, GET_CFP(), GET_PC());
3469
- DISPATCH_ORIGINAL_INSN(opt_div);
3470
-
3471
- END_INSN(trace_opt_div);}}}
3472
- INSN_ENTRY(trace_opt_mod){
3473
- {
3474
- {
3475
- vm_trace(ec, GET_CFP(), GET_PC());
3476
- DISPATCH_ORIGINAL_INSN(opt_mod);
3477
-
3478
- END_INSN(trace_opt_mod);}}}
3479
- INSN_ENTRY(trace_opt_eq){
3480
- {
3481
- {
3482
- vm_trace(ec, GET_CFP(), GET_PC());
3483
- DISPATCH_ORIGINAL_INSN(opt_eq);
3484
-
3485
- END_INSN(trace_opt_eq);}}}
3486
- INSN_ENTRY(trace_opt_neq){
3487
- {
3488
- {
3489
- vm_trace(ec, GET_CFP(), GET_PC());
3490
- DISPATCH_ORIGINAL_INSN(opt_neq);
3491
-
3492
- END_INSN(trace_opt_neq);}}}
3493
- INSN_ENTRY(trace_opt_lt){
3494
- {
3495
- {
3496
- vm_trace(ec, GET_CFP(), GET_PC());
3497
- DISPATCH_ORIGINAL_INSN(opt_lt);
3498
-
3499
- END_INSN(trace_opt_lt);}}}
3500
- INSN_ENTRY(trace_opt_le){
3501
- {
3502
- {
3503
- vm_trace(ec, GET_CFP(), GET_PC());
3504
- DISPATCH_ORIGINAL_INSN(opt_le);
3505
-
3506
- END_INSN(trace_opt_le);}}}
3507
- INSN_ENTRY(trace_opt_gt){
3508
- {
3509
- {
3510
- vm_trace(ec, GET_CFP(), GET_PC());
3511
- DISPATCH_ORIGINAL_INSN(opt_gt);
3512
-
3513
- END_INSN(trace_opt_gt);}}}
3514
- INSN_ENTRY(trace_opt_ge){
3515
- {
3516
- {
3517
- vm_trace(ec, GET_CFP(), GET_PC());
3518
- DISPATCH_ORIGINAL_INSN(opt_ge);
3519
-
3520
- END_INSN(trace_opt_ge);}}}
3521
- INSN_ENTRY(trace_opt_ltlt){
3522
- {
3523
- {
3524
- vm_trace(ec, GET_CFP(), GET_PC());
3525
- DISPATCH_ORIGINAL_INSN(opt_ltlt);
3526
-
3527
- END_INSN(trace_opt_ltlt);}}}
3528
- INSN_ENTRY(trace_opt_aref){
3529
- {
3530
- {
3531
- vm_trace(ec, GET_CFP(), GET_PC());
3532
- DISPATCH_ORIGINAL_INSN(opt_aref);
3533
-
3534
- END_INSN(trace_opt_aref);}}}
3535
- INSN_ENTRY(trace_opt_aset){
3536
- {
3537
- {
3538
- vm_trace(ec, GET_CFP(), GET_PC());
3539
- DISPATCH_ORIGINAL_INSN(opt_aset);
3540
-
3541
- END_INSN(trace_opt_aset);}}}
3542
- INSN_ENTRY(trace_opt_aset_with){
3543
- {
3544
- {
3545
- vm_trace(ec, GET_CFP(), GET_PC());
3546
- DISPATCH_ORIGINAL_INSN(opt_aset_with);
3547
-
3548
- END_INSN(trace_opt_aset_with);}}}
3549
- INSN_ENTRY(trace_opt_aref_with){
3550
- {
3551
- {
3552
- vm_trace(ec, GET_CFP(), GET_PC());
3553
- DISPATCH_ORIGINAL_INSN(opt_aref_with);
3554
-
3555
- END_INSN(trace_opt_aref_with);}}}
3556
- INSN_ENTRY(trace_opt_length){
3557
- {
3558
- {
3559
- vm_trace(ec, GET_CFP(), GET_PC());
3560
- DISPATCH_ORIGINAL_INSN(opt_length);
3561
-
3562
- END_INSN(trace_opt_length);}}}
3563
- INSN_ENTRY(trace_opt_size){
3564
- {
3565
- {
3566
- vm_trace(ec, GET_CFP(), GET_PC());
3567
- DISPATCH_ORIGINAL_INSN(opt_size);
3568
-
3569
- END_INSN(trace_opt_size);}}}
3570
- INSN_ENTRY(trace_opt_empty_p){
3571
- {
3572
- {
3573
- vm_trace(ec, GET_CFP(), GET_PC());
3574
- DISPATCH_ORIGINAL_INSN(opt_empty_p);
3575
-
3576
- END_INSN(trace_opt_empty_p);}}}
3577
- INSN_ENTRY(trace_opt_succ){
3578
- {
3579
- {
3580
- vm_trace(ec, GET_CFP(), GET_PC());
3581
- DISPATCH_ORIGINAL_INSN(opt_succ);
3582
-
3583
- END_INSN(trace_opt_succ);}}}
3584
- INSN_ENTRY(trace_opt_not){
3585
- {
3586
- {
3587
- vm_trace(ec, GET_CFP(), GET_PC());
3588
- DISPATCH_ORIGINAL_INSN(opt_not);
3589
-
3590
- END_INSN(trace_opt_not);}}}
3591
- INSN_ENTRY(trace_opt_regexpmatch1){
3592
- {
3593
- {
3594
- vm_trace(ec, GET_CFP(), GET_PC());
3595
- DISPATCH_ORIGINAL_INSN(opt_regexpmatch1);
3596
-
3597
- END_INSN(trace_opt_regexpmatch1);}}}
3598
- INSN_ENTRY(trace_opt_regexpmatch2){
3599
- {
3600
- {
3601
- vm_trace(ec, GET_CFP(), GET_PC());
3602
- DISPATCH_ORIGINAL_INSN(opt_regexpmatch2);
3603
-
3604
- END_INSN(trace_opt_regexpmatch2);}}}
3605
- INSN_ENTRY(trace_opt_call_c_function){
3606
- {
3607
- {
3608
- vm_trace(ec, GET_CFP(), GET_PC());
3609
- DISPATCH_ORIGINAL_INSN(opt_call_c_function);
3610
-
3611
- END_INSN(trace_opt_call_c_function);}}}
3612
- INSN_ENTRY(trace_bitblt){
3613
- {
3614
- {
3615
- vm_trace(ec, GET_CFP(), GET_PC());
3616
- DISPATCH_ORIGINAL_INSN(bitblt);
3617
-
3618
- END_INSN(trace_bitblt);}}}
3619
- INSN_ENTRY(trace_answer){
3620
- {
3621
- {
3622
- vm_trace(ec, GET_CFP(), GET_PC());
3623
- DISPATCH_ORIGINAL_INSN(answer);
3624
-
3625
- END_INSN(trace_answer);}}}
3626
- INSN_ENTRY(trace_getlocal_OP__WC__0){
3627
- {
3628
- {
3629
- vm_trace(ec, GET_CFP(), GET_PC());
3630
- DISPATCH_ORIGINAL_INSN(getlocal_OP__WC__0);
3631
-
3632
- END_INSN(trace_getlocal_OP__WC__0);}}}
3633
- INSN_ENTRY(trace_getlocal_OP__WC__1){
3634
- {
3635
- {
3636
- vm_trace(ec, GET_CFP(), GET_PC());
3637
- DISPATCH_ORIGINAL_INSN(getlocal_OP__WC__1);
3638
-
3639
- END_INSN(trace_getlocal_OP__WC__1);}}}
3640
- INSN_ENTRY(trace_setlocal_OP__WC__0){
3641
- {
3642
- {
3643
- vm_trace(ec, GET_CFP(), GET_PC());
3644
- DISPATCH_ORIGINAL_INSN(setlocal_OP__WC__0);
3645
-
3646
- END_INSN(trace_setlocal_OP__WC__0);}}}
3647
- INSN_ENTRY(trace_setlocal_OP__WC__1){
3648
- {
3649
- {
3650
- vm_trace(ec, GET_CFP(), GET_PC());
3651
- DISPATCH_ORIGINAL_INSN(setlocal_OP__WC__1);
3652
-
3653
- END_INSN(trace_setlocal_OP__WC__1);}}}
3654
- INSN_ENTRY(trace_putobject_OP_INT2FIX_O_0_C_){
3655
- {
3656
- {
3657
- vm_trace(ec, GET_CFP(), GET_PC());
3658
- DISPATCH_ORIGINAL_INSN(putobject_OP_INT2FIX_O_0_C_);
3659
-
3660
- END_INSN(trace_putobject_OP_INT2FIX_O_0_C_);}}}
3661
- INSN_ENTRY(trace_putobject_OP_INT2FIX_O_1_C_){
3662
- {
3663
- {
3664
- vm_trace(ec, GET_CFP(), GET_PC());
3665
- DISPATCH_ORIGINAL_INSN(putobject_OP_INT2FIX_O_1_C_);
3666
-
3667
- END_INSN(trace_putobject_OP_INT2FIX_O_1_C_);}}}