ruby-internal 0.7.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. data/bin/ruby-internal-node-dump +1 -1
  2. data/bin/ruby-internal-obfuscate +1 -1
  3. data/ext/cached/ruby-1.8.4/internal/method/{method.h → internal_method.h} +12 -0
  4. data/ext/cached/ruby-1.8.4/internal/module/getcfp.h +13 -0
  5. data/ext/cached/ruby-1.8.4/internal/node/global_entry.h +94 -0
  6. data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +41 -41
  7. data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +288 -273
  8. data/ext/cached/ruby-1.8.4/internal/vm/instruction/insns_info.c +3 -0
  9. data/ext/cached/ruby-1.8.4/internal/vm/iseq/iseq_load.inc +21 -2
  10. data/ext/cached/{ruby-1.8.3/internal/method/method.h → ruby-1.8.5/internal/method/internal_method.h} +12 -0
  11. data/ext/cached/ruby-1.8.5/internal/module/getcfp.h +13 -0
  12. data/ext/cached/ruby-1.8.5/internal/node/global_entry.h +94 -0
  13. data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +45 -45
  14. data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +310 -295
  15. data/ext/cached/ruby-1.8.5/internal/vm/instruction/insns_info.c +3 -0
  16. data/ext/cached/ruby-1.8.5/internal/vm/iseq/iseq_load.inc +21 -2
  17. data/ext/cached/{ruby-1.8.5/internal/method/method.h → ruby-1.8.6/internal/method/internal_method.h} +12 -0
  18. data/ext/cached/ruby-1.8.6/internal/module/getcfp.h +13 -0
  19. data/ext/cached/ruby-1.8.6/internal/node/global_entry.h +94 -0
  20. data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +48 -48
  21. data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +323 -308
  22. data/ext/cached/ruby-1.8.6/internal/vm/instruction/insns_info.c +3 -0
  23. data/ext/cached/ruby-1.8.6/internal/vm/iseq/iseq_load.inc +21 -2
  24. data/ext/cached/{ruby-1.8.6/internal/method/method.h → ruby-1.8.7/internal/method/internal_method.h} +12 -0
  25. data/ext/cached/ruby-1.8.7/internal/module/getcfp.h +13 -0
  26. data/ext/cached/ruby-1.8.7/internal/node/global_entry.h +98 -0
  27. data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +42 -42
  28. data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +276 -261
  29. data/ext/cached/ruby-1.8.7/internal/vm/instruction/insns_info.c +3 -0
  30. data/ext/cached/ruby-1.8.7/internal/vm/iseq/iseq_load.inc +21 -2
  31. data/ext/cached/{ruby-1.9.0/internal/method/method.h → ruby-1.9.1/internal/method/internal_method.h} +12 -0
  32. data/ext/cached/ruby-1.9.1/internal/module/classpath.c +12 -14
  33. data/ext/cached/ruby-1.9.1/internal/module/getcfp.h +25 -0
  34. data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +86 -0
  35. data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +46 -48
  36. data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +311 -412
  37. data/ext/cached/ruby-1.9.1/internal/vm/instruction/insns_info.c +3 -0
  38. data/ext/cached/ruby-1.9.1/internal/vm/iseq/iseq_load.inc +28 -6
  39. data/ext/cached/ruby-1.9.1/internal/yarv-headers/iseq.h +1 -0
  40. data/ext/cached/ruby-1.9.1/internal/yarv-headers/parse.h +6 -6
  41. data/ext/cached/ruby-1.9.1/internal/yarv-headers/revision.h +1 -1
  42. data/ext/cached/ruby-1.9.1/internal/yarv-headers/version.h +6 -5
  43. data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_core.h +3 -2
  44. data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_insnhelper.h +1 -0
  45. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/binding/block.h +0 -0
  46. data/ext/cached/{ruby-1.9.1/internal/method/method.h → ruby-1.9.2/internal/method/internal_method.h} +16 -5
  47. data/ext/cached/ruby-1.9.2/internal/module/classpath.c +40 -0
  48. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/module/classpath.h +0 -0
  49. data/ext/cached/ruby-1.9.2/internal/module/getcfp.h +25 -0
  50. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/block.h +0 -0
  51. data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +93 -0
  52. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/node_type_descrip.c +44 -48
  53. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/nodeinfo.c +291 -439
  54. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/nodeinfo.h +0 -0
  55. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/proc/block.h +0 -0
  56. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/tag/tag.h +0 -0
  57. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/instruction/insns_info.c +141 -64
  58. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/instruction/insns_info.h +88 -80
  59. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/iseq/insns_info.inc +77 -70
  60. data/ext/cached/ruby-1.9.2/internal/vm/iseq/iseq_load.inc +426 -0
  61. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/debug.h +1 -1
  62. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/dln.h +3 -3
  63. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/encdb.h +18 -2
  64. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/eval_intern.h +39 -28
  65. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/gc.h +7 -5
  66. data/ext/cached/ruby-1.9.2/internal/yarv-headers/id.h +170 -0
  67. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/iseq.h +20 -10
  68. data/ext/cached/ruby-1.9.2/internal/yarv-headers/method.h +103 -0
  69. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/node.h +14 -47
  70. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/parse.h +31 -148
  71. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regenc.h +7 -3
  72. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regint.h +16 -17
  73. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regparse.h +4 -1
  74. data/ext/cached/ruby-1.9.2/internal/yarv-headers/revision.h +1 -0
  75. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/thread_pthread.h +4 -1
  76. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/thread_win32.h +1 -1
  77. data/ext/cached/ruby-1.9.2/internal/yarv-headers/timev.h +21 -0
  78. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/transcode_data.h +20 -10
  79. data/ext/cached/ruby-1.9.2/internal/yarv-headers/transdb.h +179 -0
  80. data/ext/cached/ruby-1.9.2/internal/yarv-headers/version.h +55 -0
  81. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_core.h +127 -84
  82. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_exec.h +4 -7
  83. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_insnhelper.h +53 -36
  84. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_opts.h +1 -1
  85. data/ext/cached/ruby-1.9.3/internal/binding/block.h +12 -0
  86. data/ext/cached/ruby-1.9.3/internal/method/internal_method.h +32 -0
  87. data/ext/cached/ruby-1.9.3/internal/module/classpath.c +40 -0
  88. data/ext/cached/{ruby-1.8.0 → ruby-1.9.3}/internal/module/classpath.h +5 -2
  89. data/ext/cached/ruby-1.9.3/internal/module/getcfp.h +25 -0
  90. data/ext/cached/ruby-1.9.3/internal/node/block.h +12 -0
  91. data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +93 -0
  92. data/ext/cached/{ruby-1.8.3 → ruby-1.9.3}/internal/node/node_type_descrip.c +48 -57
  93. data/ext/cached/{ruby-1.6.8 → ruby-1.9.3}/internal/node/nodeinfo.c +589 -740
  94. data/ext/cached/{ruby-1.8.0 → ruby-1.9.3}/internal/node/nodeinfo.h +4 -3
  95. data/ext/cached/ruby-1.9.3/internal/proc/block.h +12 -0
  96. data/ext/cached/ruby-1.9.3/internal/tag/tag.h +6 -0
  97. data/ext/cached/ruby-1.9.3/internal/vm/instruction/insns_info.c +6013 -0
  98. data/ext/cached/ruby-1.9.3/internal/vm/instruction/insns_info.h +899 -0
  99. data/ext/cached/ruby-1.9.3/internal/vm/iseq/insns_info.inc +707 -0
  100. data/ext/cached/ruby-1.9.3/internal/vm/iseq/iseq_load.inc +423 -0
  101. data/ext/cached/ruby-1.9.3/internal/yarv-headers/addr2line.h +21 -0
  102. data/ext/cached/ruby-1.9.3/internal/yarv-headers/atomic.h +56 -0
  103. data/ext/cached/ruby-1.9.3/internal/yarv-headers/constant.h +34 -0
  104. data/ext/cached/ruby-1.9.3/internal/yarv-headers/debug.h +41 -0
  105. data/ext/cached/ruby-1.9.3/internal/yarv-headers/dln.h +50 -0
  106. data/ext/cached/ruby-1.9.3/internal/yarv-headers/encdb.h +167 -0
  107. data/ext/cached/ruby-1.9.3/internal/yarv-headers/eval_intern.h +234 -0
  108. data/ext/cached/ruby-1.9.3/internal/yarv-headers/gc.h +98 -0
  109. data/ext/cached/ruby-1.9.3/internal/yarv-headers/id.h +175 -0
  110. data/ext/cached/ruby-1.9.3/internal/yarv-headers/internal.h +232 -0
  111. data/ext/cached/ruby-1.9.3/internal/yarv-headers/iseq.h +125 -0
  112. data/ext/cached/ruby-1.9.3/internal/yarv-headers/method.h +105 -0
  113. data/ext/cached/ruby-1.9.3/internal/yarv-headers/node.h +503 -0
  114. data/ext/cached/ruby-1.9.3/internal/yarv-headers/parse.h +186 -0
  115. data/ext/cached/ruby-1.9.3/internal/yarv-headers/regenc.h +219 -0
  116. data/ext/cached/ruby-1.9.3/internal/yarv-headers/regint.h +850 -0
  117. data/ext/cached/ruby-1.9.3/internal/yarv-headers/regparse.h +362 -0
  118. data/ext/cached/ruby-1.9.3/internal/yarv-headers/revision.h +1 -0
  119. data/ext/cached/ruby-1.9.3/internal/yarv-headers/thread_pthread.h +51 -0
  120. data/ext/cached/ruby-1.9.3/internal/yarv-headers/thread_win32.h +40 -0
  121. data/ext/cached/ruby-1.9.3/internal/yarv-headers/timev.h +21 -0
  122. data/ext/cached/ruby-1.9.3/internal/yarv-headers/transcode_data.h +117 -0
  123. data/ext/cached/ruby-1.9.3/internal/yarv-headers/transdb.h +189 -0
  124. data/ext/cached/ruby-1.9.3/internal/yarv-headers/version.h +52 -0
  125. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_core.h +756 -0
  126. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_exec.h +184 -0
  127. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_insnhelper.h +220 -0
  128. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_opts.h +51 -0
  129. data/ext/internal/binding/block.h +20 -0
  130. data/ext/internal/method/internal_method.h +5 -38
  131. data/ext/internal/method/internal_method.h.rpp +0 -7
  132. data/ext/internal/method/method.c +52 -32
  133. data/ext/internal/module/classpath.c +18 -13
  134. data/ext/internal/module/classpath.h +3 -3
  135. data/ext/internal/module/extconf.rb +3 -2
  136. data/ext/internal/module/getcfp.h +13 -0
  137. data/ext/internal/module/getcfp.h.rpp +44 -0
  138. data/ext/internal/module/module.c +58 -21
  139. data/ext/internal/node/block.h +20 -0
  140. data/ext/internal/node/extconf.rb +2 -0
  141. data/ext/internal/node/global_entry.h +69 -13
  142. data/ext/internal/node/global_entry.h.rpp +11 -2
  143. data/ext/internal/node/node.c +30 -3
  144. data/ext/internal/node/node_type_descrip.c +47 -38
  145. data/ext/internal/node/nodeinfo.c +622 -306
  146. data/ext/internal/node/nodeinfo.h +1 -4
  147. data/ext/internal/proc/block.h +20 -0
  148. data/ext/internal/tag/tag.h +10 -0
  149. data/ext/internal/thread/thread.c +9 -3
  150. data/ext/internal/vm/extconf.rb +1 -0
  151. data/ext/internal/vm/instruction/insns_info.c +3 -5974
  152. data/ext/internal/vm/instruction/insns_info.h +0 -878
  153. data/ext/internal/vm/iseq/extconf.rb +1 -0
  154. data/ext/internal/vm/iseq/iseq.c +38 -4
  155. data/ext/internal/vm/iseq/iseq_load.inc.rpp +23 -5
  156. data/ext/internal/vm/vm.c +28 -0
  157. data/lib/internal/classtree.rb +28 -0
  158. data/lib/internal/debug.rb +10 -2
  159. data/lib/internal/method/as_code.rb +25 -0
  160. data/lib/internal/method/as_expression.rb +2 -3
  161. data/lib/internal/method/origin.rb +29 -0
  162. data/lib/internal/method/signature.rb +5 -300
  163. data/lib/internal/method/signature/argument.rb +102 -0
  164. data/lib/internal/method/signature/iseq.rb +52 -0
  165. data/lib/internal/method/signature/node.rb +160 -0
  166. data/lib/internal/method/signature/signature.rb +23 -0
  167. data/lib/internal/proc/as_code.rb +2 -0
  168. data/lib/internal/proc/as_expression.rb +2 -0
  169. data/lib/internal/vm/bytedecoder.rb +5 -5
  170. data/lib/internal/vm/iseq/as_code.rb +2 -2
  171. data/lib/internal/vm/iseq/as_expression.rb +2 -2
  172. data/test/test_dump_method.rb +1 -1
  173. data/test/test_method.rb +21 -3
  174. data/test/test_node.rb +20 -4
  175. metadata +152 -155
  176. data/ext/cached/ruby-1.6.8/internal/binding/block.h +0 -35
  177. data/ext/cached/ruby-1.6.8/internal/method/method.h +0 -19
  178. data/ext/cached/ruby-1.6.8/internal/module/classpath.c +0 -3
  179. data/ext/cached/ruby-1.6.8/internal/module/classpath.h +0 -8
  180. data/ext/cached/ruby-1.6.8/internal/node/block.h +0 -35
  181. data/ext/cached/ruby-1.6.8/internal/node/global_entry.h +0 -15
  182. data/ext/cached/ruby-1.6.8/internal/node/node_type_descrip.c +0 -149
  183. data/ext/cached/ruby-1.6.8/internal/node/nodeinfo.h +0 -69
  184. data/ext/cached/ruby-1.6.8/internal/proc/block.h +0 -35
  185. data/ext/cached/ruby-1.6.8/internal/tag/tag.h +0 -15
  186. data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.c +0 -39
  187. data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.h +0 -21
  188. data/ext/cached/ruby-1.6.8/internal/vm/iseq/insns_info.inc +0 -12
  189. data/ext/cached/ruby-1.6.8/internal/vm/iseq/iseq_load.inc +0 -9
  190. data/ext/cached/ruby-1.8.0/internal/binding/block.h +0 -37
  191. data/ext/cached/ruby-1.8.0/internal/method/method.h +0 -19
  192. data/ext/cached/ruby-1.8.0/internal/module/classpath.c +0 -27
  193. data/ext/cached/ruby-1.8.0/internal/node/block.h +0 -37
  194. data/ext/cached/ruby-1.8.0/internal/node/global_entry.h +0 -10
  195. data/ext/cached/ruby-1.8.0/internal/node/node_type_descrip.c +0 -155
  196. data/ext/cached/ruby-1.8.0/internal/node/nodeinfo.c +0 -5744
  197. data/ext/cached/ruby-1.8.0/internal/proc/block.h +0 -37
  198. data/ext/cached/ruby-1.8.0/internal/tag/tag.h +0 -15
  199. data/ext/cached/ruby-1.8.0/internal/vm/instruction/insns_info.c +0 -39
  200. data/ext/cached/ruby-1.8.0/internal/vm/instruction/insns_info.h +0 -21
  201. data/ext/cached/ruby-1.8.0/internal/vm/iseq/insns_info.inc +0 -12
  202. data/ext/cached/ruby-1.8.0/internal/vm/iseq/iseq_load.inc +0 -9
  203. data/ext/cached/ruby-1.8.1/internal/binding/block.h +0 -31
  204. data/ext/cached/ruby-1.8.1/internal/method/method.h +0 -19
  205. data/ext/cached/ruby-1.8.1/internal/module/classpath.c +0 -27
  206. data/ext/cached/ruby-1.8.1/internal/module/classpath.h +0 -14
  207. data/ext/cached/ruby-1.8.1/internal/node/block.h +0 -31
  208. data/ext/cached/ruby-1.8.1/internal/node/global_entry.h +0 -10
  209. data/ext/cached/ruby-1.8.1/internal/node/node_type_descrip.c +0 -154
  210. data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.c +0 -5736
  211. data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.h +0 -69
  212. data/ext/cached/ruby-1.8.1/internal/proc/block.h +0 -31
  213. data/ext/cached/ruby-1.8.1/internal/tag/tag.h +0 -16
  214. data/ext/cached/ruby-1.8.1/internal/vm/instruction/insns_info.c +0 -39
  215. data/ext/cached/ruby-1.8.1/internal/vm/instruction/insns_info.h +0 -21
  216. data/ext/cached/ruby-1.8.1/internal/vm/iseq/insns_info.inc +0 -12
  217. data/ext/cached/ruby-1.8.1/internal/vm/iseq/iseq_load.inc +0 -9
  218. data/ext/cached/ruby-1.8.2/internal/binding/block.h +0 -32
  219. data/ext/cached/ruby-1.8.2/internal/method/method.h +0 -19
  220. data/ext/cached/ruby-1.8.2/internal/module/classpath.c +0 -45
  221. data/ext/cached/ruby-1.8.2/internal/module/classpath.h +0 -17
  222. data/ext/cached/ruby-1.8.2/internal/node/block.h +0 -32
  223. data/ext/cached/ruby-1.8.2/internal/node/global_entry.h +0 -10
  224. data/ext/cached/ruby-1.8.2/internal/node/node_type_descrip.c +0 -154
  225. data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.c +0 -5736
  226. data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.h +0 -69
  227. data/ext/cached/ruby-1.8.2/internal/proc/block.h +0 -32
  228. data/ext/cached/ruby-1.8.2/internal/tag/tag.h +0 -16
  229. data/ext/cached/ruby-1.8.2/internal/vm/instruction/insns_info.c +0 -39
  230. data/ext/cached/ruby-1.8.2/internal/vm/instruction/insns_info.h +0 -21
  231. data/ext/cached/ruby-1.8.2/internal/vm/iseq/insns_info.inc +0 -12
  232. data/ext/cached/ruby-1.8.2/internal/vm/iseq/iseq_load.inc +0 -9
  233. data/ext/cached/ruby-1.8.3/internal/binding/block.h +0 -32
  234. data/ext/cached/ruby-1.8.3/internal/module/classpath.c +0 -45
  235. data/ext/cached/ruby-1.8.3/internal/module/classpath.h +0 -17
  236. data/ext/cached/ruby-1.8.3/internal/node/block.h +0 -32
  237. data/ext/cached/ruby-1.8.3/internal/node/global_entry.h +0 -10
  238. data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.c +0 -5736
  239. data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.h +0 -69
  240. data/ext/cached/ruby-1.8.3/internal/proc/block.h +0 -32
  241. data/ext/cached/ruby-1.8.3/internal/tag/tag.h +0 -16
  242. data/ext/cached/ruby-1.8.3/internal/vm/instruction/insns_info.c +0 -39
  243. data/ext/cached/ruby-1.8.3/internal/vm/instruction/insns_info.h +0 -21
  244. data/ext/cached/ruby-1.8.3/internal/vm/iseq/insns_info.inc +0 -12
  245. data/ext/cached/ruby-1.8.3/internal/vm/iseq/iseq_load.inc +0 -9
  246. data/ext/cached/ruby-1.8.7/internal/method/method.h +0 -20
  247. data/ext/cached/ruby-1.9.0/internal/module/classpath.c +0 -42
  248. data/ext/cached/ruby-1.9.0/internal/node/global_entry.h +0 -10
  249. data/ext/cached/ruby-1.9.0/internal/vm/iseq/iseq_load.inc +0 -13
  250. data/ext/cached/ruby-1.9.0/internal/yarv-headers/id.h +0 -83
  251. data/ext/cached/ruby-1.9.0/internal/yarv-headers/revision.h +0 -1
  252. data/ext/cached/ruby-1.9.0/internal/yarv-headers/transdb.h +0 -67
  253. data/ext/cached/ruby-1.9.0/internal/yarv-headers/version.h +0 -57
  254. data/ext/internal/module/cfp.h +0 -13
