debase-ruby_core_source 0.10.6 → 0.10.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/debase/ruby_core_source.rb +2 -1
  4. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/addr2line.h +21 -0
  5. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/build_assert/build_assert.h +40 -0
  6. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/check_type/check_type.h +63 -0
  7. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/container_of/container_of.h +142 -0
  8. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/list/list.h +788 -0
  9. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/str/str.h +16 -0
  10. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/constant.h +54 -0
  11. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/debug_counter.h +378 -0
  12. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/dln.h +51 -0
  13. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/encindex.h +69 -0
  14. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/eval_intern.h +314 -0
  15. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/gc.h +129 -0
  16. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/hrtime.h +168 -0
  17. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/id.h +292 -0
  18. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/id_table.h +34 -0
  19. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/insns.inc +249 -0
  20. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/insns_info.inc +9614 -0
  21. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/internal.h +2682 -0
  22. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/iseq.h +312 -0
  23. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/known_errors.inc +791 -0
  24. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/method.h +232 -0
  25. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/mjit.h +179 -0
  26. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/mjit_compile.inc +7883 -0
  27. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/node.h +483 -0
  28. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/node_name.inc +210 -0
  29. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/opt_sc.inc +109 -0
  30. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/optinsn.inc +128 -0
  31. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/optunifs.inc +43 -0
  32. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/parse.h +210 -0
  33. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/probes_helper.h +42 -0
  34. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/regenc.h +254 -0
  35. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/regint.h +938 -0
  36. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/regparse.h +370 -0
  37. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/revision.h +2 -0
  38. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_assert.h +15 -0
  39. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_atomic.h +244 -0
  40. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/siphash.h +48 -0
  41. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/symbol.h +119 -0
  42. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/thread_pthread.h +75 -0
  43. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/thread_win32.h +36 -0
  44. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/timev.h +56 -0
  45. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/transcode_data.h +139 -0
  46. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/transient_heap.h +62 -0
  47. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/version.h +77 -0
  48. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm.inc +5269 -0
  49. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_call_iseq_optimized.inc +237 -0
  50. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_core.h +1955 -0
  51. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_debug.h +34 -0
  52. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_exec.h +193 -0
  53. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_insnhelper.h +255 -0
  54. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_opts.h +70 -0
  55. data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vmtc.inc +243 -0
  56. data/lib/debase/ruby_core_source/version.rb +1 -1
  57. metadata +55 -3
