debase-ruby_core_source 0.9.9 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
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