@@ -0,0 +1,707 @@
1
+ #ifndef ruby_internal_insns_info__inc_
2
+ #define ruby_internal_insns_info__inc_
3
+
4
+ #include <ruby.h>
5
+
6
+ #ifndef RUBY_VM
7
+ #include "env.h"
8
+ #endif
9
+
10
+ /** -*-c-*-
11
+ This file contains instruction information for yarv instruction sequence.
12
+
13
+ ----
14
+ This file is auto generated by insns2vm.rb
15
+ DO NOT TOUCH!
16
+
17
+ If you want to fix something, you must edit 'template/insns_info.inc.tmpl'
18
+ or insns2vm.rb
19
+ */
20
+
21
+ #define TS_VALUE 'V'
22
+ #define TS_GENTRY 'G'
23
+ #define TS_DINDEX 'D'
24
+ #define TS_VARIABLE '.'
25
+ #define TS_CDHASH 'H'
26
+ #define TS_IC 'C'
27
+ #define TS_ID 'I'
28
+ #define TS_LINDEX 'L'
29
+ #define TS_FUNCPTR 'F'
30
+ #define TS_ISEQ 'S'
31
+ #define TS_NUM 'N'
32
+ #define TS_OFFSET 'O'
33
+
34
+ static const char *const insn_name_info[] = {
35
+ "nop",
36
+ "getlocal",
37
+ "setlocal",
38
+ "getspecial",
39
+ "setspecial",
40
+ "getdynamic",
41
+ "setdynamic",
42
+ "getinstancevariable",
43
+ "setinstancevariable",
44
+ "getclassvariable",
45
+ "setclassvariable",
46
+ "getconstant",
47
+ "setconstant",
48
+ "getglobal",
49
+ "setglobal",
50
+ "putnil",
51
+ "putself",
52
+ "putobject",
53
+ "putspecialobject",
54
+ "putiseq",
55
+ "putstring",
56
+ "concatstrings",
57
+ "tostring",
58
+ "toregexp",
59
+ "newarray",
60
+ "duparray",
61
+ "expandarray",
62
+ "concatarray",
63
+ "splatarray",
64
+ "checkincludearray",
65
+ "newhash",
66
+ "newrange",
67
+ "pop",
68
+ "dup",
69
+ "dupn",
70
+ "swap",
71
+ "reput",
72
+ "topn",
73
+ "setn",
74
+ "adjuststack",
75
+ "defined",
76
+ "trace",
77
+ "defineclass",
78
+ "send",
79
+ "invokesuper",
80
+ "invokeblock",
81
+ "leave",
82
+ "finish",
83
+ "throw",
84
+ "jump",
85
+ "branchif",
86
+ "branchunless",
87
+ "getinlinecache",
88
+ "onceinlinecache",
89
+ "setinlinecache",
90
+ "opt_case_dispatch",
91
+ "opt_checkenv",
92
+ "opt_plus",
93
+ "opt_minus",
94
+ "opt_mult",
95
+ "opt_div",
96
+ "opt_mod",
97
+ "opt_eq",
98
+ "opt_neq",
99
+ "opt_lt",
100
+ "opt_le",
101
+ "opt_gt",
102
+ "opt_ge",
103
+ "opt_ltlt",
104
+ "opt_aref",
105
+ "opt_aset",
106
+ "opt_length",
107
+ "opt_size",
108
+ "opt_succ",
109
+ "opt_not",
110
+ "opt_regexpmatch1",
111
+ "opt_regexpmatch2",
112
+ "opt_call_c_function",
113
+ "bitblt",
114
+ "answer",
115
+
116
+ };
117
+
118
+ static const char *const insn_operand_info[] = {
119
+ "",
120
+ "L",
121
+ "L",
122
+ "VN",
123
+ "V",
124
+ "DN",
125
+ "DN",
126
+ "IC",
127
+ "IC",
128
+ "I",
129
+ "I",
130
+ "I",
131
+ "I",
132
+ "G",
133
+ "G",
134
+ "",
135
+ "",
136
+ "V",
137
+ "N",
138
+ "S",
139
+ "V",
140
+ "N",
141
+ "",
142
+ "NN",
143
+ "N",
144
+ "V",
145
+ "NN",
146
+ "",
147
+ "V",
148
+ "V",
149
+ "N",
150
+ "N",
151
+ "",
152
+ "",
153
+ "N",
154
+ "",
155
+ "",
156
+ "N",
157
+ "N",
158
+ "N",
159
+ "NVV",
160
+ "N",
161
+ "ISN",
162
+ "INSNC",
163
+ "NSN",
164
+ "NN",
165
+ "",
166
+ "",
167
+ "N",
168
+ "O",
169
+ "O",
170
+ "O",
171
+ "OC",
172
+ "OC",
173
+ "C",
174
+ "HO",
175
+ "",
176
+ "C",
177
+ "C",
178
+ "C",
179
+ "C",
180
+ "C",
181
+ "C",
182
+ "CC",
183
+ "C",
184
+ "C",
185
+ "C",
186
+ "C",
187
+ "C",
188
+ "C",
189
+ "C",
190
+ "C",
191
+ "C",
192
+ "C",
193
+ "C",
194
+ "V",
195
+ "",
196
+ "F",
197
+ "",
198
+ "",
199
+
200
+ };
201
+
202
+ static const int insn_len_info[] = {
203
+ 1,
204
+ 2,
205
+ 2,
206
+ 3,
207
+ 2,
208
+ 3,
209
+ 3,
210
+ 3,
211
+ 3,
212
+ 2,
213
+ 2,
214
+ 2,
215
+ 2,
216
+ 2,
217
+ 2,
218
+ 1,
219
+ 1,
220
+ 2,
221
+ 2,
222
+ 2,
223
+ 2,
224
+ 2,
225
+ 1,
226
+ 3,
227
+ 2,
228
+ 2,
229
+ 3,
230
+ 1,
231
+ 2,
232
+ 2,
233
+ 2,
234
+ 2,
235
+ 1,
236
+ 1,
237
+ 2,
238
+ 1,
239
+ 1,
240
+ 2,
241
+ 2,
242
+ 2,
243
+ 4,
244
+ 2,
245
+ 4,
246
+ 6,
247
+ 4,
248
+ 3,
249
+ 1,
250
+ 1,
251
+ 2,
252
+ 2,
253
+ 2,
254
+ 2,
255
+ 3,
256
+ 3,
257
+ 2,
258
+ 3,
259
+ 1,
260
+ 2,
261
+ 2,
262
+ 2,
263
+ 2,
264
+ 2,
265
+ 2,
266
+ 3,
267
+ 2,
268
+ 2,
269
+ 2,
270
+ 2,
271
+ 2,
272
+ 2,
273
+ 2,
274
+ 2,
275
+ 2,
276
+ 2,
277
+ 2,
278
+ 2,
279
+ 1,
280
+ 2,
281
+ 1,
282
+ 1,
283
+
284
+ };
285
+
286
+ #ifdef USE_INSN_RET_NUM
287
+ static const int insn_stack_push_num_info[] = {
288
+ 0,
289
+ 1,
290
+ 0,
291
+ 1,
292
+ 0,
293
+ 1,
294
+ 0,
295
+ 1,
296
+ 0,
297
+ 1,
298
+ 0,
299
+ 1,
300
+ 0,
301
+ 1,
302
+ 0,
303
+ 1,
304
+ 1,
305
+ 1,
306
+ 1,
307
+ 1,
308
+ 1,
309
+ 1,
310
+ 1,
311
+ 1,
312
+ 1,
313
+ 1,
314
+ 1,
315
+ 1,
316
+ 1,
317
+ 2,
318
+ 1,
319
+ 1,
320
+ 0,
321
+ 2,
322
+ 1,
323
+ 2,
324
+ 1,
325
+ 1,
326
+ 1,
327
+ 1,
328
+ 1,
329
+ 0,
330
+ 1,
331
+ 1,
332
+ 1,
333
+ 1,
334
+ 1,
335
+ 1,
336
+ 1,
337
+ 0,
338
+ 0,
339
+ 0,
340
+ 1,
341
+ 1,
342
+ 1,
343
+ 0,
344
+ 0,
345
+ 1,
346
+ 1,
347
+ 1,
348
+ 1,
349
+ 1,
350
+ 1,
351
+ 1,
352
+ 1,
353
+ 1,
354
+ 1,
355
+ 1,
356
+ 1,
357
+ 1,
358
+ 1,
359
+ 1,
360
+ 1,
361
+ 1,
362
+ 1,
363
+ 1,
364
+ 1,
365
+ 0,
366
+ 1,
367
+ 1,
368
+
369
+ };
370
+ #endif
371
+
372
+ #ifdef USE_INSN_STACK_INCREASE
373
+ static int
374
+ insn_stack_increase(int depth, int insn, VALUE *opes)
375
+ {
376
+ switch(insn){
377
+ case BIN(nop):{
378
+ return depth + 0;
379
+ }
380
+ case BIN(getlocal):{
381
+ return depth + 1;
382
+ }
383
+ case BIN(setlocal):{
384
+ return depth + -1;
385
+ }
386
+ case BIN(getspecial):{
387
+ return depth + 1;
388
+ }
389
+ case BIN(setspecial):{
390
+ return depth + -1;
391
+ }
392
+ case BIN(getdynamic):{
393
+ return depth + 1;
394
+ }
395
+ case BIN(setdynamic):{
396
+ return depth + -1;
397
+ }
398
+ case BIN(getinstancevariable):{
399
+ return depth + 1;
400
+ }
401
+ case BIN(setinstancevariable):{
402
+ return depth + -1;
403
+ }
404
+ case BIN(getclassvariable):{
405
+ return depth + 1;
406
+ }
407
+ case BIN(setclassvariable):{
408
+ return depth + -1;
409
+ }
410
+ case BIN(getconstant):{
411
+ return depth + 0;
412
+ }
413
+ case BIN(setconstant):{
414
+ return depth + -2;
415
+ }
416
+ case BIN(getglobal):{
417
+ return depth + 1;
418
+ }
419
+ case BIN(setglobal):{
420
+ return depth + -1;
421
+ }
422
+ case BIN(putnil):{
423
+ return depth + 1;
424
+ }
425
+ case BIN(putself):{
426
+ return depth + 1;
427
+ }
428
+ case BIN(putobject):{
429
+ return depth + 1;
430
+ }
431
+ case BIN(putspecialobject):{
432
+ return depth + 1;
433
+ }
434
+ case BIN(putiseq):{
435
+ return depth + 1;
436
+ }
437
+ case BIN(putstring):{
438
+ return depth + 1;
439
+ }
440
+ case BIN(concatstrings):{
441
+ int inc = 0;
442
+ int num = FIX2INT(opes[0]);
443
+ inc += 1 - num;;
444
+ return depth + inc;
445
+ }
446
+ case BIN(tostring):{
447
+ return depth + 0;
448
+ }
449
+ case BIN(toregexp):{
450
+ int inc = 0;
451
+ int cnt = FIX2INT(opes[1]);
452
+ inc += 1 - cnt;;
453
+ return depth + inc;
454
+ }
455
+ case BIN(newarray):{
456
+ int inc = 0;
457
+ int num = FIX2INT(opes[0]);
458
+ inc += 1 - num;;
459
+ return depth + inc;
460
+ }
461
+ case BIN(duparray):{
462
+ return depth + 1;
463
+ }
464
+ case BIN(expandarray):{
465
+ int inc = 0;
466
+ int num = FIX2INT(opes[0]);
467
+ int flag = FIX2INT(opes[1]);
468
+ inc += num - 1 + (flag & 1 ? 1 : 0);;
469
+ return depth + inc;
470
+ }
471
+ case BIN(concatarray):{
472
+ return depth + -1;
473
+ }
474
+ case BIN(splatarray):{
475
+ return depth + 0;
476
+ }
477
+ case BIN(checkincludearray):{
478
+ return depth + 0;
479
+ }
480
+ case BIN(newhash):{
481
+ int inc = 0;
482
+ int num = FIX2INT(opes[0]);
483
+ inc += 1 - num;;
484
+ return depth + inc;
485
+ }
486
+ case BIN(newrange):{
487
+ return depth + -1;
488
+ }
489
+ case BIN(pop):{
490
+ return depth + -1;
491
+ }
492
+ case BIN(dup):{
493
+ return depth + 1;
494
+ }
495
+ case BIN(dupn):{
496
+ int inc = 0;
497
+ int n = FIX2INT(opes[0]);
498
+ inc += n;;
499
+ return depth + inc;
500
+ }
501
+ case BIN(swap):{
502
+ return depth + 0;
503
+ }
504
+ case BIN(reput):{
505
+ int inc = 0;
506
+ inc += 0;;
507
+ return depth + inc;
508
+ }
509
+ case BIN(topn):{
510
+ int inc = 0;
511
+ inc += 1;;
512
+ return depth + inc;
513
+ }
514
+ case BIN(setn):{
515
+ int inc = 0;
516
+ inc += 0;
517
+ return depth + inc;
518
+ }
519
+ case BIN(adjuststack):{
520
+ int inc = 0;
521
+ int n = FIX2INT(opes[0]);
522
+ inc -= n;
523
+ return depth + inc;
524
+ }
525
+ case BIN(defined):{
526
+ return depth + 0;
527
+ }
528
+ case BIN(trace):{
529
+ return depth + 0;
530
+ }
531
+ case BIN(defineclass):{
532
+ return depth + -1;
533
+ }
534
+ case BIN(send):{
535
+ int inc = 0;
536
+ int op_argc = FIX2INT(opes[1]);
537
+ int op_flag = FIX2INT(opes[3]);
538
+ inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
539
+ return depth + inc;
540
+ }
541
+ case BIN(invokesuper):{
542
+ int inc = 0;
543
+ int op_argc = FIX2INT(opes[0]);
544
+ int op_flag = FIX2INT(opes[2]);
545
+ inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
546
+ return depth + inc;
547
+ }
548
+ case BIN(invokeblock):{
549
+ int inc = 0;
550
+ int num = FIX2INT(opes[0]);
551
+ inc += 1 - num;;
552
+ return depth + inc;
553
+ }
554
+ case BIN(leave):{
555
+ return depth + 0;
556
+ }
557
+ case BIN(finish):{
558
+ return depth + 0;
559
+ }
560
+ case BIN(throw):{
561
+ return depth + 0;
562
+ }
563
+ case BIN(jump):{
564
+ return depth + 0;
565
+ }
566
+ case BIN(branchif):{
567
+ return depth + -1;
568
+ }
569
+ case BIN(branchunless):{
570
+ return depth + -1;
571
+ }
572
+ case BIN(getinlinecache):{
573
+ return depth + 1;
574
+ }
575
+ case BIN(onceinlinecache):{
576
+ return depth + 1;
577
+ }
578
+ case BIN(setinlinecache):{
579
+ return depth + 0;
580
+ }
581
+ case BIN(opt_case_dispatch):{
582
+ int inc = 0;
583
+ inc += -1;;
584
+ return depth + inc;
585
+ }
586
+ case BIN(opt_checkenv):{
587
+ return depth + 0;
588
+ }
589
+ case BIN(opt_plus):{
590
+ return depth + -1;
591
+ }
592
+ case BIN(opt_minus):{
593
+ return depth + -1;
594
+ }
595
+ case BIN(opt_mult):{
596
+ return depth + -1;
597
+ }
598
+ case BIN(opt_div):{
599
+ return depth + -1;
600
+ }
601
+ case BIN(opt_mod):{
602
+ return depth + -1;
603
+ }
604
+ case BIN(opt_eq):{
605
+ return depth + -1;
606
+ }
607
+ case BIN(opt_neq):{
608
+ return depth + -1;
609
+ }
610
+ case BIN(opt_lt):{
611
+ return depth + -1;
612
+ }
613
+ case BIN(opt_le):{
614
+ return depth + -1;
615
+ }
616
+ case BIN(opt_gt):{
617
+ return depth + -1;
618
+ }
619
+ case BIN(opt_ge):{
620
+ return depth + -1;
621
+ }
622
+ case BIN(opt_ltlt):{
623
+ return depth + -1;
624
+ }
625
+ case BIN(opt_aref):{
626
+ return depth + -1;
627
+ }
628
+ case BIN(opt_aset):{
629
+ return depth + -2;
630
+ }
631
+ case BIN(opt_length):{
632
+ return depth + 0;
633
+ }
634
+ case BIN(opt_size):{
635
+ return depth + 0;
636
+ }
637
+ case BIN(opt_succ):{
638
+ return depth + 0;
639
+ }
640
+ case BIN(opt_not):{
641
+ return depth + 0;
642
+ }
643
+ case BIN(opt_regexpmatch1):{
644
+ return depth + 0;
645
+ }
646
+ case BIN(opt_regexpmatch2):{
647
+ return depth + -1;
648
+ }
649
+ case BIN(opt_call_c_function):{
650
+ return depth + 0;
651
+ }
652
+ case BIN(bitblt):{
653
+ return depth + 1;
654
+ }
655
+ case BIN(answer):{
656
+ return depth + 1;
657
+ }
658
+
659
+ default:
660
+ rb_bug("insn_sp_increase: unreachable");
661
+ }
662
+ return 0;
663
+ }
664
+ #endif
665
+
666
+ /* some utilities */
667
+
668
+ static int
669
+ insn_len(VALUE insn)
670
+ {
671
+ return insn_len_info[(int)insn];
672
+ }
673
+
674
+ static const char *
675
+ insn_name(VALUE insn)
676
+ {
677
+ return insn_name_info[(int)insn];
678
+ }
679
+
680
+ static const char *
681
+ insn_op_types(VALUE insn)
682
+ {
683
+ return insn_operand_info[(int)insn];
684
+ }
685
+
686
+ static int
687
+ insn_op_type(VALUE insn, long pos)
688
+ {
689
+ int len = insn_len(insn) - 1;
690
+ if(pos < len){
691
+ return insn_operand_info[(int)insn][pos];
692
+ }
693
+ else{
694
+ return 0;
695
+ }
696
+ }
697
+
698
+ #ifdef USE_INSN_RET_NUM
699
+ static int
700
+ insn_ret_num(VALUE insn)
701
+ {
702
+ return insn_stack_push_num_info[(int)insn];
703
+ }
704
+ #endif
705
+
706
+ #endif
707
+