debase-ruby_core_source 0.10.5 → 0.10.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +1 -1
  4. data/debase-ruby_core_source.gemspec +3 -2
  5. data/lib/debase/ruby_core_source.rb +1 -1
  6. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/addr2line.h +21 -0
  7. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/build_assert/build_assert.h +40 -0
  8. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/check_type/check_type.h +63 -0
  9. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/container_of/container_of.h +142 -0
  10. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/list/list.h +788 -0
  11. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/str/str.h +16 -0
  12. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/constant.h +51 -0
  13. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/debug_counter.h +283 -0
  14. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/dln.h +51 -0
  15. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/encindex.h +69 -0
  16. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/eval_intern.h +333 -0
  17. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/gc.h +116 -0
  18. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/hrtime.h +168 -0
  19. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/id.h +252 -0
  20. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/id_table.h +31 -0
  21. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/insns.inc +249 -0
  22. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/insns_info.inc +9374 -0
  23. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/internal.h +2470 -0
  24. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/iseq.h +304 -0
  25. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/known_errors.inc +791 -0
  26. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/method.h +229 -0
  27. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/mjit.h +148 -0
  28. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/mjit_compile.inc +4226 -0
  29. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/node.h +449 -0
  30. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/node_name.inc +200 -0
  31. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/opt_sc.inc +109 -0
  32. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/optinsn.inc +128 -0
  33. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/optunifs.inc +43 -0
  34. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/parse.h +207 -0
  35. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/probes_helper.h +42 -0
  36. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regenc.h +254 -0
  37. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regint.h +938 -0
  38. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regparse.h +370 -0
  39. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/revision.h +1 -0
  40. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ruby_assert.h +60 -0
  41. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ruby_atomic.h +244 -0
  42. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/siphash.h +48 -0
  43. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/symbol.h +112 -0
  44. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/thread_pthread.h +75 -0
  45. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/thread_win32.h +36 -0
  46. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/timev.h +53 -0
  47. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/transcode_data.h +139 -0
  48. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/transient_heap.h +60 -0
  49. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/version.h +73 -0
  50. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm.inc +4504 -0
  51. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_call_iseq_optimized.inc +213 -0
  52. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_core.h +1910 -0
  53. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_debug.h +37 -0
  54. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_exec.h +202 -0
  55. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_insnhelper.h +316 -0
  56. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_opts.h +70 -0
  57. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vmtc.inc +243 -0
  58. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/addr2line.h +21 -0
  59. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/builtin.h +78 -0
  60. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/build_assert/build_assert.h +40 -0
  61. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/check_type/check_type.h +63 -0
  62. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/container_of/container_of.h +142 -0
  63. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/list/list.h +788 -0
  64. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ccan/str/str.h +16 -0
  65. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/constant.h +50 -0
  66. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/debug_counter.h +390 -0
  67. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/dln.h +51 -0
  68. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/encindex.h +69 -0
  69. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/eval_intern.h +312 -0
  70. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/gc.h +131 -0
  71. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/hrtime.h +168 -0
  72. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/id.h +290 -0
  73. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/id_table.h +34 -0
  74. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/insns.inc +253 -0
  75. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/insns_info.inc +9197 -0
  76. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/internal.h +2697 -0
  77. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/iseq.h +312 -0
  78. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/known_errors.inc +791 -0
  79. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/method.h +229 -0
  80. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/mjit.h +177 -0
  81. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/mjit_compile.inc +7779 -0
  82. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/node.h +476 -0
  83. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/node_name.inc +208 -0
  84. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/opt_sc.inc +109 -0
  85. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/optinsn.inc +128 -0
  86. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/optunifs.inc +43 -0
  87. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/parse.h +210 -0
  88. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/probes_helper.h +42 -0
  89. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regenc.h +254 -0
  90. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regint.h +938 -0
  91. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/regparse.h +370 -0
  92. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/revision.h +2 -0
  93. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ruby_assert.h +15 -0
  94. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/ruby_atomic.h +244 -0
  95. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/siphash.h +48 -0
  96. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/symbol.h +119 -0
  97. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/thread_pthread.h +75 -0
  98. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/thread_win32.h +36 -0
  99. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/timev.h +56 -0
  100. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/transcode_data.h +139 -0
  101. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/transient_heap.h +62 -0
  102. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/variable.h +9 -0
  103. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/version.h +77 -0
  104. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm.inc +5466 -0
  105. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_call_iseq_optimized.inc +237 -0
  106. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_core.h +1968 -0
  107. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_debug.h +34 -0
  108. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_exec.h +193 -0
  109. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_insnhelper.h +267 -0
  110. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vm_opts.h +72 -0
  111. data/lib/debase/ruby_core_source/ruby-2.7.0-p0/vmtc.inc +247 -0
  112. data/lib/debase/ruby_core_source/version.rb +1 -1
  113. metadata +128 -8
