debase-ruby_core_source 0.9.9 → 0.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/addr2line.h +0 -0
  4. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/build_assert/build_assert.h +0 -0
  5. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/check_type/check_type.h +0 -0
  6. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/container_of/container_of.h +0 -0
  7. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ccan/list/list.h +28 -166
  8. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/str/str.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/constant.h +3 -10
  10. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/dln.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/eval_intern.h +49 -89
  12. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/gc.h +1 -8
  13. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/id.h +5 -15
  14. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/insns.inc +107 -0
  15. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/insns_info.inc +45 -89
  16. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/internal.h +164 -666
  17. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/iseq.h +158 -0
  18. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/known_errors.inc +0 -0
  19. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/method.h +144 -0
  20. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/node.h +42 -18
  21. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/node_name.inc +6 -2
  22. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/opt_sc.inc +0 -40
  23. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/optinsn.inc +0 -0
  24. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/optunifs.inc +0 -5
  25. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/parse.h +8 -28
  26. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/probes_helper.h +67 -0
  27. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regenc.h +16 -16
  28. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regint.h +10 -33
  29. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regparse.h +1 -5
  30. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/revision.h +1 -0
  31. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ruby_atomic.h +5 -68
  32. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/siphash.h +0 -0
  33. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/symbol.h +13 -33
  34. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/thread_pthread.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/thread_win32.h +0 -0
  36. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/timev.h +0 -0
  37. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/transcode_data.h +7 -23
  38. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/version.h +10 -31
  39. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm.inc +497 -542
  40. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_core.h +305 -784
  41. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_debug.h +0 -0
  42. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_exec.h +0 -0
  43. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_insnhelper.h +56 -50
  44. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vm_opts.h +7 -8
  45. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vmtc.inc +0 -5
  46. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/addr2line.h +0 -0
  47. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/build_assert/build_assert.h +0 -0
  48. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/check_type/check_type.h +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/container_of/container_of.h +0 -0
  50. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ccan/list/list.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/str/str.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/constant.h +1 -1
  53. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/dln.h +0 -0
  54. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/encindex.h +0 -0
  55. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/eval_intern.h +3 -4
  56. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/gc.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/id.h +0 -9
  58. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/id_table.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns.inc +46 -48
  60. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns_info.inc +0 -20
  61. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/internal.h +58 -290
  62. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/iseq.h +15 -18
  63. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/known_errors.inc +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/method.h +2 -2
  65. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/node.h +2 -2
  66. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/node_name.inc +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/opt_sc.inc +0 -16
  68. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/optinsn.inc +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/optunifs.inc +0 -2
  70. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/parse.h +8 -27
  71. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/probes_helper.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regenc.h +14 -14
  73. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regint.h +0 -8
  74. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/regparse.h +0 -0
  75. data/lib/debase/ruby_core_source/ruby-2.3.5-p376/revision.h +1 -0
  76. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ruby_atomic.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/siphash.h +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/symbol.h +3 -3
  79. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/thread_pthread.h +0 -0
  80. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/thread_win32.h +0 -0
  81. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/timev.h +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/transcode_data.h +0 -0
  83. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/version.h +9 -27
  84. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm.inc +255 -264
  85. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_call_iseq_optimized.inc +5 -5
  86. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_core.h +37 -28
  87. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_debug.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_exec.h +0 -0
  89. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_insnhelper.h +32 -16
  90. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_opts.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vmtc.inc +0 -2
  92. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/addr2line.h +0 -0
  93. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/build_assert/build_assert.h +0 -0
  94. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/check_type/check_type.h +0 -0
  95. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/container_of/container_of.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ccan/list/list.h +0 -0
  97. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/str/str.h +0 -0
  98. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/constant.h +0 -0
  99. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/dln.h +0 -0
  100. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/encindex.h +0 -0
  101. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/eval_intern.h +0 -0
  102. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/gc.h +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/id.h +0 -0
  104. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/id_table.h +0 -0
  105. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns.inc +0 -0
  106. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns_info.inc +0 -0
  107. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/internal.h +116 -51
  108. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/iseq.h +0 -0
  109. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/known_errors.inc +0 -0
  110. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/method.h +0 -0
  111. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node.h +2 -2
  112. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node_name.inc +0 -0
  113. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/opt_sc.inc +0 -0
  114. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/optinsn.inc +0 -0
  115. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/optunifs.inc +0 -0
  116. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/parse.h +8 -27
  117. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/probes_helper.h +0 -0
  118. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regenc.h +79 -67
  119. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regint.h +187 -244
  120. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/regparse.h +30 -27
  121. data/lib/debase/ruby_core_source/ruby-2.4.2-p198/revision.h +1 -0
  122. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/ruby_assert.h +0 -0
  123. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ruby_atomic.h +0 -0
  124. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/siphash.h +0 -0
  125. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/symbol.h +0 -0
  126. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/thread_pthread.h +0 -0
  127. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/thread_win32.h +0 -0
  128. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/timev.h +0 -0
  129. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/transcode_data.h +0 -0
  130. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/version.h +6 -6
  131. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm.inc +37 -34
  132. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_call_iseq_optimized.inc +0 -0
  133. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_core.h +9 -7
  134. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_debug.h +0 -0
  135. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_exec.h +0 -0
  136. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_insnhelper.h +30 -14
  137. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_opts.h +0 -0
  138. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/vmtc.inc +0 -0
  139. data/lib/debase/ruby_core_source/version.rb +1 -1
  140. metadata +138 -143
  141. data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/method.h +0 -213
  142. data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/revision.h +0 -1
  143. data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/revision.h +0 -1
  144. data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/ruby_assert.h +0 -54
  145. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/encindex.h +0 -67
  146. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/id_table.h +0 -31
  147. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/insns.inc +0 -112
  148. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/iseq.h +0 -252
  149. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/probes_helper.h +0 -43
  150. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/revision.h +0 -1
  151. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/ruby_assert.h +0 -54
  152. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/vm_call_iseq_optimized.inc +0 -212
@@ -2,7 +2,7 @@
2
2
 
3
3
  iseq.h -
4
4
 
5
- $Author: naruse $
5
+ $Author: ko1 $
6
6
  created at: 04/01/01 23:36:57 JST
7
7
 
8
8
  Copyright (C) 2004-2008 Koichi Sasada
@@ -27,16 +27,15 @@ rb_call_info_kw_arg_bytes(int keyword_len)
27
27
  }
28
28
 
29
29
  enum iseq_mark_ary_index {
30
- ISEQ_MARK_ARY_COVERAGE,
31
- ISEQ_MARK_ARY_FLIP_CNT,
32
- ISEQ_MARK_ARY_ORIGINAL_ISEQ,
33
- ISEQ_MARK_ARY_INITIAL_SIZE
30
+ ISEQ_MARK_ARY_COVERAGE = 0,
31
+ ISEQ_MARK_ARY_FLIP_CNT = 1,
32
+ ISEQ_MARK_ARY_ORIGINAL_ISEQ = 2,
34
33
  };
35
34
 
36
35
  static inline VALUE
37
36
  iseq_mark_ary_create(int flip_cnt)
38
37
  {
39
- VALUE ary = rb_ary_tmp_new(ISEQ_MARK_ARY_INITIAL_SIZE);
38
+ VALUE ary = rb_ary_tmp_new(3);
40
39
  rb_ary_push(ary, Qnil); /* ISEQ_MARK_ARY_COVERAGE */
41
40
  rb_ary_push(ary, INT2FIX(flip_cnt)); /* ISEQ_MARK_ARY_FLIP_CNT */
42
41
  rb_ary_push(ary, Qnil); /* ISEQ_MARK_ARY_ORIGINAL_ISEQ */
@@ -124,17 +123,16 @@ const rb_iseq_t *rb_method_iseq(VALUE body);
124
123
  const rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc);
125
124
 
126
125
  struct rb_compile_option_struct {
127
- unsigned int inline_const_cache: 1;
128
- unsigned int peephole_optimization: 1;
129
- unsigned int tailcall_optimization: 1;
130
- unsigned int specialized_instruction: 1;
131
- unsigned int operands_unification: 1;
132
- unsigned int instructions_unification: 1;
133
- unsigned int stack_caching: 1;
134
- unsigned int trace_instruction: 1;
135
- unsigned int frozen_string_literal: 1;
136
- unsigned int debug_frozen_string_literal: 1;
137
- unsigned int coverage_enabled: 1;
126
+ int inline_const_cache;
127
+ int peephole_optimization;
128
+ int tailcall_optimization;
129
+ int specialized_instruction;
130
+ int operands_unification;
131
+ int instructions_unification;
132
+ int stack_caching;
133
+ int trace_instruction;
134
+ int frozen_string_literal;
135
+ int debug_frozen_string_literal;
138
136
  int debug_level;
139
137
  };
140
138
 
@@ -213,7 +211,6 @@ struct iseq_compile_data {
213
211
  unsigned int ci_index;
214
212
  unsigned int ci_kw_index;
215
213
  const rb_compile_option_t *option;
216
- struct rb_id_table *ivar_cache_table;
217
214
  #if SUPPORT_JOKE
218
215
  st_table *labels_table;
219
216
  #endif
@@ -2,7 +2,7 @@
2
2
 
3
3
  method.h -
4
4
 
5
- $Author: ko1 $
5
+ $Author: nagachika $
6
6
  created at: Wed Jul 15 20:02:33 2009
7
7
 
8
8
  Copyright (C) 2009 Koichi Sasada
@@ -205,7 +205,7 @@ void rb_free_method_entry(const rb_method_entry_t *me);
205
205
  void rb_sweep_method_entry(void *vm);
206
206
 
207
207
  const rb_method_entry_t *rb_method_entry_clone(const rb_method_entry_t *me);
208
- const rb_callable_method_entry_t *rb_method_entry_complement_defined_class(const rb_method_entry_t *src_me, VALUE defined_class);
208
+ const rb_callable_method_entry_t *rb_method_entry_complement_defined_class(const rb_method_entry_t *src_me, ID called_id, VALUE defined_class);
209
209
  void rb_method_entry_copy(rb_method_entry_t *dst, const rb_method_entry_t *src);
210
210
 
211
211
  void rb_scope_visibility_set(rb_method_visibility_t);
@@ -2,7 +2,7 @@
2
2
 
3
3
  node.h -
4
4
 
5
- $Author: hsbt $
5
+ $Author: usa $
6
6
  created at: Fri May 28 15:14:02 JST 1993
7
7
 
8
8
  Copyright (C) 1993-2007 Yukihiro Matsumoto
@@ -277,7 +277,7 @@ typedef struct RNode {
277
277
 
278
278
  #define NODE_LSHIFT (NODE_TYPESHIFT+7)
279
279
  #define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
280
- #define nd_line(n) (int)(RNODE(n)->flags>>NODE_LSHIFT)
280
+ #define nd_line(n) (int)(((SIGNED_VALUE)RNODE(n)->flags)>>NODE_LSHIFT)
281
281
  #define nd_set_line(n,l) \
282
282
  RNODE(n)->flags=((RNODE(n)->flags&~((VALUE)(-1)<<NODE_LSHIFT))|((VALUE)((l)&NODE_LMASK)<<NODE_LSHIFT))
283
283
 
@@ -659,20 +659,6 @@ SC_ERROR,
659
659
  SC_ERROR,
660
660
  SC_ERROR,
661
661
  SC_ERROR,
662
- SC_ERROR},
663
- {
664
- SC_ERROR,
665
- SC_ERROR,
666
- SC_ERROR,
667
- SC_ERROR,
668
- SC_ERROR,
669
- SC_ERROR},
670
- {
671
- SC_ERROR,
672
- SC_ERROR,
673
- SC_ERROR,
674
- SC_ERROR,
675
- SC_ERROR,
676
662
  SC_ERROR}
677
663
  };
678
664
 
@@ -767,8 +753,6 @@ static const VALUE sc_insn_next[] = {
767
753
  SCS_XX,
768
754
  SCS_XX,
769
755
  SCS_XX,
770
- SCS_XX,
771
- SCS_XX,
772
756
  SCS_XX
773
757
  };
774
758
 
@@ -120,8 +120,6 @@ static const int *const *const unified_insns_data[] = {
120
120
  0,
121
121
  0,
122
122
  0,
123
- 0,
124
- 0,
125
123
  0};
126
124
 
127
125
 
