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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/debase/ruby_core_source.rb +2 -1
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/addr2line.h +21 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/build_assert/build_assert.h +40 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/check_type/check_type.h +63 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/container_of/container_of.h +142 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/list/list.h +788 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ccan/str/str.h +16 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/constant.h +54 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/debug_counter.h +378 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/dln.h +51 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/encindex.h +69 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/eval_intern.h +314 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/gc.h +129 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/hrtime.h +168 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/id.h +292 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/id_table.h +34 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/insns.inc +249 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/insns_info.inc +9614 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/internal.h +2682 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/iseq.h +312 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/known_errors.inc +791 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/method.h +232 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/mjit.h +179 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/mjit_compile.inc +7883 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/node.h +483 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/node_name.inc +210 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/opt_sc.inc +109 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/optinsn.inc +128 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/optunifs.inc +43 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/parse.h +210 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/probes_helper.h +42 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/regenc.h +254 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/regint.h +938 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/regparse.h +370 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/revision.h +2 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_assert.h +15 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/ruby_atomic.h +244 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/siphash.h +48 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/symbol.h +119 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/thread_pthread.h +75 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/thread_win32.h +36 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/timev.h +56 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/transcode_data.h +139 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/transient_heap.h +62 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/version.h +77 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm.inc +5269 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_call_iseq_optimized.inc +237 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_core.h +1955 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_debug.h +34 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_exec.h +193 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_insnhelper.h +255 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vm_opts.h +70 -0
- data/lib/debase/ruby_core_source/ruby-2.7.0-preview2/vmtc.inc +243 -0
- data/lib/debase/ruby_core_source/version.rb +1 -1
- 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);
|