@@ -0,0 +1,109 @@
1
+ /* -*- mode:c; style:ruby; coding: utf-8; indent-tabs-mode: nil -*- */
2
+
3
+ /* This is an auto-generated file and is a part of the programming language
4
+ * Ruby. The person who created a program to generate this file (``I''
5
+ * hereafter) would like to refrain from defining licensing of this generated
6
+ * source code.
7
+ *
8
+ * This file consist of many small parts of codes copyrighted by each authors,
9
+ * not only the ``I'' person. Those original authors agree with some
10
+ * open-source license. I believe that the license we agree is the condition
11
+ * mentioned in the file COPYING. It states "4. You may modify and include
12
+ * the part of the software into any other software ...". But the problem is,
13
+ * the license never makes it clear if such modified parts still remain in the
14
+ * same license, or not. The fact that we agree with the source code's
15
+ * licensing terms do not automatically define that of generated ones. This is
16
+ * the reason why this file is under unclear situation. All that I know is
17
+ * that above provision guarantees this file to exist.
18
+ *
19
+ * Please let me hesitate to declare something about this nuanced contract. I
20
+ * am not in the position to take over other authors' license to merge into my
21
+ * one. Changing them to (say) GPLv3 is not doable by myself. Perhaps someday
22
+ * it might turn out to be okay to say this file is under a license. I wish the
23
+ * situation would become more clear in the future. */
24
+
25
+ /*******************************************************************/
26
+ /*******************************************************************/
27
+ /*******************************************************************/
28
+ /**
29
+ This file is for threaded code.
30
+
31
+ ----
32
+ This file is auto generated by insns2vm.rb
33
+ DO NOT TOUCH!
34
+
35
+ If you want to fix something, you must edit "tool/ruby_vm/views/opt_sc.inc.erb"
36
+ or tool/insns2vm.rb
37
+ */
38
+
39
+ #define SC_STATE_SIZE 6
40
+
41
+ #define SCS_XX 1
42
+ #define SCS_AX 2
43
+ #define SCS_BX 3
44
+ #define SCS_AB 4
45
+ #define SCS_BA 5
46
+
47
+ #define SC_ERROR 0xffffffff
48
+
49
+ static const VALUE sc_insn_info[][SC_STATE_SIZE] = {
50
+ #define NO_SC { SC_ERROR, SC_ERROR, SC_ERROR, SC_ERROR, SC_ERROR, SC_ERROR }
51
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
52
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
53
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
54
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
55
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
56
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
57
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
58
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
59
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
60
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
61
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
62
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
63
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
64
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
65
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
66
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
67
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
68
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
69
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
70
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
71
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
72
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
73
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
74
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
75
+ NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC, NO_SC,
76
+ NO_SC, NO_SC,
77
+ #undef NO_SC
78
+ };
79
+
80
+ static const VALUE sc_insn_next[] = {
81
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
82
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
83
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
84
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
85
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
86
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
87
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
88
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
89
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
90
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
91
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
92
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
93
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
94
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
95
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
96
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
97
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
98
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
99
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
100
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
101
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
102
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
103
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
104
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
105
+ SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX, SCS_XX,
106
+ SCS_XX, SCS_XX,
107
+ };
108
+
109
+ ASSERT_VM_INSTRUCTION_SIZE(sc_insn_next);
@@ -0,0 +1,128 @@
1
+ /* -*- mode:c; style:ruby; coding: utf-8; indent-tabs-mode: nil -*- */
2
+
3
+ /* This is an auto-generated file and is a part of the programming language
4
+ * Ruby. The person who created a program to generate this file (``I''
5
+ * hereafter) would like to refrain from defining licensing of this generated
6
+ * source code.
7
+ *
8
+ * This file consist of many small parts of codes copyrighted by each authors,
9
+ * not only the ``I'' person. Those original authors agree with some
10
+ * open-source license. I believe that the license we agree is the condition
11
+ * mentioned in the file COPYING. It states "4. You may modify and include
12
+ * the part of the software into any other software ...". But the problem is,
13
+ * the license never makes it clear if such modified parts still remain in the
14
+ * same license, or not. The fact that we agree with the source code's
15
+ * licensing terms do not automatically define that of generated ones. This is
16
+ * the reason why this file is under unclear situation. All that I know is
17
+ * that above provision guarantees this file to exist.
18
+ *
19
+ * Please let me hesitate to declare something about this nuanced contract. I
20
+ * am not in the position to take over other authors' license to merge into my
21
+ * one. Changing them to (say) GPLv3 is not doable by myself. Perhaps someday
22
+ * it might turn out to be okay to say this file is under a license. I wish the
23
+ * situation would become more clear in the future. */
24
+ /*******************************************************************/
25
+ /*******************************************************************/
26
+ /*******************************************************************/
27
+ /**
28
+ This file is for threaded code.
29
+
30
+ ----
31
+ This file is auto generated by insns2vm.rb
32
+ DO NOT TOUCH!
33
+
34
+ If you want to fix something, you must edit "tool/ruby_vm/views/optinsn.inc.erb"
35
+ or tool/insns2vm.rb
36
+ */
37
+
38
+ static INSN *
39
+ insn_operands_unification(INSN *iobj)
40
+ {
41
+ #ifdef OPT_OPERANDS_UNIFICATION
42
+ VALUE *op = iobj->operands;
43
+
44
+ switch (iobj->insn_id) {
45
+ default:
46
+ /* do nothing */;
47
+ break;
48
+
49
+ case BIN(getlocal):
50
+
51
+ /* getlocal_WC_0(idx)()(val) */
52
+ if ( op[1] == LONG2NUM(0) ) {
53
+ iobj->insn_id = BIN(getlocal_WC_0);
54
+ iobj->operand_size = 1;
55
+ break;
56
+ }
57
+
58
+ /* getlocal_WC_1(idx)()(val) */
59
+ if ( op[1] == LONG2NUM(1) ) {
60
+ iobj->insn_id = BIN(getlocal_WC_1);
61
+ iobj->operand_size = 1;
62
+ break;
63
+ }
64
+
65
+ break;
66
+ case BIN(setlocal):
67
+
68
+ /* setlocal_WC_0(idx)(val)() */
69
+ if ( op[1] == LONG2NUM(0) ) {
70
+ iobj->insn_id = BIN(setlocal_WC_0);
71
+ iobj->operand_size = 1;
72
+ break;
73
+ }
74
+
75
+ /* setlocal_WC_1(idx)(val)() */
76
+ if ( op[1] == LONG2NUM(1) ) {
77
+ iobj->insn_id = BIN(setlocal_WC_1);
78
+ iobj->operand_size = 1;
79
+ break;
80
+ }
81
+
82
+ break;
83
+ case BIN(putobject):
84
+
85
+ /* putobject_INT2FIX_0_()()(val) */
86
+ if ( op[0] == INT2FIX(0) ) {
87
+ iobj->insn_id = BIN(putobject_INT2FIX_0_);
88
+ iobj->operand_size = 0;
89
+ break;
90
+ }
91
+
92
+ /* putobject_INT2FIX_1_()()(val) */
93
+ if ( op[0] == INT2FIX(1) ) {
94
+ iobj->insn_id = BIN(putobject_INT2FIX_1_);
95
+ iobj->operand_size = 0;
96
+ break;
97
+ }
98
+
99
+ break;
100
+ }
101
+ #endif
102
+ return iobj;
103
+ }
104
+
105
+ int
106
+ rb_insn_unified_local_var_level(VALUE insn)
107
+ {
108
+ #ifdef OPT_OPERANDS_UNIFICATION
109
+ /* optimize rule */
110
+ switch (insn) {
111
+ default:
112
+ return -1; /* do nothing */;
113
+ case BIN(getlocal_WC_0):
114
+ return 0;
115
+ case BIN(getlocal_WC_1):
116
+ return 1;
117
+ case BIN(setlocal_WC_0):
118
+ return 0;
119
+ case BIN(setlocal_WC_1):
120
+ return 1;
121
+ case BIN(putobject_INT2FIX_0_):
122
+ return INT2FIX(0);
123
+ case BIN(putobject_INT2FIX_1_):
124
+ return INT2FIX(1);
125
+ }
126
+ #endif
127
+ return -1;
128
+ }
@@ -0,0 +1,43 @@
1
+ /* -*- mode:c; style:ruby; coding: utf-8; indent-tabs-mode: nil -*- */
2
+
3
+ /* This is an auto-generated file and is a part of the programming language
4
+ * Ruby. The person who created a program to generate this file (``I''
5
+ * hereafter) would like to refrain from defining licensing of this generated
6
+ * source code.
7
+ *
8
+ * This file consist of many small parts of codes copyrighted by each authors,
9
+ * not only the ``I'' person. Those original authors agree with some
10
+ * open-source license. I believe that the license we agree is the condition
11
+ * mentioned in the file COPYING. It states "4. You may modify and include
12
+ * the part of the software into any other software ...". But the problem is,
13
+ * the license never makes it clear if such modified parts still remain in the
14
+ * same license, or not. The fact that we agree with the source code's
15
+ * licensing terms do not automatically define that of generated ones. This is
16
+ * the reason why this file is under unclear situation. All that I know is
17
+ * that above provision guarantees this file to exist.
18
+ *
19
+ * Please let me hesitate to declare something about this nuanced contract. I
20
+ * am not in the position to take over other authors' license to merge into my
21
+ * one. Changing them to (say) GPLv3 is not doable by myself. Perhaps someday
22
+ * it might turn out to be okay to say this file is under a license. I wish the
23
+ * situation would become more clear in the future. */
24
+
25
+ /*******************************************************************/
26
+ /*******************************************************************/
27
+ /*******************************************************************/
28
+ /**
29
+ This file is for threaded code.
30
+
31
+ ----
32
+ This file is auto generated by insns2vm.rb
33
+ DO NOT TOUCH!
34
+
35
+ If you want to fix something, you must edit "tool/ruby_vm/views/optunifs.inc.erb"
36
+ or tool/insns2vm.rb
37
+ */
38
+
39
+ /* Let .bss section automatically initialize this variable */
40
+ /* cf. Section 6.7.8 of ISO/IEC 9899:1999 */
41
+ static const int *const *const unified_insns_data[202];
42
+
43
+ ASSERT_VM_INSTRUCTION_SIZE(unified_insns_data);
@@ -0,0 +1,207 @@
1
+ /* A Bison parser, made by GNU Bison 3.0.4. */
2
+
3
+ /* Bison interface for Yacc-like parsers in C
4
+
5
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
+
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
+
20
+ /* As a special exception, you may create a larger work that contains
21
+ part or all of the Bison parser skeleton and distribute that work
22
+ under terms of your choice, so long as that work isn't itself a
23
+ parser generator using the skeleton or a modified version thereof
24
+ as a parser skeleton. Alternatively, if you modify or redistribute
25
+ the parser skeleton itself, you may (at your option) remove this
26
+ special exception, which will cause the skeleton and the resulting
27
+ Bison output files to be licensed under the GNU General Public
28
+ License without this special exception.
29
+
30
+ This special exception was added by the Free Software Foundation in
31
+ version 2.2 of Bison. */
32
+
33
+ #ifndef YY_YY_Y_TAB_H_INCLUDED
34
+ # define YY_YY_Y_TAB_H_INCLUDED
35
+ /* Debug traces. */
36
+ #ifndef YYDEBUG
37
+ # define YYDEBUG 0
38
+ #endif
39
+ #if YYDEBUG
40
+ extern int yydebug;
41
+ #endif
42
+
43
+ /* Token type. */
44
+ #ifndef YYTOKENTYPE
45
+ # define YYTOKENTYPE
46
+ enum yytokentype
47
+ {
48
+ END_OF_INPUT = 0,
49
+ keyword_class = 258,
50
+ keyword_module = 259,
51
+ keyword_def = 260,
52
+ keyword_undef = 261,
53
+ keyword_begin = 262,
54
+ keyword_rescue = 263,
55
+ keyword_ensure = 264,
56
+ keyword_end = 265,
57
+ keyword_if = 266,
58
+ keyword_unless = 267,
59
+ keyword_then = 268,
60
+ keyword_elsif = 269,
61
+ keyword_else = 270,
62
+ keyword_case = 271,
63
+ keyword_when = 272,
64
+ keyword_while = 273,
65
+ keyword_until = 274,
66
+ keyword_for = 275,
67
+ keyword_break = 276,
68
+ keyword_next = 277,
69
+ keyword_redo = 278,
70
+ keyword_retry = 279,
71
+ keyword_in = 280,
72
+ keyword_do = 281,
73
+ keyword_do_cond = 282,
74
+ keyword_do_block = 283,
75
+ keyword_do_LAMBDA = 284,
76
+ keyword_return = 285,
77
+ keyword_yield = 286,
78
+ keyword_super = 287,
79
+ keyword_self = 288,
80
+ keyword_nil = 289,
81
+ keyword_true = 290,
82
+ keyword_false = 291,
83
+ keyword_and = 292,
84
+ keyword_or = 293,
85
+ keyword_not = 294,
86
+ modifier_if = 295,
87
+ modifier_unless = 296,
88
+ modifier_while = 297,
89
+ modifier_until = 298,
90
+ modifier_rescue = 299,
91
+ keyword_alias = 300,
92
+ keyword_defined = 301,
93
+ keyword_BEGIN = 302,
94
+ keyword_END = 303,
95
+ keyword__LINE__ = 304,
96
+ keyword__FILE__ = 305,
97
+ keyword__ENCODING__ = 306,
98
+ tIDENTIFIER = 307,
99
+ tFID = 308,
100
+ tGVAR = 309,
101
+ tIVAR = 310,
102
+ tCONSTANT = 311,
103
+ tCVAR = 312,
104
+ tLABEL = 313,
105
+ tINTEGER = 314,
106
+ tFLOAT = 315,
107
+ tRATIONAL = 316,
108
+ tIMAGINARY = 317,
109
+ tSTRING_CONTENT = 318,
110
+ tCHAR = 319,
111
+ tNTH_REF = 320,
112
+ tBACK_REF = 321,
113
+ tREGEXP_END = 322,
114
+ tSP = 323,
115
+ tUPLUS = 130,
116
+ tUMINUS = 131,
117
+ tPOW = 132,
118
+ tCMP = 133,
119
+ tEQ = 138,
120
+ tEQQ = 139,
121
+ tNEQ = 140,
122
+ tGEQ = 137,
123
+ tLEQ = 136,
124
+ tANDOP = 146,
125
+ tOROP = 147,
126
+ tMATCH = 141,
127
+ tNMATCH = 142,
128
+ tDOT2 = 128,
129
+ tDOT3 = 129,
130
+ tAREF = 143,
131
+ tASET = 144,
132
+ tLSHFT = 134,
133
+ tRSHFT = 135,
134
+ tANDDOT = 148,
135
+ tCOLON2 = 145,
136
+ tCOLON3 = 324,
137
+ tOP_ASGN = 325,
138
+ tASSOC = 326,
139
+ tLPAREN = 327,
140
+ tLPAREN_ARG = 328,
141
+ tRPAREN = 329,
142
+ tLBRACK = 330,
143
+ tLBRACE = 331,
144
+ tLBRACE_ARG = 332,
145
+ tSTAR = 333,
146
+ tDSTAR = 334,
147
+ tAMPER = 335,
148
+ tLAMBDA = 336,
149
+ tSYMBEG = 337,
150
+ tSTRING_BEG = 338,
151
+ tXSTRING_BEG = 339,
152
+ tREGEXP_BEG = 340,
153
+ tWORDS_BEG = 341,
154
+ tQWORDS_BEG = 342,
155
+ tSYMBOLS_BEG = 343,
156
+ tQSYMBOLS_BEG = 344,
157
+ tSTRING_DBEG = 345,
158
+ tSTRING_DEND = 346,
159
+ tSTRING_DVAR = 347,
160
+ tSTRING_END = 348,
161
+ tLAMBEG = 349,
162
+ tLABEL_END = 350,
163
+ tLOWEST = 351,
164
+ tUMINUS_NUM = 352,
165
+ tLAST_TOKEN = 353
166
+ };
167
+ #endif
168
+
169
+ /* Value type. */
170
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
171
+
172
+ union YYSTYPE
173
+ {
174
+
175
+ VALUE val;
176
+ NODE *node;
177
+ ID id;
178
+ int num;
179
+ const struct vtable *vars;
180
+ struct rb_strterm_struct *strterm;
181
+
182
+ };
183
+
184
+ typedef union YYSTYPE YYSTYPE;
185
+ # define YYSTYPE_IS_TRIVIAL 1
186
+ # define YYSTYPE_IS_DECLARED 1
187
+ #endif
188
+
189
+ /* Location type. */
190
+ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
191
+ typedef struct YYLTYPE YYLTYPE;
192
+ struct YYLTYPE
193
+ {
194
+ int first_line;
195
+ int first_column;
196
+ int last_line;
197
+ int last_column;
198
+ };
199
+ # define YYLTYPE_IS_DECLARED 1
200
+ # define YYLTYPE_IS_TRIVIAL 1
201
+ #endif
202
+
203
+
204
+
205
+ int yyparse (struct parser_params *p);
206
+
207
+ #endif /* !YY_YY_Y_TAB_H_INCLUDED */