@@ -1,8 +1,8 @@
1
- /* A Bison parser, made by GNU Bison 2.7.12-4996. */
1
+ /* A Bison parser, made by GNU Bison 2.5. */
2
2
 
3
3
  /* Bison interface for Yacc-like parsers in C
4
4
 
5
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
5
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6
6
 
7
7
  This program is free software: you can redistribute it and/or modify
8
8
  it under the terms of the GNU General Public License as published by
@@ -30,15 +30,6 @@
30
30
  This special exception was added by the Free Software Foundation in
31
31
  version 2.2 of Bison. */
32
32
 
33
- #ifndef YY_YY_Y_TAB_H_INCLUDED
34
- # define YY_YY_Y_TAB_H_INCLUDED
35
- /* Enabling traces. */
36
- #ifndef YYDEBUG
37
- # define YYDEBUG 0
38
- #endif
39
- #if YYDEBUG
40
- extern int yydebug;
41
- #endif
42
33
 
43
34
  /* Tokens. */
44
35
  #ifndef YYTOKENTYPE
@@ -167,10 +158,12 @@ extern int yydebug;
167
158
  #endif
168
159
 
169
160
 
161
+
170
162
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
171
163
  typedef union YYSTYPE
172
164
  {
173
- /* Line 2053 of yacc.c */
165
+
166
+ /* Line 2068 of yacc.c */
174
167
 
175
168
  VALUE val;
176
169
  NODE *node;
@@ -179,7 +172,8 @@ typedef union YYSTYPE
179
172
  const struct vtable *vars;
180
173
 
181
174
 
182
- /* Line 2053 of yacc.c */
175
+
176
+ /* Line 2068 of yacc.c */
183
177
  } YYSTYPE;
184
178
  # define YYSTYPE_IS_TRIVIAL 1
185
179
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -187,18 +181,5 @@ typedef union YYSTYPE
187
181
  #endif
188
182
 
189
183
 
190
- #ifdef YYPARSE_PARAM
191
- #if defined __STDC__ || defined __cplusplus
192
- int yyparse (void *YYPARSE_PARAM);
193
- #else
194
- int yyparse ();
195
- #endif
196
- #else /* ! YYPARSE_PARAM */
197
- #if defined __STDC__ || defined __cplusplus
198
- int yyparse (struct parser_params *parser);
199
- #else
200
- int yyparse ();
201
- #endif
202
- #endif /* ! YYPARSE_PARAM */
203
184
 
204
- #endif /* !YY_YY_Y_TAB_H_INCLUDED */
185
+
@@ -129,36 +129,33 @@ ONIG_EXTERN int onigenc_ascii_apply_all_case_fold P_((OnigCaseFoldType flag, Oni
129
129
  ONIG_EXTERN int onigenc_ascii_get_case_fold_codes_by_str P_((OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc));
130
130
  ONIG_EXTERN int onigenc_apply_all_case_fold_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg));
131
131
  ONIG_EXTERN int onigenc_get_case_fold_codes_by_str_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));
132
- CONSTFUNC(ONIG_EXTERN int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc)));
133
- PUREFUNC(ONIG_EXTERN int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end, OnigEncoding enc)));
134
- ONIG_EXTERN int onigenc_single_byte_ascii_only_case_map P_((OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc));
132
+ ONIG_EXTERN int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc));
133
+ ONIG_EXTERN int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end, OnigEncoding enc));
135
134
 
136
135
 
137
136
  /* methods for single byte encoding */
138
137
  ONIG_EXTERN int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower, OnigEncoding enc));
139
- CONSTFUNC(ONIG_EXTERN int onigenc_single_byte_mbc_enc_len P_((const UChar* p, const UChar* e, OnigEncoding enc)));
140
- PUREFUNC(ONIG_EXTERN OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end, OnigEncoding enc)));
141
- CONSTFUNC(ONIG_EXTERN int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc)));
138
+ ONIG_EXTERN int onigenc_single_byte_mbc_enc_len P_((const UChar* p, const UChar* e, OnigEncoding enc));
139
+ ONIG_EXTERN OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end, OnigEncoding enc));
140
+ ONIG_EXTERN int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
142
141
  ONIG_EXTERN int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf, OnigEncoding enc));
143
- CONSTFUNC(ONIG_EXTERN UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s, const OnigUChar* end, OnigEncoding enc)));
144
- CONSTFUNC(ONIG_EXTERN int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc)));
145
- CONSTFUNC(ONIG_EXTERN int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc)));
146
- CONSTFUNC(ONIG_EXTERN int onigenc_ascii_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc)));
142
+ ONIG_EXTERN UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s, const OnigUChar* end, OnigEncoding enc));
143
+ ONIG_EXTERN int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc));
144
+ ONIG_EXTERN int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc));
145
+ ONIG_EXTERN int onigenc_ascii_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
147
146
 
148
147
  /* methods for multi byte encoding */
149
148
  ONIG_EXTERN OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end));
150
149
  ONIG_EXTERN int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower));
151
- CONSTFUNC(ONIG_EXTERN int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc)));
150
+ ONIG_EXTERN int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
152
151
  ONIG_EXTERN int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
153
152
  ONIG_EXTERN int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, const UChar* p, const UChar* end));
154
153
  ONIG_EXTERN int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, const UChar* p, const UChar* end));
155
154
  ONIG_EXTERN int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
156
- CONSTFUNC(ONIG_EXTERN int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc)));
155
+ ONIG_EXTERN int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
157
156
  ONIG_EXTERN int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
158
157
  ONIG_EXTERN int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
159
158
 
160
- ONIG_EXTERN int onigenc_unicode_case_map P_((OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc));
161
-
162
159
 
163
160
  /* in enc/unicode.c */
164
161
  ONIG_EXTERN int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
@@ -172,6 +169,9 @@ ONIG_EXTERN int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, O
172
169
  #define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8)
173
170
  #define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc)
174
171
  #define UTF16_IS_SURROGATE(c) (((c) & 0xf8) == 0xd8)
172
+ #define UNICODE_VALID_CODEPOINT_P(c) ( \
173
+ ((c) <= 0x10ffff) && \
174
+ !((c) < 0x10000 && UTF16_IS_SURROGATE((c) >> 8)))
175
175
 
176
176
  #define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \
177
177
  OnigEncISO_8859_1_ToLowerCaseTable[c]
@@ -48,18 +48,10 @@
48
48
  #endif
49
49
  #endif
50
50
 
51
- #ifndef UNALIGNED_WORD_ACCESS
52
51
  #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
53
52
  defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \
54
53
  defined(__powerpc64__) || \
55
54
  defined(__mc68020__)
56
- #define UNALIGNED_WORD_ACCESS 1
57
- #else
58
- #define UNALIGNED_WORD_ACCESS 0
59
- #endif
60
- #endif
61
-
62
- #if UNALIGNED_WORD_ACCESS
63
55
  #define PLATFORM_UNALIGNED_WORD_ACCESS
64
56
  #endif
65
57
 
@@ -0,0 +1 @@
1
+ #define RUBY_REVISION 59905
@@ -17,10 +17,10 @@
17
17
  #define DYNAMIC_ID_P(id) (!(id&ID_STATIC_SYM)&&id>tLAST_OP_ID)
18
18
  #define STATIC_ID2SYM(id) (((VALUE)(id)<<RUBY_SPECIAL_SHIFT)|SYMBOL_FLAG)
19
19
 
20
- #ifdef HAVE_BUILTIN___BUILTIN_CONSTANT_P
20
+ #ifdef __GNUC__
21
21
  #define rb_id2sym(id) \
22
- RB_GNUC_EXTENSION_BLOCK(__builtin_constant_p(id) && !DYNAMIC_ID_P(id) ? \
23
- STATIC_ID2SYM(id) : rb_id2sym(id))
22
+ __extension__(__builtin_constant_p(id) && !DYNAMIC_ID_P(id) ? \
23
+ STATIC_ID2SYM(id) : rb_id2sym(id))
24
24
  #endif
25
25
 