@@ -0,0 +1,210 @@
1
+ case NODE_SCOPE:
2
+ return "NODE_SCOPE";
3
+ case NODE_BLOCK:
4
+ return "NODE_BLOCK";
5
+ case NODE_IF:
6
+ return "NODE_IF";
7
+ case NODE_UNLESS:
8
+ return "NODE_UNLESS";
9
+ case NODE_CASE:
10
+ return "NODE_CASE";
11
+ case NODE_CASE2:
12
+ return "NODE_CASE2";
13
+ case NODE_CASE3:
14
+ return "NODE_CASE3";
15
+ case NODE_WHEN:
16
+ return "NODE_WHEN";
17
+ case NODE_IN:
18
+ return "NODE_IN";
19
+ case NODE_WHILE:
20
+ return "NODE_WHILE";
21
+ case NODE_UNTIL:
22
+ return "NODE_UNTIL";
23
+ case NODE_ITER:
24
+ return "NODE_ITER";
25
+ case NODE_FOR:
26
+ return "NODE_FOR";
27
+ case NODE_FOR_MASGN:
28
+ return "NODE_FOR_MASGN";
29
+ case NODE_BREAK:
30
+ return "NODE_BREAK";
31
+ case NODE_NEXT:
32
+ return "NODE_NEXT";
33
+ case NODE_REDO:
34
+ return "NODE_REDO";
35
+ case NODE_RETRY:
36
+ return "NODE_RETRY";
37
+ case NODE_BEGIN:
38
+ return "NODE_BEGIN";
39
+ case NODE_RESCUE:
40
+ return "NODE_RESCUE";
41
+ case NODE_RESBODY:
42
+ return "NODE_RESBODY";
43
+ case NODE_ENSURE:
44
+ return "NODE_ENSURE";
45
+ case NODE_AND:
46
+ return "NODE_AND";
47
+ case NODE_OR:
48
+ return "NODE_OR";
49
+ case NODE_MASGN:
50
+ return "NODE_MASGN";
51
+ case NODE_LASGN:
52
+ return "NODE_LASGN";
53
+ case NODE_DASGN:
54
+ return "NODE_DASGN";
55
+ case NODE_DASGN_CURR:
56
+ return "NODE_DASGN_CURR";
57
+ case NODE_GASGN:
58
+ return "NODE_GASGN";
59
+ case NODE_IASGN:
60
+ return "NODE_IASGN";
61
+ case NODE_CDECL:
62
+ return "NODE_CDECL";
63
+ case NODE_CVASGN:
64
+ return "NODE_CVASGN";
65
+ case NODE_OP_ASGN1:
66
+ return "NODE_OP_ASGN1";
67
+ case NODE_OP_ASGN2:
68
+ return "NODE_OP_ASGN2";
69
+ case NODE_OP_ASGN_AND:
70
+ return "NODE_OP_ASGN_AND";
71
+ case NODE_OP_ASGN_OR:
72
+ return "NODE_OP_ASGN_OR";
73
+ case NODE_OP_CDECL:
74
+ return "NODE_OP_CDECL";
75
+ case NODE_CALL:
76
+ return "NODE_CALL";
77
+ case NODE_OPCALL:
78
+ return "NODE_OPCALL";
79
+ case NODE_FCALL:
80
+ return "NODE_FCALL";
81
+ case NODE_VCALL:
82
+ return "NODE_VCALL";
83
+ case NODE_QCALL:
84
+ return "NODE_QCALL";
85
+ case NODE_SUPER:
86
+ return "NODE_SUPER";
87
+ case NODE_ZSUPER:
88
+ return "NODE_ZSUPER";
89
+ case NODE_LIST:
90
+ return "NODE_LIST";
91
+ case NODE_ZLIST:
92
+ return "NODE_ZLIST";
93
+ case NODE_VALUES:
94
+ return "NODE_VALUES";
95
+ case NODE_HASH:
96
+ return "NODE_HASH";
97
+ case NODE_RETURN:
98
+ return "NODE_RETURN";
99
+ case NODE_YIELD:
100
+ return "NODE_YIELD";
101
+ case NODE_LVAR:
102
+ return "NODE_LVAR";
103
+ case NODE_DVAR:
104
+ return "NODE_DVAR";
105
+ case NODE_GVAR:
106
+ return "NODE_GVAR";
107
+ case NODE_IVAR:
108
+ return "NODE_IVAR";
109
+ case NODE_CONST:
110
+ return "NODE_CONST";
111
+ case NODE_CVAR:
112
+ return "NODE_CVAR";
113
+ case NODE_NTH_REF:
114
+ return "NODE_NTH_REF";
115
+ case NODE_BACK_REF:
116
+ return "NODE_BACK_REF";
117
+ case NODE_MATCH:
118
+ return "NODE_MATCH";
119
+ case NODE_MATCH2:
120
+ return "NODE_MATCH2";
121
+ case NODE_MATCH3:
122
+ return "NODE_MATCH3";
123
+ case NODE_LIT:
124
+ return "NODE_LIT";
125
+ case NODE_STR:
126
+ return "NODE_STR";
127
+ case NODE_DSTR:
128
+ return "NODE_DSTR";
129
+ case NODE_XSTR:
130
+ return "NODE_XSTR";
131
+ case NODE_DXSTR:
132
+ return "NODE_DXSTR";
133
+ case NODE_EVSTR:
134
+ return "NODE_EVSTR";
135
+ case NODE_DREGX:
136
+ return "NODE_DREGX";
137
+ case NODE_ONCE:
138
+ return "NODE_ONCE";
139
+ case NODE_ARGS:
140
+ return "NODE_ARGS";
141
+ case NODE_ARGS_AUX:
142
+ return "NODE_ARGS_AUX";
143
+ case NODE_OPT_ARG:
144
+ return "NODE_OPT_ARG";
145
+ case NODE_KW_ARG:
146
+ return "NODE_KW_ARG";
147
+ case NODE_POSTARG:
148
+ return "NODE_POSTARG";
149
+ case NODE_ARGSCAT:
150
+ return "NODE_ARGSCAT";
151
+ case NODE_ARGSPUSH:
152
+ return "NODE_ARGSPUSH";
153
+ case NODE_SPLAT:
154
+ return "NODE_SPLAT";
155
+ case NODE_BLOCK_PASS:
156
+ return "NODE_BLOCK_PASS";
157
+ case NODE_DEFN:
158
+ return "NODE_DEFN";
159
+ case NODE_DEFS:
160
+ return "NODE_DEFS";
161
+ case NODE_ALIAS:
162
+ return "NODE_ALIAS";
163
+ case NODE_VALIAS:
164
+ return "NODE_VALIAS";
165
+ case NODE_UNDEF:
166
+ return "NODE_UNDEF";
167
+ case NODE_CLASS:
168
+ return "NODE_CLASS";
169
+ case NODE_MODULE:
170
+ return "NODE_MODULE";
171
+ case NODE_SCLASS:
172
+ return "NODE_SCLASS";
173
+ case NODE_COLON2:
174
+ return "NODE_COLON2";
175
+ case NODE_COLON3:
176
+ return "NODE_COLON3";
177
+ case NODE_DOT2:
178
+ return "NODE_DOT2";
179
+ case NODE_DOT3:
180
+ return "NODE_DOT3";
181
+ case NODE_FLIP2:
182
+ return "NODE_FLIP2";
183
+ case NODE_FLIP3:
184
+ return "NODE_FLIP3";
185
+ case NODE_SELF:
186
+ return "NODE_SELF";
187
+ case NODE_NIL:
188
+ return "NODE_NIL";
189
+ case NODE_TRUE:
190
+ return "NODE_TRUE";
191
+ case NODE_FALSE:
192
+ return "NODE_FALSE";
193
+ case NODE_ERRINFO:
194
+ return "NODE_ERRINFO";
195
+ case NODE_DEFINED:
196
+ return "NODE_DEFINED";
197
+ case NODE_POSTEXE:
198
+ return "NODE_POSTEXE";
199
+ case NODE_DSYM:
200
+ return "NODE_DSYM";
201
+ case NODE_ATTRASGN:
202
+ return "NODE_ATTRASGN";
203
+ case NODE_LAMBDA:
204
+ return "NODE_LAMBDA";
205
+ case NODE_METHREF:
206
+ return "NODE_METHREF";
207
+ case NODE_ARYPTN:
208
+ return "NODE_ARYPTN";
209
+ case NODE_HSHPTN:
210
+ return "NODE_HSHPTN";
@@ -0,0 +1,109 @@
1
+ /* -*- C -*- */
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 consists of many small parts of codes copyrighted by each author,
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 does not automatically define that of generated ones. This
16
+ * is the reason why this file is under an unclear situation. All what I know
17
+ * is 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
23
+ * the 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
+ /* -*- C -*- */
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 consists of many small parts of codes copyrighted by each author,
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 does not automatically define that of generated ones. This
16
+ * is the reason why this file is under an unclear situation. All what I know
17
+ * is 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
23
+ * the 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
+ /* -*- C -*- */
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 consists of many small parts of codes copyrighted by each author,
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 does not automatically define that of generated ones. This
16
+ * is the reason why this file is under an unclear situation. All what I know
17
+ * is 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
23
+ * the 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);