26
26
  struct RSymbol {
@@ -1,31 +1,13 @@
1
- #define RUBY_VERSION "2.4.0"
2
- #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
3
- #define RUBY_PATCHLEVEL -1
1
+ #define RUBY_VERSION "2.3.5"
2
+ #define RUBY_RELEASE_DATE "2017-09-14"
3
+ #define RUBY_PATCHLEVEL 376
4
4
 
5
- #define RUBY_RELEASE_YEAR 2016
6
- #define RUBY_RELEASE_MONTH 11
7
- #define RUBY_RELEASE_DAY 7
5
+ #define RUBY_RELEASE_YEAR 2017
6
+ #define RUBY_RELEASE_MONTH 9
7
+ #define RUBY_RELEASE_DAY 14
8
8
 
9
9
  #include "ruby/version.h"
10
10
 
11
- #ifndef TOKEN_PASTE
12
- #define TOKEN_PASTE(x,y) x##y
13
- #endif
14
- #define ONLY_ONE_DIGIT(x) TOKEN_PASTE(10,x) < 1000
15
- #define WITH_ZERO_PADDING(x) TOKEN_PASTE(0,x)
16
- #define RUBY_BIRTH_YEAR_STR STRINGIZE(RUBY_BIRTH_YEAR)
17
- #define RUBY_RELEASE_YEAR_STR STRINGIZE(RUBY_RELEASE_YEAR)
18
- #if ONLY_ONE_DIGIT(RUBY_RELEASE_MONTH)
19
- #define RUBY_RELEASE_MONTH_STR STRINGIZE(WITH_ZERO_PADDING(RUBY_RELEASE_MONTH))
20
- #else
21
- #define RUBY_RELEASE_MONTH_STR STRINGIZE(RUBY_RELEASE_MONTH)
22
- #endif
23
- #if ONLY_ONE_DIGIT(RUBY_RELEASE_DAY)
24
- #define RUBY_RELEASE_DAY_STR STRINGIZE(WITH_ZERO_PADDING(RUBY_RELEASE_DAY))
25
- #else
26
- #define RUBY_RELEASE_DAY_STR STRINGIZE(RUBY_RELEASE_DAY)
27
- #endif
28
-
29
11
  #if !defined RUBY_LIB_VERSION && defined RUBY_LIB_VERSION_STYLE
30
12
  # if RUBY_LIB_VERSION_STYLE == 3
31
13
  # define RUBY_LIB_VERSION STRINGIZE(RUBY_API_VERSION_MAJOR)"."STRINGIZE(RUBY_API_VERSION_MINOR)"."STRINGIZE(RUBY_API_VERSION_TEENY)
@@ -35,7 +17,7 @@
35
17
  #endif
36
18
 
37
19
  #if RUBY_PATCHLEVEL == -1
38
- #define RUBY_PATCHLEVEL_STR "preview3"
20
+ #define RUBY_PATCHLEVEL_STR "dev"
39
21
  #else
40
22
  #define RUBY_PATCHLEVEL_STR "p"STRINGIZE(RUBY_PATCHLEVEL)
41
23
  #endif
@@ -68,6 +50,6 @@
68
50
  "["RUBY_PLATFORM"]"
69
51
  # define RUBY_COPYRIGHT \
70
52
  "ruby - Copyright (C) " \
71
- RUBY_BIRTH_YEAR_STR"-" \
72
- RUBY_RELEASE_YEAR_STR" " \
53
+ STRINGIZE(RUBY_BIRTH_YEAR)"-" \
54
+ STRINGIZE(RUBY_RELEASE_YEAR)" " \
73
55
  RUBY_AUTHOR
@@ -544,10 +544,16 @@ INSN_ENTRY(concatstrings){
544
544
  COLLECT_USAGE_OPERAND(BIN(concatstrings), 0, num);
545
545
  {
546
546
  #line 368 "insns.def"
547
- val = rb_str_concat_literals(num, &TOPN(num-1));
547
+ rb_num_t i = num - 1;
548
+
549
+ val = rb_str_resurrect(TOPN(i));
550
+ while (i-- > 0) {
551
+ const VALUE v = TOPN(i);
552
+ rb_str_append_literal(val, v);
553
+ }
548
554
  POPN(num);
549
555
 
550
- #line 551 "vm.inc"
556
+ #line 557 "vm.inc"
551
557
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
552
558
  PUSH(val);
553
559
  #undef CURRENT_INSN_concatstrings
@@ -569,10 +575,10 @@ INSN_ENTRY(tostring){
569
575
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
570
576
  COLLECT_USAGE_INSN(BIN(tostring));
571
577
  {
572
- #line 383 "insns.def"
578
+ #line 389 "insns.def"
573
579
  val = rb_obj_as_string(val);
574
580
 
575
- #line 576 "vm.inc"
581
+ #line 582 "vm.inc"
576
582
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
577
583
  PUSH(val);
578
584
  #undef CURRENT_INSN_tostring
@@ -595,13 +601,13 @@ INSN_ENTRY(freezestring){
595
601
  COLLECT_USAGE_INSN(BIN(freezestring));
596
602
  COLLECT_USAGE_OPERAND(BIN(freezestring), 0, debug_info);
597
603
  {
598
- #line 397 "insns.def"
604
+ #line 403 "insns.def"
599
605
  if (!NIL_P(debug_info)) {
600
606
  rb_ivar_set(str, id_debug_created_info, debug_info);
601
607
  }
602
608
  rb_str_freeze(str);
603
609
 
604
- #line 605 "vm.inc"
610
+ #line 611 "vm.inc"
605
611
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
606
612
  PUSH(str);
607
613
  #undef CURRENT_INSN_freezestring
@@ -626,7 +632,7 @@ INSN_ENTRY(toregexp){
626
632
  COLLECT_USAGE_OPERAND(BIN(toregexp), 0, opt);
627
633
  COLLECT_USAGE_OPERAND(BIN(toregexp), 1, cnt);
628
634
  {
629
- #line 416 "insns.def"
635
+ #line 421 "insns.def"
630
636
  VALUE rb_reg_new_ary(VALUE ary, int options);
631
637
  rb_num_t i;
632
638
  const VALUE ary = rb_ary_tmp_new(cnt);
@@ -637,7 +643,7 @@ INSN_ENTRY(toregexp){
637
643
  val = rb_reg_new_ary(ary, (int)opt);
638
644
  rb_ary_clear(ary);
639
645
 
640
- #line 641 "vm.inc"
646
+ #line 647 "vm.inc"
641
647
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
642
648
  PUSH(val);
643
649
  #undef CURRENT_INSN_toregexp
@@ -660,11 +666,11 @@ INSN_ENTRY(newarray){
660
666
  COLLECT_USAGE_INSN(BIN(newarray));
661
667
  COLLECT_USAGE_OPERAND(BIN(newarray), 0, num);
662
668
  {
663
- #line 438 "insns.def"
669
+ #line 443 "insns.def"
664
670
  val = rb_ary_new4((long)num, STACK_ADDR_FROM_TOP(num));
665
671
  POPN(num);
666
672
 
667
- #line 668 "vm.inc"
673
+ #line 674 "vm.inc"
668
674
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
669
675
  PUSH(val);
670
676
  #undef CURRENT_INSN_newarray
@@ -687,10 +693,10 @@ INSN_ENTRY(duparray){
687
693
  COLLECT_USAGE_INSN(BIN(duparray));
688
694
  COLLECT_USAGE_OPERAND(BIN(duparray), 0, ary);
689
695
  {
690
- #line 453 "insns.def"
696
+ #line 458 "insns.def"
691
697
  val = rb_ary_resurrect(ary);
692
698
 
693
- #line 694 "vm.inc"
699
+ #line 700 "vm.inc"
694
700
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
695
701
  PUSH(val);
696
702
  #undef CURRENT_INSN_duparray
@@ -715,10 +721,10 @@ INSN_ENTRY(expandarray){
715
721
  COLLECT_USAGE_OPERAND(BIN(expandarray), 0, num);
716
722
  COLLECT_USAGE_OPERAND(BIN(expandarray), 1, flag);
717
723
  {
718
- #line 481 "insns.def"
724
+ #line 479 "insns.def"
719
725
  vm_expandarray(GET_CFP(), ary, num, (int)flag);
720
726
 
721
- #line 722 "vm.inc"
727
+ #line 728 "vm.inc"
722
728
  #undef CURRENT_INSN_expandarray
723
729
  #undef INSN_IS_SC
724
730
  #undef INSN_LABEL
@@ -740,7 +746,7 @@ INSN_ENTRY(concatarray){
740
746
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
741
747
  COLLECT_USAGE_INSN(BIN(concatarray));
742
748
  {
743
- #line 495 "insns.def"
749
+ #line 493 "insns.def"
744
750
  const VALUE ary2 = ary2st;
745
751
  VALUE tmp1 = rb_check_convert_type(ary1, T_ARRAY, "Array", "to_a");
746
752
  VALUE tmp2 = rb_check_convert_type(ary2, T_ARRAY, "Array", "to_a");
@@ -758,7 +764,7 @@ INSN_ENTRY(concatarray){
758
764
  }
759
765
  ary = rb_ary_concat(tmp1, tmp2);
760
766
 
761
- #line 762 "vm.inc"
767
+ #line 768 "vm.inc"
762
768
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
763
769
  PUSH(ary);
764
770
  #undef CURRENT_INSN_concatarray
@@ -782,7 +788,7 @@ INSN_ENTRY(splatarray){
782
788
  COLLECT_USAGE_INSN(BIN(splatarray));
783
789
  COLLECT_USAGE_OPERAND(BIN(splatarray), 0, flag);
784
790
  {
785
- #line 524 "insns.def"
791
+ #line 522 "insns.def"
786
792
  VALUE tmp = rb_check_convert_type(ary, T_ARRAY, "Array", "to_a");
787
793
  if (NIL_P(tmp)) {
788
794
  tmp = rb_ary_new3(1, ary);
@@ -792,7 +798,7 @@ INSN_ENTRY(splatarray){
792
798
  }
793
799
  obj = tmp;
794
800
 
795
- #line 796 "vm.inc"
801
+ #line 802 "vm.inc"
796
802
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
797
803
  PUSH(obj);
798
804
  #undef CURRENT_INSN_splatarray
@@ -815,7 +821,7 @@ INSN_ENTRY(newhash){
815
821
  COLLECT_USAGE_INSN(BIN(newhash));
816
822
  COLLECT_USAGE_OPERAND(BIN(newhash), 0, num);
817
823
  {
818
- #line 546 "insns.def"
824
+ #line 544 "insns.def"
819
825
  rb_num_t i;
820
826
 
821
827
  RUBY_DTRACE_CREATE_HOOK(HASH, num);
@@ -829,7 +835,7 @@ INSN_ENTRY(newhash){
829
835
  }
830
836
  POPN(num);
831
837
 
832
- #line 833 "vm.inc"
838
+ #line 839 "vm.inc"
833
839
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
834
840
  PUSH(val);
835
841
  #undef CURRENT_INSN_newhash
@@ -854,10 +860,10 @@ INSN_ENTRY(newrange){
854
860
  COLLECT_USAGE_INSN(BIN(newrange));
855
861
  COLLECT_USAGE_OPERAND(BIN(newrange), 0, flag);
856
862
  {
857
- #line 571 "insns.def"
863
+ #line 569 "insns.def"
858
864
  val = rb_range_new(low, high, (int)flag);
859
865
 
860
- #line 861 "vm.inc"
866
+ #line 867 "vm.inc"
861
867
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
862
868
  PUSH(val);
863
869
  #undef CURRENT_INSN_newrange
@@ -879,11 +885,11 @@ INSN_ENTRY(pop){
879
885
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
880
886
  COLLECT_USAGE_INSN(BIN(pop));
881
887
  {
882
- #line 589 "insns.def"
888
+ #line 587 "insns.def"
883
889
  (void)val;
884
890
  /* none */
885
891
 
886
- #line 887 "vm.inc"
892
+ #line 893 "vm.inc"
887
893
  #undef CURRENT_INSN_pop
888
894
  #undef INSN_IS_SC
889
895
  #undef INSN_LABEL
@@ -905,10 +911,10 @@ INSN_ENTRY(dup){
905
911
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
906
912
  COLLECT_USAGE_INSN(BIN(dup));
907
913
  {
908
- #line 604 "insns.def"
914
+ #line 602 "insns.def"
909
915
  val1 = val2 = val;
910
916
 
911
- #line 912 "vm.inc"
917
+ #line 918 "vm.inc"
912
918
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 2);
913
919
  PUSH(val1);
914
920
  PUSH(val2);
@@ -931,7 +937,7 @@ INSN_ENTRY(dupn){
931
937
  COLLECT_USAGE_INSN(BIN(dupn));
932
938
  COLLECT_USAGE_OPERAND(BIN(dupn), 0, n);
933
939
  {
934
- #line 618 "insns.def"
940
+ #line 616 "insns.def"
935
941
  rb_num_t i;
936
942
  VALUE *sp = STACK_ADDR_FROM_TOP(n);
937
943
  for (i = 0; i < n; i++) {
@@ -939,7 +945,7 @@ INSN_ENTRY(dupn){
939
945
  }
940
946
  INC_SP(n);
941
947
 
942
- #line 943 "vm.inc"
948
+ #line 949 "vm.inc"
943
949
  #undef CURRENT_INSN_dupn
944
950
  #undef INSN_IS_SC
945
951
  #undef INSN_LABEL
@@ -960,10 +966,10 @@ INSN_ENTRY(swap){
960
966
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
961
967
  COLLECT_USAGE_INSN(BIN(swap));
962
968
  {
963
- #line 638 "insns.def"
969
+ #line 636 "insns.def"
964
970
  /* none */
965
971
 
966
- #line 967 "vm.inc"
972
+ #line 973 "vm.inc"
967
973
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 2);
968
974
  PUSH(obj);
969
975
  PUSH(val);
@@ -986,7 +992,7 @@ INSN_ENTRY(reverse){
986
992
  COLLECT_USAGE_INSN(BIN(reverse));
987
993
  COLLECT_USAGE_OPERAND(BIN(reverse), 0, n);
988
994
  {
989
- #line 652 "insns.def"
995
+ #line 650 "insns.def"
990
996
  rb_num_t i;
991
997
  VALUE *sp = STACK_ADDR_FROM_TOP(n);
992
998
 
@@ -997,7 +1003,7 @@ INSN_ENTRY(reverse){
997
1003
  TOPN(i) = v0;
998
1004
  }
999
1005
 
1000
- #line 1001 "vm.inc"
1006
+ #line 1007 "vm.inc"
1001
1007
  #undef CURRENT_INSN_reverse
1002
1008
  #undef INSN_IS_SC
1003
1009
  #undef INSN_LABEL
@@ -1017,10 +1023,10 @@ INSN_ENTRY(reput){
1017
1023
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1018
1024
  COLLECT_USAGE_INSN(BIN(reput));
1019
1025
  {
1020
- #line 674 "insns.def"
1026
+ #line 672 "insns.def"
1021
1027
  /* none */
1022
1028
 
1023
- #line 1024 "vm.inc"
1029
+ #line 1030 "vm.inc"
1024
1030
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1025
1031
  PUSH(val);
1026
1032
  #undef CURRENT_INSN_reput
@@ -1043,10 +1049,10 @@ INSN_ENTRY(topn){
1043
1049
  COLLECT_USAGE_INSN(BIN(topn));
1044
1050
  COLLECT_USAGE_OPERAND(BIN(topn), 0, n);
1045
1051
  {
1046
- #line 688 "insns.def"
1052
+ #line 686 "insns.def"
1047
1053
  val = TOPN(n);
1048
1054
 
1049
- #line 1050 "vm.inc"
1055
+ #line 1056 "vm.inc"
1050
1056
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1051
1057
  PUSH(val);
1052
1058
  #undef CURRENT_INSN_topn
@@ -1069,10 +1075,10 @@ INSN_ENTRY(setn){
1069
1075
  COLLECT_USAGE_INSN(BIN(setn));
1070
1076
  COLLECT_USAGE_OPERAND(BIN(setn), 0, n);
1071
1077
  {
1072
- #line 702 "insns.def"
1078
+ #line 700 "insns.def"
1073
1079
  TOPN(n-1) = val;
1074
1080
 
1075
- #line 1076 "vm.inc"
1081
+ #line 1082 "vm.inc"
1076
1082
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1077
1083
  PUSH(val);
1078
1084
  #undef CURRENT_INSN_setn
@@ -1094,10 +1100,10 @@ INSN_ENTRY(adjuststack){
1094
1100
  COLLECT_USAGE_INSN(BIN(adjuststack));
1095
1101
  COLLECT_USAGE_OPERAND(BIN(adjuststack), 0, n);
1096
1102
  {
1097
- #line 716 "insns.def"
1103
+ #line 714 "insns.def"
1098
1104
  DEC_SP(n);
1099
1105
 
1100
- #line 1101 "vm.inc"
1106
+ #line 1107 "vm.inc"
1101
1107
  #undef CURRENT_INSN_adjuststack
1102
1108
  #undef INSN_IS_SC
1103
1109
  #undef INSN_LABEL
@@ -1123,10 +1129,10 @@ INSN_ENTRY(defined){
1123
1129
  COLLECT_USAGE_OPERAND(BIN(defined), 1, obj);
1124
1130
  COLLECT_USAGE_OPERAND(BIN(defined), 2, needstr);
1125
1131
  {
1126
- #line 735 "insns.def"
1132
+ #line 733 "insns.def"
1127
1133
  val = vm_defined(th, GET_CFP(), op_type, obj, needstr, v);
1128
1134
 
1129
- #line 1130 "vm.inc"
1135
+ #line 1136 "vm.inc"
1130
1136
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1131
1137
  PUSH(val);
1132
1138
  #undef CURRENT_INSN_defined
@@ -1151,7 +1157,7 @@ INSN_ENTRY(checkmatch){
1151
1157
  COLLECT_USAGE_INSN(BIN(checkmatch));
1152
1158
  COLLECT_USAGE_OPERAND(BIN(checkmatch), 0, flag);
1153
1159
  {
1154
- #line 754 "insns.def"
1160
+ #line 752 "insns.def"
1155
1161
  enum vm_check_match_type checkmatch_type =
1156
1162
  (enum vm_check_match_type)(flag & VM_CHECKMATCH_TYPE_MASK);
1157
1163
  result = Qfalse;
@@ -1171,7 +1177,7 @@ INSN_ENTRY(checkmatch){
1171
1177
  }
1172
1178
  }
1173
1179
 
1174
- #line 1175 "vm.inc"
1180
+ #line 1181 "vm.inc"
1175
1181
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1176
1182
  PUSH(result);
1177
1183
  #undef CURRENT_INSN_checkmatch
@@ -1196,7 +1202,7 @@ INSN_ENTRY(checkkeyword){
1196
1202
  COLLECT_USAGE_OPERAND(BIN(checkkeyword), 0, kw_bits_index);
1197
1203
  COLLECT_USAGE_OPERAND(BIN(checkkeyword), 1, keyword_index);
1198
1204
  {
1199
- #line 785 "insns.def"
1205
+ #line 783 "insns.def"
1200
1206
  const VALUE *ep = GET_EP();
1201
1207
  const VALUE kw_bits = *(ep - kw_bits_index);
1202
1208
 
@@ -1209,7 +1215,7 @@ INSN_ENTRY(checkkeyword){
1209
1215
  ret = rb_hash_has_key(kw_bits, INT2FIX(keyword_index)) ? Qfalse : Qtrue;
1210
1216
  }
1211
1217
 
1212
- #line 1213 "vm.inc"
1218
+ #line 1219 "vm.inc"
1213
1219
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1214
1220
  PUSH(ret);
1215
1221
  #undef CURRENT_INSN_checkkeyword
@@ -1231,7 +1237,7 @@ INSN_ENTRY(trace){
1231
1237
  COLLECT_USAGE_INSN(BIN(trace));
1232
1238
  COLLECT_USAGE_OPERAND(BIN(trace), 0, nf);
1233
1239
  {
1234
- #line 809 "insns.def"
1240
+ #line 807 "insns.def"
1235
1241
  rb_event_flag_t flag = (rb_event_flag_t)nf;
1236
1242
 
1237
1243
  if (RUBY_DTRACE_METHOD_ENTRY_ENABLED() ||
@@ -1258,7 +1264,7 @@ INSN_ENTRY(trace){
1258
1264
  EXEC_EVENT_HOOK(th, flag, GET_SELF(), 0, 0 /* id and klass are resolved at callee */,
1259
1265
  (flag & (RUBY_EVENT_RETURN | RUBY_EVENT_B_RETURN)) ? TOPN(0) : Qundef);
1260
1266
 
1261
- #line 1262 "vm.inc"
1267
+ #line 1268 "vm.inc"
1262
1268
  #undef CURRENT_INSN_trace
1263
1269
  #undef INSN_IS_SC
1264
1270
  #undef INSN_LABEL
@@ -1285,7 +1291,7 @@ INSN_ENTRY(defineclass){
1285
1291
  COLLECT_USAGE_OPERAND(BIN(defineclass), 1, class_iseq);
1286
1292
  COLLECT_USAGE_OPERAND(BIN(defineclass), 2, flags);
1287
1293
  {
1288
- #line 855 "insns.def"
1294
+ #line 853 "insns.def"
1289
1295
  VALUE klass;
1290
1296
  rb_vm_defineclass_type_t type = VM_DEFINECLASS_TYPE(flags);
1291
1297
 
@@ -1375,7 +1381,7 @@ INSN_ENTRY(defineclass){
1375
1381
  RESTORE_REGS();
1376
1382
  NEXT_INSN();
1377
1383
 
1378
- #line 1379 "vm.inc"
1384
+ #line 1385 "vm.inc"
1379
1385
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1380
1386
  PUSH(val);
1381
1387
  #undef CURRENT_INSN_defineclass
@@ -1402,14 +1408,14 @@ INSN_ENTRY(send){
1402
1408
  COLLECT_USAGE_OPERAND(BIN(send), 1, cc);
1403
1409
  COLLECT_USAGE_OPERAND(BIN(send), 2, blockiseq);
1404
1410
  {
1405
- #line 961 "insns.def"
1411
+ #line 959 "insns.def"
1406
1412
  struct rb_calling_info calling;
1407
1413
 
1408
1414
  vm_caller_setup_arg_block(th, reg_cfp, &calling, ci, blockiseq, FALSE);
1409
1415
  vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
1410
1416
  CALL_METHOD(&calling, ci, cc);
1411
1417
 
1412
- #line 1413 "vm.inc"
1418
+ #line 1419 "vm.inc"
1413
1419
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1414
1420
  PUSH(val);
1415
1421
  #undef CURRENT_INSN_send
@@ -1432,7 +1438,7 @@ INSN_ENTRY(opt_str_freeze){
1432
1438
  COLLECT_USAGE_INSN(BIN(opt_str_freeze));
1433
1439
  COLLECT_USAGE_OPERAND(BIN(opt_str_freeze), 0, str);
1434
1440
  {
1435
- #line 974 "insns.def"
1441
+ #line 972 "insns.def"
1436
1442
  if (BASIC_OP_UNREDEFINED_P(BOP_FREEZE, STRING_REDEFINED_OP_FLAG)) {
1437
1443
  val = str;
1438
1444
  }
@@ -1440,7 +1446,7 @@ INSN_ENTRY(opt_str_freeze){
1440
1446
  val = rb_funcall(rb_str_resurrect(str), idFreeze, 0);
1441
1447
  }
1442
1448
 
1443
- #line 1444 "vm.inc"
1449
+ #line 1450 "vm.inc"
1444
1450
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1445
1451
  PUSH(val);
1446
1452
  #undef CURRENT_INSN_opt_str_freeze
@@ -1448,108 +1454,6 @@ INSN_ENTRY(opt_str_freeze){
1448
1454
  #undef INSN_LABEL
1449
1455
  #undef LABEL_IS_SC
1450
1456
  END_INSN(opt_str_freeze);}}}
1451
- INSN_ENTRY(opt_newarray_max){
1452
- {
1453
- VALUE val;
1454
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
1455
-
1456
- DEBUG_ENTER_INSN("opt_newarray_max");
1457
- ADD_PC(1+1);
1458
- PREFETCH(GET_PC());
1459
- #define CURRENT_INSN_opt_newarray_max 1
1460
- #define INSN_IS_SC() 0
1461
- #define INSN_LABEL(lab) LABEL_opt_newarray_max_##lab
1462
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1463
- COLLECT_USAGE_INSN(BIN(opt_newarray_max));
1464
- COLLECT_USAGE_OPERAND(BIN(opt_newarray_max), 0, num);
1465
- {
1466
- #line 988 "insns.def"
1467
- #define id_cmp idCmp
1468
- if (BASIC_OP_UNREDEFINED_P(BOP_MAX, ARRAY_REDEFINED_OP_FLAG)) {
1469
- if (num == 0) {
1470
- val = Qnil;
1471
- }
1472
- else {
1473
- struct cmp_opt_data cmp_opt = { 0, 0 };
1474
- VALUE result = Qundef;
1475
- rb_num_t i = num - 1;
1476
- result = TOPN(i);
1477
- while (i-- > 0) {
1478
- const VALUE v = TOPN(i);
1479
- if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) > 0) {
1480
- result = v;
1481
- }
1482
- }
1483
- val = result == Qundef ? Qnil : result;
1484
- }
1485
- POPN(num);
1486
- }
1487
- else {
1488
- VALUE ary = rb_ary_new4((long)num, STACK_ADDR_FROM_TOP(num));
1489
- val = rb_funcall(ary, idMax, 0);
1490
- POPN(num);
1491
- }
1492
- #undef id_cmp
1493
-
1494
- #line 1495 "vm.inc"
1495
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1496
- PUSH(val);
1497
- #undef CURRENT_INSN_opt_newarray_max
1498
- #undef INSN_IS_SC
1499
- #undef INSN_LABEL
1500
- #undef LABEL_IS_SC
1501
- END_INSN(opt_newarray_max);}}}
1502
- INSN_ENTRY(opt_newarray_min){
1503
- {
1504
- VALUE val;
1505
- rb_num_t num = (rb_num_t)GET_OPERAND(1);
1506
-
1507
- DEBUG_ENTER_INSN("opt_newarray_min");
1508
- ADD_PC(1+1);
1509
- PREFETCH(GET_PC());
1510
- #define CURRENT_INSN_opt_newarray_min 1
1511
- #define INSN_IS_SC() 0
1512
- #define INSN_LABEL(lab) LABEL_opt_newarray_min_##lab
1513
- #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1514
- COLLECT_USAGE_INSN(BIN(opt_newarray_min));
1515
- COLLECT_USAGE_OPERAND(BIN(opt_newarray_min), 0, num);
1516
- {
1517
- #line 1022 "insns.def"
1518
- #define id_cmp idCmp
1519
- if (BASIC_OP_UNREDEFINED_P(BOP_MIN, ARRAY_REDEFINED_OP_FLAG)) {
1520
- if (num == 0) {
1521
- val = Qnil;
1522
- }
1523
- else {
1524
- struct cmp_opt_data cmp_opt = { 0, 0 };
1525
- VALUE result = Qundef;
1526
- rb_num_t i = num - 1;
1527
- result = TOPN(i);
1528
- while (i-- > 0) {
1529
- const VALUE v = TOPN(i);
1530
- if (result == Qundef || OPTIMIZED_CMP(v, result, cmp_opt) < 0) {
1531
- result = v;
1532
- }
1533
- }
1534
- val = result == Qundef ? Qnil : result;
1535
- }
1536
- POPN(num);
1537
- }
1538
- else {
1539
- VALUE ary = rb_ary_new4((long)num, STACK_ADDR_FROM_TOP(num));
1540
- val = rb_funcall(ary, idMin, 0);
1541
- POPN(num);
1542
- }
1543
- #undef id_cmp
1544
-
1545
- #line 1546 "vm.inc"
1546
- CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1547
- PUSH(val);
1548
- #undef CURRENT_INSN_opt_newarray_min
1549
- #undef INSN_IS_SC
1550
- #undef INSN_LABEL
1551
- #undef LABEL_IS_SC
1552
- END_INSN(opt_newarray_min);}}}
1553
1457
  INSN_ENTRY(opt_send_without_block){
1554
1458
  {
1555
1459
  VALUE val;
@@ -1567,13 +1471,13 @@ INSN_ENTRY(opt_send_without_block){
1567
1471
  COLLECT_USAGE_OPERAND(BIN(opt_send_without_block), 0, ci);
1568
1472
  COLLECT_USAGE_OPERAND(BIN(opt_send_without_block), 1, cc);
1569
1473
  {
1570
- #line 1061 "insns.def"
1474
+ #line 991 "insns.def"
1571
1475
  struct rb_calling_info calling;
1572
1476
  calling.blockptr = NULL;
1573
1477
  vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
1574
1478
  CALL_METHOD(&calling, ci, cc);
1575
1479
 
1576
- #line 1577 "vm.inc"
1480
+ #line 1481 "vm.inc"
1577
1481
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1578
1482
  PUSH(val);
1579
1483
  #undef CURRENT_INSN_opt_send_without_block
@@ -1600,7 +1504,7 @@ INSN_ENTRY(invokesuper){
1600
1504
  COLLECT_USAGE_OPERAND(BIN(invokesuper), 1, cc);
1601
1505
  COLLECT_USAGE_OPERAND(BIN(invokesuper), 2, blockiseq);
1602
1506
  {
1603
- #line 1078 "insns.def"
1507
+ #line 1008 "insns.def"
1604
1508
  struct rb_calling_info calling;
1605
1509
  calling.argc = ci->orig_argc;
1606
1510
 
@@ -1609,7 +1513,7 @@ INSN_ENTRY(invokesuper){
1609
1513
  vm_search_super_method(th, GET_CFP(), &calling, ci, cc);
1610
1514
  CALL_METHOD(&calling, ci, cc);
1611
1515
 
1612
- #line 1613 "vm.inc"
1516
+ #line 1517 "vm.inc"
1613
1517
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1614
1518
  PUSH(val);
1615
1519
  #undef CURRENT_INSN_invokesuper
@@ -1632,7 +1536,7 @@ INSN_ENTRY(invokeblock){
1632
1536
  COLLECT_USAGE_INSN(BIN(invokeblock));
1633
1537
  COLLECT_USAGE_OPERAND(BIN(invokeblock), 0, ci);
1634
1538
  {
1635
- #line 1098 "insns.def"
1539
+ #line 1028 "insns.def"
1636
1540
  struct rb_calling_info calling;
1637
1541
  calling.argc = ci->orig_argc;
1638
1542
  calling.blockptr = NULL;
@@ -1644,7 +1548,7 @@ INSN_ENTRY(invokeblock){
1644
1548
  NEXT_INSN();
1645
1549
  }
1646
1550
 
1647
- #line 1648 "vm.inc"
1551
+ #line 1552 "vm.inc"
1648
1552
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1649
1553
  PUSH(val);
1650
1554
  #undef CURRENT_INSN_invokeblock
@@ -1666,7 +1570,7 @@ INSN_ENTRY(leave){
1666
1570
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
1667
1571
  COLLECT_USAGE_INSN(BIN(leave));
1668
1572
  {
1669
- #line 1121 "insns.def"
1573
+ #line 1051 "insns.def"
1670
1574
  if (OPT_CHECKED_RUN) {
1671
1575
  const VALUE *const bp = vm_base_ptr(reg_cfp);
1672
1576
  if (reg_cfp->sp != bp) {
@@ -1692,7 +1596,7 @@ INSN_ENTRY(leave){
1692
1596
  RESTORE_REGS();
1693
1597
  }
1694
1598
 
1695
- #line 1696 "vm.inc"
1599
+ #line 1600 "vm.inc"
1696
1600
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1697
1601
  PUSH(val);
1698
1602
  #undef CURRENT_INSN_leave
@@ -1716,13 +1620,13 @@ INSN_ENTRY(throw){
1716
1620
  COLLECT_USAGE_INSN(BIN(throw));
1717
1621
  COLLECT_USAGE_OPERAND(BIN(throw), 0, throw_state);
1718
1622
  {
1719
- #line 1162 "insns.def"
1623
+ #line 1092 "insns.def"
1720
1624
  RUBY_VM_CHECK_INTS(th);
1721
1625
  val = vm_throw(th, GET_CFP(), throw_state, throwobj);
1722
1626
  THROW_EXCEPTION(val);
1723
1627
  /* unreachable */
1724
1628
 
1725
- #line 1726 "vm.inc"
1629
+ #line 1630 "vm.inc"
1726
1630
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1727
1631
  PUSH(val);
1728
1632
  #undef CURRENT_INSN_throw
@@ -1744,11 +1648,11 @@ INSN_ENTRY(jump){
1744
1648
  COLLECT_USAGE_INSN(BIN(jump));
1745
1649
  COLLECT_USAGE_OPERAND(BIN(jump), 0, dst);
1746
1650
  {
1747
- #line 1183 "insns.def"
1651
+ #line 1113 "insns.def"
1748
1652
  RUBY_VM_CHECK_INTS(th);
1749
1653
  JUMP(dst);
1750
1654
 
1751
- #line 1752 "vm.inc"
1655
+ #line 1656 "vm.inc"
1752
1656
  #undef CURRENT_INSN_jump
1753
1657
  #undef INSN_IS_SC
1754
1658
  #undef INSN_LABEL
@@ -1769,13 +1673,13 @@ INSN_ENTRY(branchif){
1769
1673
  COLLECT_USAGE_INSN(BIN(branchif));
1770
1674
  COLLECT_USAGE_OPERAND(BIN(branchif), 0, dst);
1771
1675
  {
1772
- #line 1198 "insns.def"
1676
+ #line 1128 "insns.def"
1773
1677
  if (RTEST(val)) {
1774
1678
  RUBY_VM_CHECK_INTS(th);
1775
1679
  JUMP(dst);
1776
1680
  }
1777
1681
 
1778
- #line 1779 "vm.inc"
1682
+ #line 1683 "vm.inc"
1779
1683
  #undef CURRENT_INSN_branchif
1780
1684
  #undef INSN_IS_SC
1781
1685
  #undef INSN_LABEL
@@ -1796,13 +1700,13 @@ INSN_ENTRY(branchunless){
1796
1700
  COLLECT_USAGE_INSN(BIN(branchunless));
1797
1701
  COLLECT_USAGE_OPERAND(BIN(branchunless), 0, dst);
1798
1702
  {
1799
- #line 1215 "insns.def"
1703
+ #line 1145 "insns.def"
1800
1704
  if (!RTEST(val)) {
1801
1705
  RUBY_VM_CHECK_INTS(th);
1802
1706
  JUMP(dst);
1803
1707
  }
1804
1708
 
1805
- #line 1806 "vm.inc"
1709
+ #line 1710 "vm.inc"
1806
1710
  #undef CURRENT_INSN_branchunless
1807
1711
  #undef INSN_IS_SC
1808
1712
  #undef INSN_LABEL
@@ -1823,13 +1727,13 @@ INSN_ENTRY(branchnil){
1823
1727
  COLLECT_USAGE_INSN(BIN(branchnil));
1824
1728
  COLLECT_USAGE_OPERAND(BIN(branchnil), 0, dst);
1825
1729
  {
1826
- #line 1232 "insns.def"
1730
+ #line 1162 "insns.def"
1827
1731
  if (NIL_P(val)) {
1828
1732
  RUBY_VM_CHECK_INTS(th);
1829
1733
  JUMP(dst);
1830
1734
  }
1831
1735
 
1832
- #line 1833 "vm.inc"
1736
+ #line 1737 "vm.inc"
1833
1737
  #undef CURRENT_INSN_branchnil
1834
1738
  #undef INSN_IS_SC
1835
1739
  #undef INSN_LABEL
@@ -1852,7 +1756,7 @@ INSN_ENTRY(getinlinecache){
1852
1756
  COLLECT_USAGE_OPERAND(BIN(getinlinecache), 0, dst);
1853
1757
  COLLECT_USAGE_OPERAND(BIN(getinlinecache), 1, ic);
1854
1758
  {
1855
- #line 1254 "insns.def"
1759
+ #line 1184 "insns.def"
1856
1760
  if (ic->ic_serial == GET_GLOBAL_CONSTANT_STATE() &&
1857
1761
  (ic->ic_cref == NULL || ic->ic_cref == rb_vm_get_cref(GET_EP()))) {
1858
1762
  val = ic->ic_value.value;
@@ -1863,7 +1767,7 @@ INSN_ENTRY(getinlinecache){
1863
1767
  val = Qnil;
1864
1768
  }
1865
1769
 
1866
- #line 1867 "vm.inc"
1770
+ #line 1771 "vm.inc"
1867
1771
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1868
1772
  PUSH(val);
1869
1773
  #undef CURRENT_INSN_getinlinecache
@@ -1886,14 +1790,14 @@ INSN_ENTRY(setinlinecache){
1886
1790
  COLLECT_USAGE_INSN(BIN(setinlinecache));
1887
1791
  COLLECT_USAGE_OPERAND(BIN(setinlinecache), 0, ic);
1888
1792
  {
1889
- #line 1276 "insns.def"
1793
+ #line 1206 "insns.def"
1890
1794
  VM_ASSERT(ic->ic_value.value != Qundef);
1891
1795
  ic->ic_value.value = val;
1892
1796
  ic->ic_serial = GET_GLOBAL_CONSTANT_STATE() - ruby_vm_const_missing_count;
1893
1797
  ic->ic_cref = vm_get_const_key_cref(GET_EP());
1894
1798
  ruby_vm_const_missing_count = 0;
1895
1799
 
1896
- #line 1897 "vm.inc"
1800
+ #line 1801 "vm.inc"
1897
1801
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1898
1802
  PUSH(val);
1899
1803
  #undef CURRENT_INSN_setinlinecache
@@ -1918,7 +1822,7 @@ INSN_ENTRY(once){
1918
1822
  COLLECT_USAGE_OPERAND(BIN(once), 0, iseq);
1919
1823
  COLLECT_USAGE_OPERAND(BIN(once), 1, ic);
1920
1824
  {
1921
- #line 1294 "insns.def"
1825
+ #line 1224 "insns.def"
1922
1826
  union iseq_inline_storage_entry *is = (union iseq_inline_storage_entry *)ic;
1923
1827
 
1924
1828
  #define RUNNING_THREAD_ONCE_DONE ((rb_thread_t *)(0x1))
@@ -1944,7 +1848,7 @@ INSN_ENTRY(once){
1944
1848
  goto retry;
1945
1849
  }
1946
1850
 
1947
- #line 1948 "vm.inc"
1851
+ #line 1852 "vm.inc"
1948
1852
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
1949
1853
  PUSH(val);
1950
1854
  #undef CURRENT_INSN_once
@@ -1969,7 +1873,7 @@ INSN_ENTRY(opt_case_dispatch){
1969
1873
  COLLECT_USAGE_OPERAND(BIN(opt_case_dispatch), 0, hash);
1970
1874
  COLLECT_USAGE_OPERAND(BIN(opt_case_dispatch), 1, else_offset);
1971
1875
  {
1972
- #line 1331 "insns.def"
1876
+ #line 1261 "insns.def"
1973
1877
  switch(TYPE(key)) {
1974
1878
  case T_FLOAT: {
1975
1879
  double ival;
@@ -1977,17 +1881,18 @@ INSN_ENTRY(opt_case_dispatch){
1977
1881
  key = FIXABLE(ival) ? LONG2FIX((long)ival) : rb_dbl2big(ival);
1978
1882
  }
1979
1883
  }
1980
- case T_TRUE: /* fall through */
1884
+ case T_TRUE:
1981
1885
  case T_FALSE:
1982
1886
  case T_NIL:
1983
- case T_SYMBOL:
1887
+ case T_SYMBOL: /* fall through */
1984
1888
  case T_FIXNUM:
1985
1889
  case T_BIGNUM:
1986
1890
  case T_STRING:
1987
1891
  if (BASIC_OP_UNREDEFINED_P(BOP_EQQ,
1988
1892
  SYMBOL_REDEFINED_OP_FLAG |
1989
- INTEGER_REDEFINED_OP_FLAG |
1893
+ FIXNUM_REDEFINED_OP_FLAG |
1990
1894
  FLOAT_REDEFINED_OP_FLAG |
1895
+ BIGNUM_REDEFINED_OP_FLAG |
1991
1896
  NIL_REDEFINED_OP_FLAG |
1992
1897
  TRUE_REDEFINED_OP_FLAG |
1993
1898
  FALSE_REDEFINED_OP_FLAG |
@@ -2005,7 +1910,7 @@ INSN_ENTRY(opt_case_dispatch){
2005
1910
  break;
2006
1911
  }
2007
1912
 
2008
- #line 2009 "vm.inc"
1913
+ #line 1914 "vm.inc"
2009
1914
  #undef CURRENT_INSN_opt_case_dispatch
2010
1915
  #undef INSN_IS_SC
2011
1916
  #undef INSN_LABEL
@@ -2030,9 +1935,9 @@ INSN_ENTRY(opt_plus){
2030
1935
  COLLECT_USAGE_OPERAND(BIN(opt_plus), 0, ci);
2031
1936
  COLLECT_USAGE_OPERAND(BIN(opt_plus), 1, cc);
2032
1937
  {
2033
- #line 1380 "insns.def"
1938
+ #line 1311 "insns.def"
2034
1939
  if (FIXNUM_2_P(recv, obj) &&
2035
- BASIC_OP_UNREDEFINED_P(BOP_PLUS,INTEGER_REDEFINED_OP_FLAG)) {
1940
+ BASIC_OP_UNREDEFINED_P(BOP_PLUS,FIXNUM_REDEFINED_OP_FLAG)) {
2036
1941
  /* fixnum + fixnum */
2037
1942
  #ifndef LONG_LONG_VALUE
2038
1943
  val = (recv + (obj & (~1)));
@@ -2046,7 +1951,12 @@ INSN_ENTRY(opt_plus){
2046
1951
  a = FIX2LONG(recv);
2047
1952
  b = FIX2LONG(obj);
2048
1953
  c = a + b;
2049
- val = LONG2NUM(c);
1954
+ if (FIXABLE(c)) {
1955
+ val = LONG2FIX(c);
1956
+ }
1957
+ else {
1958
+ val = rb_big_plus(rb_int2big(a), rb_int2big(b));
1959
+ }
2050
1960
  #endif
2051
1961
  }
2052
1962
  else if (FLONUM_2_P(recv, obj) &&
@@ -2077,7 +1987,7 @@ INSN_ENTRY(opt_plus){
2077
1987
  CALL_SIMPLE_METHOD(recv);
2078
1988
  }
2079
1989
 
2080
- #line 2081 "vm.inc"
1990
+ #line 1991 "vm.inc"
2081
1991
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2082
1992
  PUSH(val);
2083
1993
  #undef CURRENT_INSN_opt_plus
@@ -2104,15 +2014,21 @@ INSN_ENTRY(opt_minus){
2104
2014
  COLLECT_USAGE_OPERAND(BIN(opt_minus), 0, ci);
2105
2015
  COLLECT_USAGE_OPERAND(BIN(opt_minus), 1, cc);
2106
2016
  {
2107
- #line 1438 "insns.def"
2017
+ #line 1374 "insns.def"
2108
2018
  if (FIXNUM_2_P(recv, obj) &&
2109
- BASIC_OP_UNREDEFINED_P(BOP_MINUS, INTEGER_REDEFINED_OP_FLAG)) {
2019
+ BASIC_OP_UNREDEFINED_P(BOP_MINUS, FIXNUM_REDEFINED_OP_FLAG)) {
2110
2020
  long a, b, c;
2111
2021
 
2112
2022
  a = FIX2LONG(recv);
2113
2023
  b = FIX2LONG(obj);
2114
2024
  c = a - b;
2115
- val = LONG2NUM(c);
2025
+
2026
+ if (FIXABLE(c)) {
2027
+ val = LONG2FIX(c);
2028
+ }
2029
+ else {
2030
+ val = rb_big_minus(rb_int2big(a), rb_int2big(b));
2031
+ }
2116
2032
  }
2117
2033
  else if (FLONUM_2_P(recv, obj) &&
2118
2034
  BASIC_OP_UNREDEFINED_P(BOP_MINUS, FLOAT_REDEFINED_OP_FLAG)) {
@@ -2135,7 +2051,7 @@ INSN_ENTRY(opt_minus){
2135
2051
  CALL_SIMPLE_METHOD(recv);
2136
2052
  }
2137
2053
 
2138
- #line 2139 "vm.inc"
2054
+ #line 2055 "vm.inc"
2139
2055
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2140
2056
  PUSH(val);
2141
2057
  #undef CURRENT_INSN_opt_minus
@@ -2162,10 +2078,24 @@ INSN_ENTRY(opt_mult){
2162
2078
  COLLECT_USAGE_OPERAND(BIN(opt_mult), 0, ci);
2163
2079
  COLLECT_USAGE_OPERAND(BIN(opt_mult), 1, cc);
2164
2080
  {
2165
- #line 1480 "insns.def"
2081
+ #line 1422 "insns.def"
2166
2082
  if (FIXNUM_2_P(recv, obj) &&
2167
- BASIC_OP_UNREDEFINED_P(BOP_MULT, INTEGER_REDEFINED_OP_FLAG)) {
2168
- val = rb_fix_mul_fix(recv, obj);
2083
+ BASIC_OP_UNREDEFINED_P(BOP_MULT, FIXNUM_REDEFINED_OP_FLAG)) {
2084
+ long a, b;
2085
+
2086
+ a = FIX2LONG(recv);
2087
+ if (a == 0) {
2088
+ val = recv;
2089
+ }
2090
+ else {
2091
+ b = FIX2LONG(obj);
2092
+ if (MUL_OVERFLOW_FIXNUM_P(a, b)) {
2093
+ val = rb_big_mul(rb_int2big(a), rb_int2big(b));
2094
+ }
2095
+ else {
2096
+ val = LONG2FIX(a * b);
2097
+ }
2098
+ }
2169
2099
  }
2170
2100
  else if (FLONUM_2_P(recv, obj) &&
2171
2101
  BASIC_OP_UNREDEFINED_P(BOP_MULT, FLOAT_REDEFINED_OP_FLAG)) {
@@ -2187,7 +2117,7 @@ INSN_ENTRY(opt_mult){
2187
2117
  CALL_SIMPLE_METHOD(recv);
2188
2118
  }
2189
2119
 
2190
- #line 2191 "vm.inc"
2120
+ #line 2121 "vm.inc"
2191
2121
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2192
2122
  PUSH(val);
2193
2123
  #undef CURRENT_INSN_opt_mult
@@ -2214,11 +2144,37 @@ INSN_ENTRY(opt_div){
2214
2144
  COLLECT_USAGE_OPERAND(BIN(opt_div), 0, ci);
2215
2145
  COLLECT_USAGE_OPERAND(BIN(opt_div), 1, cc);
2216
2146
  {
2217
- #line 1516 "insns.def"
2147
+ #line 1472 "insns.def"
2218
2148
  if (FIXNUM_2_P(recv, obj) &&
2219
- BASIC_OP_UNREDEFINED_P(BOP_DIV, INTEGER_REDEFINED_OP_FLAG)) {
2220
- if (FIX2LONG(obj) == 0) goto INSN_LABEL(normal_dispatch);
2221
- val = rb_fix_div_fix(recv, obj);
2149
+ BASIC_OP_UNREDEFINED_P(BOP_DIV, FIXNUM_REDEFINED_OP_FLAG)) {
2150
+ long x, y, div;
2151
+
2152
+ x = FIX2LONG(recv);
2153
+ y = FIX2LONG(obj);
2154
+ {
2155
+ /* copied from numeric.c#fixdivmod */
2156
+ long mod;
2157
+ if (y == 0)
2158
+ goto INSN_LABEL(normal_dispatch);
2159
+ if (y < 0) {
2160
+ if (x < 0)
2161
+ div = -x / -y;
2162
+ else
2163
+ div = -(x / -y);
2164
+ }
2165
+ else {
2166
+ if (x < 0)
2167
+ div = -(-x / y);
2168
+ else
2169
+ div = x / y;
2170
+ }
2171
+ mod = x - div * y;
2172
+ if ((mod < 0 && y > 0) || (mod > 0 && y < 0)) {
2173
+ mod += y;
2174
+ div -= 1;
2175
+ }
2176
+ }
2177
+ val = LONG2NUM(div);
2222
2178
  }
2223
2179
  else if (FLONUM_2_P(recv, obj) &&
2224
2180
  BASIC_OP_UNREDEFINED_P(BOP_DIV, FLOAT_REDEFINED_OP_FLAG)) {
@@ -2240,7 +2196,7 @@ INSN_ENTRY(opt_div){
2240
2196
  CALL_SIMPLE_METHOD(recv);
2241
2197
  }
2242
2198
 
2243
- #line 2244 "vm.inc"
2199
+ #line 2200 "vm.inc"
2244
2200
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2245
2201
  PUSH(val);
2246
2202
  #undef CURRENT_INSN_opt_div
@@ -2267,11 +2223,41 @@ INSN_ENTRY(opt_mod){
2267
2223
  COLLECT_USAGE_OPERAND(BIN(opt_mod), 0, ci);
2268
2224
  COLLECT_USAGE_OPERAND(BIN(opt_mod), 1, cc);
2269
2225
  {
2270
- #line 1553 "insns.def"
2226
+ #line 1535 "insns.def"
2271
2227
  if (FIXNUM_2_P(recv, obj) &&
2272
- BASIC_OP_UNREDEFINED_P(BOP_MOD, INTEGER_REDEFINED_OP_FLAG )) {
2273
- if (FIX2LONG(obj) == 0) goto INSN_LABEL(normal_dispatch);
2274
- val = rb_fix_mod_fix(recv, obj);
2228
+ BASIC_OP_UNREDEFINED_P(BOP_MOD, FIXNUM_REDEFINED_OP_FLAG )) {
2229
+ long x, y;
2230
+
2231
+ x = FIX2LONG(recv);
2232
+ y = FIX2LONG(obj);
2233
+ if (x > 0 && y > 0) {
2234
+ val = LONG2FIX(x % y);
2235
+ }
2236
+ else {
2237
+ /* copied from numeric.c#fixdivmod */
2238
+ long div, mod;
2239
+
2240
+ if (y == 0)
2241
+ goto INSN_LABEL(normal_dispatch);
2242
+ if (y < 0) {
2243
+ if (x < 0)
2244
+ div = -x / -y;
2245
+ else
2246
+ div = -(x / -y);
2247
+ }
2248
+ else {
2249
+ if (x < 0)
2250
+ div = -(-x / y);
2251
+ else
2252
+ div = x / y;
2253
+ }
2254
+ mod = x - div * y;
2255
+ if ((mod < 0 && y > 0) || (mod > 0 && y < 0)) {
2256
+ mod += y;
2257
+ div -= 1;
2258
+ }
2259
+ val = LONG2FIX(mod);
2260
+ }
2275
2261
  }
2276
2262
  else if (FLONUM_2_P(recv, obj) &&
2277
2263
  BASIC_OP_UNREDEFINED_P(BOP_MOD, FLOAT_REDEFINED_OP_FLAG)) {
@@ -2293,7 +2279,7 @@ INSN_ENTRY(opt_mod){
2293
2279
  CALL_SIMPLE_METHOD(recv);
2294
2280
  }
2295
2281
 
2296
- #line 2297 "vm.inc"
2282
+ #line 2283 "vm.inc"
2297
2283
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2298
2284
  PUSH(val);
2299
2285
  #undef CURRENT_INSN_opt_mod
@@ -2320,7 +2306,7 @@ INSN_ENTRY(opt_eq){
2320
2306
  COLLECT_USAGE_OPERAND(BIN(opt_eq), 0, ci);
2321
2307
  COLLECT_USAGE_OPERAND(BIN(opt_eq), 1, cc);
2322
2308
  {
2323
- #line 1590 "insns.def"
2309
+ #line 1602 "insns.def"
2324
2310
  val = opt_eq_func(recv, obj, ci, cc);
2325
2311
 
2326
2312
  if (val == Qundef) {
@@ -2330,7 +2316,7 @@ INSN_ENTRY(opt_eq){
2330
2316
  CALL_SIMPLE_METHOD(recv);
2331
2317
  }
2332
2318
 
2333
- #line 2334 "vm.inc"
2319
+ #line 2320 "vm.inc"
2334
2320
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2335
2321
  PUSH(val);
2336
2322
  #undef CURRENT_INSN_opt_eq
@@ -2361,7 +2347,7 @@ INSN_ENTRY(opt_neq){
2361
2347
  COLLECT_USAGE_OPERAND(BIN(opt_neq), 2, ci_eq);
2362
2348
  COLLECT_USAGE_OPERAND(BIN(opt_neq), 3, cc_eq);
2363
2349
  {
2364
- #line 1611 "insns.def"
2350
+ #line 1623 "insns.def"
2365
2351
  extern VALUE rb_obj_not_equal(VALUE obj1, VALUE obj2);
2366
2352
  vm_search_method(ci, cc, recv);
2367
2353
 
@@ -2382,7 +2368,7 @@ INSN_ENTRY(opt_neq){
2382
2368
  CALL_SIMPLE_METHOD(recv);
2383
2369
  }
2384
2370
 
2385
- #line 2386 "vm.inc"
2371
+ #line 2372 "vm.inc"
2386
2372
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2387
2373
  PUSH(val);
2388
2374
  #undef CURRENT_INSN_opt_neq
@@ -2409,9 +2395,9 @@ INSN_ENTRY(opt_lt){
2409
2395
  COLLECT_USAGE_OPERAND(BIN(opt_lt), 0, ci);
2410
2396
  COLLECT_USAGE_OPERAND(BIN(opt_lt), 1, cc);
2411
2397
  {
2412
- #line 1643 "insns.def"
2398
+ #line 1655 "insns.def"
2413
2399
  if (FIXNUM_2_P(recv, obj) &&
2414
- BASIC_OP_UNREDEFINED_P(BOP_LT, INTEGER_REDEFINED_OP_FLAG)) {
2400
+ BASIC_OP_UNREDEFINED_P(BOP_LT, FIXNUM_REDEFINED_OP_FLAG)) {
2415
2401
  SIGNED_VALUE a = recv, b = obj;
2416
2402
 
2417
2403
  if (a < b) {
@@ -2442,7 +2428,7 @@ INSN_ENTRY(opt_lt){
2442
2428
  CALL_SIMPLE_METHOD(recv);
2443
2429
  }
2444
2430
 
2445
- #line 2446 "vm.inc"
2431
+ #line 2432 "vm.inc"
2446
2432
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2447
2433
  PUSH(val);
2448
2434
  #undef CURRENT_INSN_opt_lt
@@ -2469,9 +2455,9 @@ INSN_ENTRY(opt_le){
2469
2455
  COLLECT_USAGE_OPERAND(BIN(opt_le), 0, ci);
2470
2456
  COLLECT_USAGE_OPERAND(BIN(opt_le), 1, cc);
2471
2457
  {
2472
- #line 1687 "insns.def"
2458
+ #line 1699 "insns.def"
2473
2459
  if (FIXNUM_2_P(recv, obj) &&
2474
- BASIC_OP_UNREDEFINED_P(BOP_LE, INTEGER_REDEFINED_OP_FLAG)) {
2460
+ BASIC_OP_UNREDEFINED_P(BOP_LE, FIXNUM_REDEFINED_OP_FLAG)) {
2475
2461
  SIGNED_VALUE a = recv, b = obj;
2476
2462
 
2477
2463
  if (a <= b) {
@@ -2493,7 +2479,7 @@ INSN_ENTRY(opt_le){
2493
2479
  CALL_SIMPLE_METHOD(recv);
2494
2480
  }
2495
2481
 
2496
- #line 2497 "vm.inc"
2482
+ #line 2483 "vm.inc"
2497
2483
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2498
2484
  PUSH(val);
2499
2485
  #undef CURRENT_INSN_opt_le
@@ -2520,9 +2506,9 @@ INSN_ENTRY(opt_gt){
2520
2506
  COLLECT_USAGE_OPERAND(BIN(opt_gt), 0, ci);
2521
2507
  COLLECT_USAGE_OPERAND(BIN(opt_gt), 1, cc);
2522
2508
  {
2523
- #line 1722 "insns.def"
2509
+ #line 1734 "insns.def"
2524
2510
  if (FIXNUM_2_P(recv, obj) &&
2525
- BASIC_OP_UNREDEFINED_P(BOP_GT, INTEGER_REDEFINED_OP_FLAG)) {
2511
+ BASIC_OP_UNREDEFINED_P(BOP_GT, FIXNUM_REDEFINED_OP_FLAG)) {
2526
2512
  SIGNED_VALUE a = recv, b = obj;
2527
2513
 
2528
2514
  if (a > b) {
@@ -2553,7 +2539,7 @@ INSN_ENTRY(opt_gt){
2553
2539
  CALL_SIMPLE_METHOD(recv);
2554
2540
  }
2555
2541
 
2556
- #line 2557 "vm.inc"
2542
+ #line 2543 "vm.inc"
2557
2543
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2558
2544
  PUSH(val);
2559
2545
  #undef CURRENT_INSN_opt_gt
@@ -2580,9 +2566,9 @@ INSN_ENTRY(opt_ge){
2580
2566
  COLLECT_USAGE_OPERAND(BIN(opt_ge), 0, ci);
2581
2567
  COLLECT_USAGE_OPERAND(BIN(opt_ge), 1, cc);
2582
2568
  {
2583
- #line 1766 "insns.def"
2569
+ #line 1778 "insns.def"
2584
2570
  if (FIXNUM_2_P(recv, obj) &&
2585
- BASIC_OP_UNREDEFINED_P(BOP_GE, INTEGER_REDEFINED_OP_FLAG)) {
2571
+ BASIC_OP_UNREDEFINED_P(BOP_GE, FIXNUM_REDEFINED_OP_FLAG)) {
2586
2572
  SIGNED_VALUE a = recv, b = obj;
2587
2573
 
2588
2574
  if (a >= b) {
@@ -2603,7 +2589,7 @@ INSN_ENTRY(opt_ge){
2603
2589
  CALL_SIMPLE_METHOD(recv);
2604
2590
  }
2605
2591
 
2606
- #line 2607 "vm.inc"
2592
+ #line 2593 "vm.inc"
2607
2593
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2608
2594
  PUSH(val);
2609
2595
  #undef CURRENT_INSN_opt_ge
@@ -2630,7 +2616,7 @@ INSN_ENTRY(opt_ltlt){
2630
2616
  COLLECT_USAGE_OPERAND(BIN(opt_ltlt), 0, ci);
2631
2617
  COLLECT_USAGE_OPERAND(BIN(opt_ltlt), 1, cc);
2632
2618
  {
2633
- #line 1800 "insns.def"
2619
+ #line 1812 "insns.def"
2634
2620
  if (!SPECIAL_CONST_P(recv)) {
2635
2621
  if (RBASIC_CLASS(recv) == rb_cString &&
2636
2622
  BASIC_OP_UNREDEFINED_P(BOP_LTLT, STRING_REDEFINED_OP_FLAG)) {
@@ -2651,7 +2637,7 @@ INSN_ENTRY(opt_ltlt){
2651
2637
  CALL_SIMPLE_METHOD(recv);
2652
2638
  }
2653
2639
 
2654
- #line 2655 "vm.inc"
2640
+ #line 2641 "vm.inc"
2655
2641
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2656
2642
  PUSH(val);
2657
2643
  #undef CURRENT_INSN_opt_ltlt
@@ -2678,7 +2664,7 @@ INSN_ENTRY(opt_aref){
2678
2664
  COLLECT_USAGE_OPERAND(BIN(opt_aref), 0, ci);
2679
2665
  COLLECT_USAGE_OPERAND(BIN(opt_aref), 1, cc);
2680
2666
  {
2681
- #line 1832 "insns.def"
2667
+ #line 1844 "insns.def"
2682
2668
  if (!SPECIAL_CONST_P(recv)) {
2683
2669
  if (RBASIC_CLASS(recv) == rb_cArray && BASIC_OP_UNREDEFINED_P(BOP_AREF, ARRAY_REDEFINED_OP_FLAG) && FIXNUM_P(obj)) {
2684
2670
  val = rb_ary_entry(recv, FIX2LONG(obj));
@@ -2697,7 +2683,7 @@ INSN_ENTRY(opt_aref){
2697
2683
  CALL_SIMPLE_METHOD(recv);
2698
2684
  }
2699
2685
 
2700
- #line 2701 "vm.inc"
2686
+ #line 2687 "vm.inc"
2701
2687
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2702
2688
  PUSH(val);
2703
2689
  #undef CURRENT_INSN_opt_aref
@@ -2725,7 +2711,7 @@ INSN_ENTRY(opt_aset){
2725
2711
  COLLECT_USAGE_OPERAND(BIN(opt_aset), 0, ci);
2726
2712
  COLLECT_USAGE_OPERAND(BIN(opt_aset), 1, cc);
2727
2713
  {
2728
- #line 1862 "insns.def"
2714
+ #line 1874 "insns.def"
2729
2715
  if (!SPECIAL_CONST_P(recv)) {
2730
2716
  if (RBASIC_CLASS(recv) == rb_cArray && BASIC_OP_UNREDEFINED_P(BOP_ASET, ARRAY_REDEFINED_OP_FLAG) && FIXNUM_P(obj)) {
2731
2717
  rb_ary_store(recv, FIX2LONG(obj), set);
@@ -2747,7 +2733,7 @@ INSN_ENTRY(opt_aset){
2747
2733
  CALL_SIMPLE_METHOD(recv);
2748
2734
  }
2749
2735
 
2750
- #line 2751 "vm.inc"
2736
+ #line 2737 "vm.inc"
2751
2737
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2752
2738
  PUSH(val);
2753
2739
  #undef CURRENT_INSN_opt_aset
@@ -2775,8 +2761,10 @@ INSN_ENTRY(opt_aset_with){
2775
2761
  COLLECT_USAGE_OPERAND(BIN(opt_aset_with), 1, cc);
2776
2762
  COLLECT_USAGE_OPERAND(BIN(opt_aset_with), 2, key);
2777
2763
  {
2778
- #line 1895 "insns.def"
2779
- if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && BASIC_OP_UNREDEFINED_P(BOP_ASET, HASH_REDEFINED_OP_FLAG)) {
2764
+ #line 1907 "insns.def"
2765
+ if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash &&
2766
+ BASIC_OP_UNREDEFINED_P(BOP_ASET, HASH_REDEFINED_OP_FLAG) &&
2767
+ rb_hash_compare_by_id_p(recv) == Qfalse) {
2780
2768
  rb_hash_aset(recv, key, val);
2781
2769
  }
2782
2770
  else {
@@ -2786,7 +2774,7 @@ INSN_ENTRY(opt_aset_with){
2786
2774
  CALL_SIMPLE_METHOD(recv);
2787
2775
  }
2788
2776
 
2789
- #line 2790 "vm.inc"
2777
+ #line 2778 "vm.inc"
2790
2778
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2791
2779
  PUSH(val);
2792
2780
  #undef CURRENT_INSN_opt_aset_with
@@ -2814,8 +2802,10 @@ INSN_ENTRY(opt_aref_with){
2814
2802
  COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 1, cc);
2815
2803
  COLLECT_USAGE_OPERAND(BIN(opt_aref_with), 2, key);
2816
2804
  {
2817
- #line 1917 "insns.def"
2818
- if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash && BASIC_OP_UNREDEFINED_P(BOP_AREF, HASH_REDEFINED_OP_FLAG)) {
2805
+ #line 1931 "insns.def"
2806
+ if (!SPECIAL_CONST_P(recv) && RBASIC_CLASS(recv) == rb_cHash &&
2807
+ BASIC_OP_UNREDEFINED_P(BOP_AREF, HASH_REDEFINED_OP_FLAG) &&
2808
+ rb_hash_compare_by_id_p(recv) == Qfalse) {
2819
2809
  val = rb_hash_aref(recv, key);
2820
2810
  }
2821
2811
  else {
@@ -2824,7 +2814,7 @@ INSN_ENTRY(opt_aref_with){
2824
2814
  CALL_SIMPLE_METHOD(recv);
2825
2815
  }
2826
2816
 
2827
- #line 2828 "vm.inc"
2817
+ #line 2818 "vm.inc"
2828
2818
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2829
2819
  PUSH(val);
2830
2820
  #undef CURRENT_INSN_opt_aref_with
@@ -2850,7 +2840,7 @@ INSN_ENTRY(opt_length){
2850
2840
  COLLECT_USAGE_OPERAND(BIN(opt_length), 0, ci);
2851
2841
  COLLECT_USAGE_OPERAND(BIN(opt_length), 1, cc);
2852
2842
  {
2853
- #line 1938 "insns.def"
2843
+ #line 1954 "insns.def"
2854
2844
  if (!SPECIAL_CONST_P(recv)) {
2855
2845
  if (RBASIC_CLASS(recv) == rb_cString &&
2856
2846
  BASIC_OP_UNREDEFINED_P(BOP_LENGTH, STRING_REDEFINED_OP_FLAG)) {
@@ -2874,7 +2864,7 @@ INSN_ENTRY(opt_length){
2874
2864
  CALL_SIMPLE_METHOD(recv);
2875
2865
  }
2876
2866
 
2877
- #line 2878 "vm.inc"
2867
+ #line 2868 "vm.inc"
2878
2868
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2879
2869
  PUSH(val);
2880
2870
  #undef CURRENT_INSN_opt_length
@@ -2900,7 +2890,7 @@ INSN_ENTRY(opt_size){
2900
2890
  COLLECT_USAGE_OPERAND(BIN(opt_size), 0, ci);
2901
2891
  COLLECT_USAGE_OPERAND(BIN(opt_size), 1, cc);
2902
2892
  {
2903
- #line 1973 "insns.def"
2893
+ #line 1989 "insns.def"
2904
2894
  if (!SPECIAL_CONST_P(recv)) {
2905
2895
  if (RBASIC_CLASS(recv) == rb_cString &&
2906
2896
  BASIC_OP_UNREDEFINED_P(BOP_SIZE, STRING_REDEFINED_OP_FLAG)) {
@@ -2924,7 +2914,7 @@ INSN_ENTRY(opt_size){
2924
2914
  CALL_SIMPLE_METHOD(recv);
2925
2915
  }
2926
2916
 
2927
- #line 2928 "vm.inc"
2917
+ #line 2918 "vm.inc"
2928
2918
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2929
2919
  PUSH(val);
2930
2920
  #undef CURRENT_INSN_opt_size
@@ -2950,7 +2940,7 @@ INSN_ENTRY(opt_empty_p){
2950
2940
  COLLECT_USAGE_OPERAND(BIN(opt_empty_p), 0, ci);
2951
2941
  COLLECT_USAGE_OPERAND(BIN(opt_empty_p), 1, cc);
2952
2942
  {
2953
- #line 2008 "insns.def"
2943
+ #line 2024 "insns.def"
2954
2944
  if (!SPECIAL_CONST_P(recv)) {
2955
2945
  if (RBASIC_CLASS(recv) == rb_cString &&
2956
2946
  BASIC_OP_UNREDEFINED_P(BOP_EMPTY_P, STRING_REDEFINED_OP_FLAG)) {
@@ -2977,7 +2967,7 @@ INSN_ENTRY(opt_empty_p){
2977
2967
  CALL_SIMPLE_METHOD(recv);
2978
2968
  }
2979
2969
 
2980
- #line 2981 "vm.inc"
2970
+ #line 2971 "vm.inc"
2981
2971
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
2982
2972
  PUSH(val);
2983
2973
  #undef CURRENT_INSN_opt_empty_p
@@ -3003,10 +2993,10 @@ INSN_ENTRY(opt_succ){
3003
2993
  COLLECT_USAGE_OPERAND(BIN(opt_succ), 0, ci);
3004
2994
  COLLECT_USAGE_OPERAND(BIN(opt_succ), 1, cc);
3005
2995
  {
3006
- #line 2046 "insns.def"
2996
+ #line 2062 "insns.def"
3007
2997
  if (SPECIAL_CONST_P(recv)) {
3008
2998
  if (FIXNUM_P(recv) &&
3009
- BASIC_OP_UNREDEFINED_P(BOP_SUCC, INTEGER_REDEFINED_OP_FLAG)) {
2999
+ BASIC_OP_UNREDEFINED_P(BOP_SUCC, FIXNUM_REDEFINED_OP_FLAG)) {
3010
3000
  const VALUE obj = INT2FIX(1);
3011
3001
  /* fixnum + INT2FIX(1) */
3012
3002
  val = (recv + (obj & (~1)));
@@ -3024,8 +3014,7 @@ INSN_ENTRY(opt_succ){
3024
3014
  BASIC_OP_UNREDEFINED_P(BOP_SUCC, STRING_REDEFINED_OP_FLAG)) {
3025
3015
  val = rb_str_succ(recv);
3026
3016
  }
3027
- else
3028
- {
3017
+ else {
3029
3018
  goto INSN_LABEL(normal_dispatch);
3030
3019
  }
3031
3020
  }
@@ -3035,7 +3024,7 @@ INSN_ENTRY(opt_succ){
3035
3024
  CALL_SIMPLE_METHOD(recv);
3036
3025
  }
3037
3026
 
3038
- #line 3039 "vm.inc"
3027
+ #line 3028 "vm.inc"
3039
3028
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3040
3029
  PUSH(val);
3041
3030
  #undef CURRENT_INSN_opt_succ
@@ -3061,7 +3050,9 @@ INSN_ENTRY(opt_not){
3061
3050
  COLLECT_USAGE_OPERAND(BIN(opt_not), 0, ci);
3062
3051
  COLLECT_USAGE_OPERAND(BIN(opt_not), 1, cc);
3063
3052
  {
3064
- #line 2089 "insns.def"
3053
+ #line 2104 "insns.def"
3054
+ extern VALUE rb_obj_not(VALUE obj);
3055
+
3065
3056
  vm_search_method(ci, cc, recv);
3066
3057
 
3067
3058
  if (check_cfunc(cc->me, rb_obj_not)) {
@@ -3072,7 +3063,7 @@ INSN_ENTRY(opt_not){
3072
3063
  CALL_SIMPLE_METHOD(recv);
3073
3064
  }
3074
3065
 
3075
- #line 3076 "vm.inc"
3066
+ #line 3067 "vm.inc"
3076
3067
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3077
3068
  PUSH(val);
3078
3069
  #undef CURRENT_INSN_opt_not
@@ -3096,7 +3087,7 @@ INSN_ENTRY(opt_regexpmatch1){
3096
3087
  COLLECT_USAGE_INSN(BIN(opt_regexpmatch1));
3097
3088
  COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch1), 0, r);
3098
3089
  {
3099
- #line 2112 "insns.def"
3090
+ #line 2129 "insns.def"
3100
3091
  if (BASIC_OP_UNREDEFINED_P(BOP_MATCH, REGEXP_REDEFINED_OP_FLAG)) {
3101
3092
  val = rb_reg_match(r, obj);
3102
3093
  }
@@ -3104,7 +3095,7 @@ INSN_ENTRY(opt_regexpmatch1){
3104
3095
  val = rb_funcall(r, idEqTilde, 1, obj);
3105
3096
  }
3106
3097
 
3107
- #line 3108 "vm.inc"
3098
+ #line 3099 "vm.inc"
3108
3099
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3109
3100
  PUSH(val);
3110
3101
  #undef CURRENT_INSN_opt_regexpmatch1
@@ -3131,7 +3122,7 @@ INSN_ENTRY(opt_regexpmatch2){
3131
3122
  COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch2), 0, ci);
3132
3123
  COLLECT_USAGE_OPERAND(BIN(opt_regexpmatch2), 1, cc);
3133
3124
  {
3134
- #line 2131 "insns.def"
3125
+ #line 2148 "insns.def"
3135
3126
  if (CLASS_OF(obj2) == rb_cString &&
3136
3127
  BASIC_OP_UNREDEFINED_P(BOP_MATCH, STRING_REDEFINED_OP_FLAG)) {
3137
3128
  val = rb_reg_match(obj1, obj2);
@@ -3142,7 +3133,7 @@ INSN_ENTRY(opt_regexpmatch2){
3142
3133
  CALL_SIMPLE_METHOD(obj2);
3143
3134
  }
3144
3135
 
3145
- #line 3146 "vm.inc"
3136
+ #line 3137 "vm.inc"
3146
3137
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3147
3138
  PUSH(val);
3148
3139
  #undef CURRENT_INSN_opt_regexpmatch2
@@ -3164,7 +3155,7 @@ INSN_ENTRY(opt_call_c_function){
3164
3155
  COLLECT_USAGE_INSN(BIN(opt_call_c_function));
3165
3156
  COLLECT_USAGE_OPERAND(BIN(opt_call_c_function), 0, funcptr);
3166
3157
  {
3167
- #line 2153 "insns.def"
3158
+ #line 2170 "insns.def"
3168
3159
  reg_cfp = (funcptr)(th, reg_cfp);
3169
3160
 
3170
3161
  if (reg_cfp == 0) {
@@ -3176,7 +3167,7 @@ INSN_ENTRY(opt_call_c_function){
3176
3167
  RESTORE_REGS();
3177
3168
  NEXT_INSN();
3178
3169
 
3179
- #line 3180 "vm.inc"
3170
+ #line 3171 "vm.inc"
3180
3171
  #undef CURRENT_INSN_opt_call_c_function
3181
3172
  #undef INSN_IS_SC
3182
3173
  #undef INSN_LABEL
@@ -3196,10 +3187,10 @@ INSN_ENTRY(bitblt){
3196
3187
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
3197
3188
  COLLECT_USAGE_INSN(BIN(bitblt));
3198
3189
  {
3199
- #line 2176 "insns.def"
3190
+ #line 2193 "insns.def"
3200
3191
  ret = rb_str_new2("a bit of bacon, lettuce and tomato");
3201
3192
 
3202
- #line 3203 "vm.inc"
3193
+ #line 3194 "vm.inc"
3203
3194
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3204
3195
  PUSH(ret);
3205
3196
  #undef CURRENT_INSN_bitblt
@@ -3221,10 +3212,10 @@ INSN_ENTRY(answer){
3221
3212
  #define LABEL_IS_SC(lab) LABEL_##lab##_##t
3222
3213
  COLLECT_USAGE_INSN(BIN(answer));
3223
3214
  {
3224
- #line 2190 "insns.def"
3215
+ #line 2207 "insns.def"
3225
3216
  ret = INT2FIX(42);
3226
3217
 
3227
- #line 3228 "vm.inc"
3218
+ #line 3219 "vm.inc"
3228
3219
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3229
3220
  PUSH(ret);
3230
3221
  #undef CURRENT_INSN_answer
@@ -3258,7 +3249,7 @@ INSN_ENTRY(getlocal_OP__WC__0){
3258
3249
  }
3259
3250
  val = *(ep - idx);
3260
3251
 
3261
- #line 3262 "vm.inc"
3252
+ #line 3253 "vm.inc"
3262
3253
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3263
3254
  PUSH(val);
3264
3255
  #undef level
@@ -3293,7 +3284,7 @@ INSN_ENTRY(getlocal_OP__WC__1){
3293
3284
  }
3294
3285
  val = *(ep - idx);
3295
3286
 
3296
- #line 3297 "vm.inc"
3287
+ #line 3288 "vm.inc"
3297
3288
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3298
3289
  PUSH(val);
3299
3290
  #undef level
@@ -3328,7 +3319,7 @@ INSN_ENTRY(setlocal_OP__WC__0){
3328
3319
  }
3329
3320
  *(ep - idx) = val;
3330
3321
 
3331
- #line 3332 "vm.inc"
3322
+ #line 3323 "vm.inc"
3332
3323
  #undef level
3333
3324
  #undef CURRENT_INSN_setlocal_OP__WC__0
3334
3325
  #undef INSN_IS_SC
@@ -3361,7 +3352,7 @@ INSN_ENTRY(setlocal_OP__WC__1){
3361
3352
  }
3362
3353
  *(ep - idx) = val;
3363
3354
 
3364
- #line 3365 "vm.inc"
3355
+ #line 3356 "vm.inc"
3365
3356
  #undef level
3366
3357
  #undef CURRENT_INSN_setlocal_OP__WC__1
3367
3358
  #undef INSN_IS_SC
@@ -3385,7 +3376,7 @@ INSN_ENTRY(putobject_OP_INT2FIX_O_0_C_){
3385
3376
  #line 297 "insns.def"
3386
3377
  /* */
3387
3378
 
3388
- #line 3389 "vm.inc"
3379
+ #line 3380 "vm.inc"
3389
3380
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3390
3381
  PUSH(val);
3391
3382
  #undef val
@@ -3411,7 +3402,7 @@ INSN_ENTRY(putobject_OP_INT2FIX_O_1_C_){
3411
3402
  #line 297 "insns.def"
3412
3403
  /* */
3413
3404
 
3414
- #line 3415 "vm.inc"
3405
+ #line 3406 "vm.inc"
3415
3406
  CHECK_VM_STACK_OVERFLOW_FOR_INSN(REG_CFP, 1);
3416
3407
  PUSH(val);
3417
3408
  #undef val