debase-ruby_core_source 0.10.5 → 0.10.6

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 +1 -1
  4. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/addr2line.h +21 -0
  5. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/build_assert/build_assert.h +40 -0
  6. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/check_type/check_type.h +63 -0
  7. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/container_of/container_of.h +142 -0
  8. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/list/list.h +788 -0
  9. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ccan/str/str.h +16 -0
  10. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/constant.h +51 -0
  11. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/debug_counter.h +283 -0
  12. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/dln.h +51 -0
  13. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/encindex.h +69 -0
  14. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/eval_intern.h +333 -0
  15. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/gc.h +116 -0
  16. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/hrtime.h +168 -0
  17. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/id.h +252 -0
  18. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/id_table.h +31 -0
  19. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/insns.inc +249 -0
  20. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/insns_info.inc +9374 -0
  21. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/internal.h +2470 -0
  22. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/iseq.h +304 -0
  23. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/known_errors.inc +791 -0
  24. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/method.h +229 -0
  25. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/mjit.h +148 -0
  26. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/mjit_compile.inc +4226 -0
  27. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/node.h +449 -0
  28. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/node_name.inc +200 -0
  29. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/opt_sc.inc +109 -0
  30. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/optinsn.inc +128 -0
  31. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/optunifs.inc +43 -0
  32. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/parse.h +207 -0
  33. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/probes_helper.h +42 -0
  34. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regenc.h +254 -0
  35. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regint.h +938 -0
  36. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/regparse.h +370 -0
  37. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/revision.h +1 -0
  38. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ruby_assert.h +60 -0
  39. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/ruby_atomic.h +244 -0
  40. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/siphash.h +48 -0
  41. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/symbol.h +112 -0
  42. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/thread_pthread.h +75 -0
  43. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/thread_win32.h +36 -0
  44. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/timev.h +53 -0
  45. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/transcode_data.h +139 -0
  46. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/transient_heap.h +60 -0
  47. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/version.h +73 -0
  48. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm.inc +4504 -0
  49. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_call_iseq_optimized.inc +213 -0
  50. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_core.h +1910 -0
  51. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_debug.h +37 -0
  52. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_exec.h +202 -0
  53. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_insnhelper.h +316 -0
  54. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vm_opts.h +70 -0
  55. data/lib/debase/ruby_core_source/ruby-2.6.5-p114/vmtc.inc +243 -0
  56. data/lib/debase/ruby_core_source/version.rb +1 -1
  57. metadata +55 -3
@@ -0,0 +1,252 @@
1
+ /* DO NOT EDIT THIS FILE DIRECTLY */
2
+ /**********************************************************************
3
+
4
+ id.h -
5
+
6
+ $Author: nobu $
7
+ created at: Sun Oct 19 21:12:51 2008
8
+
9
+ Copyright (C) 2007 Koichi Sasada
10
+
11
+ **********************************************************************/
12
+
13
+ #ifndef RUBY_ID_H
14
+ #define RUBY_ID_H
15
+
16
+ enum ruby_id_types {
17
+ RUBY_ID_STATIC_SYM = 0x01,
18
+ RUBY_ID_LOCAL = 0x00,
19
+ RUBY_ID_INSTANCE = (0x01<<1),
20
+ RUBY_ID_GLOBAL = (0x03<<1),
21
+ RUBY_ID_ATTRSET = (0x04<<1),
22
+ RUBY_ID_CONST = (0x05<<1),
23
+ RUBY_ID_CLASS = (0x06<<1),
24
+ RUBY_ID_JUNK = (0x07<<1),
25
+ RUBY_ID_INTERNAL = RUBY_ID_JUNK,
26
+ RUBY_ID_SCOPE_SHIFT = 4,
27
+ RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
28
+ };
29
+
30
+ #define ID_STATIC_SYM RUBY_ID_STATIC_SYM
31
+ #define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
32
+ #define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK
33
+ #define ID_LOCAL RUBY_ID_LOCAL
34
+ #define ID_INSTANCE RUBY_ID_INSTANCE
35
+ #define ID_GLOBAL RUBY_ID_GLOBAL
36
+ #define ID_ATTRSET RUBY_ID_ATTRSET
37
+ #define ID_CONST RUBY_ID_CONST
38
+ #define ID_CLASS RUBY_ID_CLASS
39
+ #define ID_JUNK RUBY_ID_JUNK
40
+ #define ID_INTERNAL RUBY_ID_INTERNAL
41
+
42
+ #define symIFUNC ID2SYM(idIFUNC)
43
+ #define symCFUNC ID2SYM(idCFUNC)
44
+
45
+ #define RUBY_TOKEN_DOT2 128
46
+ #define RUBY_TOKEN_DOT3 129
47
+ #define RUBY_TOKEN_UPLUS 130
48
+ #define RUBY_TOKEN_UMINUS 131
49
+ #define RUBY_TOKEN_POW 132
50
+ #define RUBY_TOKEN_CMP 133
51
+ #define RUBY_TOKEN_LSHFT 134
52
+ #define RUBY_TOKEN_RSHFT 135
53
+ #define RUBY_TOKEN_LEQ 136
54
+ #define RUBY_TOKEN_GEQ 137
55
+ #define RUBY_TOKEN_EQ 138
56
+ #define RUBY_TOKEN_EQQ 139
57
+ #define RUBY_TOKEN_NEQ 140
58
+ #define RUBY_TOKEN_MATCH 141
59
+ #define RUBY_TOKEN_NMATCH 142
60
+ #define RUBY_TOKEN_AREF 143
61
+ #define RUBY_TOKEN_ASET 144
62
+ #define RUBY_TOKEN_COLON2 145
63
+ #define RUBY_TOKEN_ANDOP 146
64
+ #define RUBY_TOKEN_OROP 147
65
+ #define RUBY_TOKEN_ANDDOT 148
66
+ #define RUBY_TOKEN(t) RUBY_TOKEN_##t
67
+
68
+ #define RUBY_TOKEN2ID_TYPE(tok, type) ((tok<<RUBY_ID_SCOPE_SHIFT)|type|RUBY_ID_STATIC_SYM)
69
+ #define TOKEN2LOCALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_LOCAL)
70
+ #define TOKEN2INSTANCEID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_INSTANCE)
71
+ #define TOKEN2GLOBALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_GLOBAL)
72
+ #define TOKEN2CONSTID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CONST)
73
+ #define TOKEN2CLASSID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CLASS)
74
+ #define TOKEN2ATTRSETID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_ATTRSET)
75
+
76
+ enum ruby_method_ids {
77
+ idDot2 = RUBY_TOKEN(DOT2),
78
+ idDot3 = RUBY_TOKEN(DOT3),
79
+ idUPlus = RUBY_TOKEN(UPLUS),
80
+ idUMinus = RUBY_TOKEN(UMINUS),
81
+ idPow = RUBY_TOKEN(POW),
82
+ idCmp = RUBY_TOKEN(CMP),
83
+ idPLUS = '+',
84
+ idMINUS = '-',
85
+ idMULT = '*',
86
+ idDIV = '/',
87
+ idMOD = '%',
88
+ idLTLT = RUBY_TOKEN(LSHFT),
89
+ idGTGT = RUBY_TOKEN(RSHFT),
90
+ idLT = '<',
91
+ idLE = RUBY_TOKEN(LEQ),
92
+ idGT = '>',
93
+ idGE = RUBY_TOKEN(GEQ),
94
+ idEq = RUBY_TOKEN(EQ),
95
+ idEqq = RUBY_TOKEN(EQQ),
96
+ idNeq = RUBY_TOKEN(NEQ),
97
+ idNot = '!',
98
+ idAnd = '&',
99
+ idOr = '|',
100
+ idBackquote = '`',
101
+ idEqTilde = RUBY_TOKEN(MATCH),
102
+ idNeqTilde = RUBY_TOKEN(NMATCH),
103
+ idAREF = RUBY_TOKEN(AREF),
104
+ idASET = RUBY_TOKEN(ASET),
105
+ idCOLON2 = RUBY_TOKEN(COLON2),
106
+ idANDOP = RUBY_TOKEN(ANDOP),
107
+ idOROP = RUBY_TOKEN(OROP),
108
+ idANDDOT = RUBY_TOKEN(ANDDOT),
109
+ tPRESERVED_ID_BEGIN = 148,
110
+ idNULL,
111
+ idEmptyP,
112
+ idEqlP,
113
+ idRespond_to,
114
+ idRespond_to_missing,
115
+ idIFUNC,
116
+ idCFUNC,
117
+ id_core_set_method_alias,
118
+ id_core_set_variable_alias,
119
+ id_core_undef_method,
120
+ id_core_define_method,
121
+ id_core_define_singleton_method,
122
+ id_core_set_postexe,
123
+ id_core_hash_merge_ptr,
124
+ id_core_hash_merge_kwd,
125
+ id_debug_created_info,
126
+ tPRESERVED_ID_END,
127
+ tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
128
+ tMax,
129
+ tMin,
130
+ tFreeze,
131
+ tInspect,
132
+ tIntern,
133
+ tObject_id,
134
+ tConst_missing,
135
+ tMethodMissing,
136
+ tMethod_added,
137
+ tSingleton_method_added,
138
+ tMethod_removed,
139
+ tSingleton_method_removed,
140
+ tMethod_undefined,
141
+ tSingleton_method_undefined,
142
+ tLength,
143
+ tSize,
144
+ tGets,
145
+ tSucc,
146
+ tEach,
147
+ tProc,
148
+ tLambda,
149
+ tSend,
150
+ t__send__,
151
+ t__attached__,
152
+ tInitialize,
153
+ tInitialize_copy,
154
+ tInitialize_clone,
155
+ tInitialize_dup,
156
+ tTo_int,
157
+ tTo_ary,
158
+ tTo_str,
159
+ tTo_sym,
160
+ tTo_hash,
161
+ tTo_proc,
162
+ tTo_io,
163
+ tTo_a,
164
+ tTo_s,
165
+ tTo_i,
166
+ tTo_f,
167
+ tTo_r,
168
+ tBt,
169
+ tBt_locations,
170
+ tCall,
171
+ tMesg,
172
+ tException,
173
+ tNOT,
174
+ tAND,
175
+ tOR,
176
+ tUScore,
177
+ tTOKEN_LOCAL_END,
178
+ tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
179
+ tTOKEN_INSTANCE_END,
180
+ tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
181
+ tLASTLINE,
182
+ tBACKREF,
183
+ tTOKEN_GLOBAL_END,
184
+ tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
185
+ tTOKEN_CONST_END,
186
+ tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
187
+ tTOKEN_CLASS_END,
188
+ tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
189
+ tTOKEN_ATTRSET_END,
190
+ tNEXT_ID = tTOKEN_ATTRSET_END,
191
+ #define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
192
+ DEFINE_LOCALID_FROM_TOKEN(Max),
193
+ DEFINE_LOCALID_FROM_TOKEN(Min),
194
+ DEFINE_LOCALID_FROM_TOKEN(Freeze),
195
+ DEFINE_LOCALID_FROM_TOKEN(Inspect),
196
+ DEFINE_LOCALID_FROM_TOKEN(Intern),
197
+ DEFINE_LOCALID_FROM_TOKEN(Object_id),
198
+ DEFINE_LOCALID_FROM_TOKEN(Const_missing),
199
+ DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
200
+ DEFINE_LOCALID_FROM_TOKEN(Method_added),
201
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
202
+ DEFINE_LOCALID_FROM_TOKEN(Method_removed),
203
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
204
+ DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
205
+ DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
206
+ DEFINE_LOCALID_FROM_TOKEN(Length),
207
+ DEFINE_LOCALID_FROM_TOKEN(Size),
208
+ DEFINE_LOCALID_FROM_TOKEN(Gets),
209
+ DEFINE_LOCALID_FROM_TOKEN(Succ),
210
+ DEFINE_LOCALID_FROM_TOKEN(Each),
211
+ DEFINE_LOCALID_FROM_TOKEN(Proc),
212
+ DEFINE_LOCALID_FROM_TOKEN(Lambda),
213
+ DEFINE_LOCALID_FROM_TOKEN(Send),
214
+ DEFINE_LOCALID_FROM_TOKEN(__send__),
215
+ DEFINE_LOCALID_FROM_TOKEN(__attached__),
216
+ DEFINE_LOCALID_FROM_TOKEN(Initialize),
217
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
218
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
219
+ DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
220
+ DEFINE_LOCALID_FROM_TOKEN(To_int),
221
+ DEFINE_LOCALID_FROM_TOKEN(To_ary),
222
+ DEFINE_LOCALID_FROM_TOKEN(To_str),
223
+ DEFINE_LOCALID_FROM_TOKEN(To_sym),
224
+ DEFINE_LOCALID_FROM_TOKEN(To_hash),
225
+ DEFINE_LOCALID_FROM_TOKEN(To_proc),
226
+ DEFINE_LOCALID_FROM_TOKEN(To_io),
227
+ DEFINE_LOCALID_FROM_TOKEN(To_a),
228
+ DEFINE_LOCALID_FROM_TOKEN(To_s),
229
+ DEFINE_LOCALID_FROM_TOKEN(To_i),
230
+ DEFINE_LOCALID_FROM_TOKEN(To_f),
231
+ DEFINE_LOCALID_FROM_TOKEN(To_r),
232
+ DEFINE_LOCALID_FROM_TOKEN(Bt),
233
+ DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
234
+ DEFINE_LOCALID_FROM_TOKEN(Call),
235
+ DEFINE_LOCALID_FROM_TOKEN(Mesg),
236
+ DEFINE_LOCALID_FROM_TOKEN(Exception),
237
+ DEFINE_LOCALID_FROM_TOKEN(NOT),
238
+ DEFINE_LOCALID_FROM_TOKEN(AND),
239
+ DEFINE_LOCALID_FROM_TOKEN(OR),
240
+ DEFINE_LOCALID_FROM_TOKEN(UScore),
241
+ #define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
242
+ #define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
243
+ DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
244
+ DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
245
+ #define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
246
+ #define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
247
+ #define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
248
+ tLAST_OP_ID = tPRESERVED_ID_END-1,
249
+ idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
250
+ };
251
+
252
+ #endif /* RUBY_ID_H */
@@ -0,0 +1,31 @@
1
+ #ifndef RUBY_ID_TABLE_H
2
+ #define RUBY_ID_TABLE_H 1
3
+ #include "ruby/ruby.h"
4
+
5
+ struct rb_id_table;
6
+
7
+ /* compatible with ST_* */
8
+ enum rb_id_table_iterator_result {
9
+ ID_TABLE_CONTINUE = ST_CONTINUE,
10
+ ID_TABLE_STOP = ST_STOP,
11
+ ID_TABLE_DELETE = ST_DELETE,
12
+ ID_TABLE_ITERATOR_RESULT_END
13
+ };
14
+
15
+ struct rb_id_table *rb_id_table_create(size_t size);
16
+ void rb_id_table_free(struct rb_id_table *tbl);
17
+ void rb_id_table_clear(struct rb_id_table *tbl);
18
+
19
+ size_t rb_id_table_size(const struct rb_id_table *tbl);
20
+ size_t rb_id_table_memsize(const struct rb_id_table *tbl);
21
+
22
+ int rb_id_table_insert(struct rb_id_table *tbl, ID id, VALUE val);
23
+ int rb_id_table_lookup(struct rb_id_table *tbl, ID id, VALUE *valp);
24
+ int rb_id_table_delete(struct rb_id_table *tbl, ID id);
25
+
26
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);
27
+ typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);
28
+ void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);
29
+ void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
30
+
31
+ #endif /* RUBY_ID_TABLE_H */
@@ -0,0 +1,249 @@
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 contains YARV instruction list.
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/insns.inc.erb"
36
+ or tool/insns2vm.rb
37
+ */
38
+
39
+ /* BIN : Basic Instruction Name */
40
+ #define BIN(n) YARVINSN_##n
41
+
42
+ enum ruby_vminsn_type {
43
+ BIN(nop),
44
+ BIN(getlocal),
45
+ BIN(setlocal),
46
+ BIN(getblockparam),
47
+ BIN(setblockparam),
48
+ BIN(getblockparamproxy),
49
+ BIN(getspecial),
50
+ BIN(setspecial),
51
+ BIN(getinstancevariable),
52
+ BIN(setinstancevariable),
53
+ BIN(getclassvariable),
54
+ BIN(setclassvariable),
55
+ BIN(getconstant),
56
+ BIN(setconstant),
57
+ BIN(getglobal),
58
+ BIN(setglobal),
59
+ BIN(putnil),
60
+ BIN(putself),
61
+ BIN(putobject),
62
+ BIN(putspecialobject),
63
+ BIN(putiseq),
64
+ BIN(putstring),
65
+ BIN(concatstrings),
66
+ BIN(tostring),
67
+ BIN(freezestring),
68
+ BIN(toregexp),
69
+ BIN(intern),
70
+ BIN(newarray),
71
+ BIN(duparray),
72
+ BIN(duphash),
73
+ BIN(expandarray),
74
+ BIN(concatarray),
75
+ BIN(splatarray),
76
+ BIN(newhash),
77
+ BIN(newrange),
78
+ BIN(pop),
79
+ BIN(dup),
80
+ BIN(dupn),
81
+ BIN(swap),
82
+ BIN(reverse),
83
+ BIN(reput),
84
+ BIN(topn),
85
+ BIN(setn),
86
+ BIN(adjuststack),
87
+ BIN(defined),
88
+ BIN(checkmatch),
89
+ BIN(checkkeyword),
90
+ BIN(checktype),
91
+ BIN(defineclass),
92
+ BIN(send),
93
+ BIN(opt_send_without_block),
94
+ BIN(opt_str_freeze),
95
+ BIN(opt_str_uminus),
96
+ BIN(opt_newarray_max),
97
+ BIN(opt_newarray_min),
98
+ BIN(invokesuper),
99
+ BIN(invokeblock),
100
+ BIN(leave),
101
+ BIN(throw),
102
+ BIN(jump),
103
+ BIN(branchif),
104
+ BIN(branchunless),
105
+ BIN(branchnil),
106
+ BIN(opt_getinlinecache),
107
+ BIN(opt_setinlinecache),
108
+ BIN(once),
109
+ BIN(opt_case_dispatch),
110
+ BIN(opt_plus),
111
+ BIN(opt_minus),
112
+ BIN(opt_mult),
113
+ BIN(opt_div),
114
+ BIN(opt_mod),
115
+ BIN(opt_eq),
116
+ BIN(opt_neq),
117
+ BIN(opt_lt),
118
+ BIN(opt_le),
119
+ BIN(opt_gt),
120
+ BIN(opt_ge),
121
+ BIN(opt_ltlt),
122
+ BIN(opt_and),
123
+ BIN(opt_or),
124
+ BIN(opt_aref),
125
+ BIN(opt_aset),
126
+ BIN(opt_aset_with),
127
+ BIN(opt_aref_with),
128
+ BIN(opt_length),
129
+ BIN(opt_size),
130
+ BIN(opt_empty_p),
131
+ BIN(opt_succ),
132
+ BIN(opt_not),
133
+ BIN(opt_regexpmatch1),
134
+ BIN(opt_regexpmatch2),
135
+ BIN(opt_call_c_function),
136
+ BIN(bitblt),
137
+ BIN(answer),
138
+ BIN(getlocal_WC_0),
139
+ BIN(getlocal_WC_1),
140
+ BIN(setlocal_WC_0),
141
+ BIN(setlocal_WC_1),
142
+ BIN(putobject_INT2FIX_0_),
143
+ BIN(putobject_INT2FIX_1_),
144
+ BIN(trace_nop),
145
+ BIN(trace_getlocal),
146
+ BIN(trace_setlocal),
147
+ BIN(trace_getblockparam),
148
+ BIN(trace_setblockparam),
149
+ BIN(trace_getblockparamproxy),
150
+ BIN(trace_getspecial),
151
+ BIN(trace_setspecial),
152
+ BIN(trace_getinstancevariable),
153
+ BIN(trace_setinstancevariable),
154
+ BIN(trace_getclassvariable),
155
+ BIN(trace_setclassvariable),
156
+ BIN(trace_getconstant),
157
+ BIN(trace_setconstant),
158
+ BIN(trace_getglobal),
159
+ BIN(trace_setglobal),
160
+ BIN(trace_putnil),
161
+ BIN(trace_putself),
162
+ BIN(trace_putobject),
163
+ BIN(trace_putspecialobject),
164
+ BIN(trace_putiseq),
165
+ BIN(trace_putstring),
166
+ BIN(trace_concatstrings),
167
+ BIN(trace_tostring),
168
+ BIN(trace_freezestring),
169
+ BIN(trace_toregexp),
170
+ BIN(trace_intern),
171
+ BIN(trace_newarray),
172
+ BIN(trace_duparray),
173
+ BIN(trace_duphash),
174
+ BIN(trace_expandarray),
175
+ BIN(trace_concatarray),
176
+ BIN(trace_splatarray),
177
+ BIN(trace_newhash),
178
+ BIN(trace_newrange),
179
+ BIN(trace_pop),
180
+ BIN(trace_dup),
181
+ BIN(trace_dupn),
182
+ BIN(trace_swap),
183
+ BIN(trace_reverse),
184
+ BIN(trace_reput),
185
+ BIN(trace_topn),
186
+ BIN(trace_setn),
187
+ BIN(trace_adjuststack),
188
+ BIN(trace_defined),
189
+ BIN(trace_checkmatch),
190
+ BIN(trace_checkkeyword),
191
+ BIN(trace_checktype),
192
+ BIN(trace_defineclass),
193
+ BIN(trace_send),
194
+ BIN(trace_opt_send_without_block),
195
+ BIN(trace_opt_str_freeze),
196
+ BIN(trace_opt_str_uminus),
197
+ BIN(trace_opt_newarray_max),
198
+ BIN(trace_opt_newarray_min),
199
+ BIN(trace_invokesuper),
200
+ BIN(trace_invokeblock),
201
+ BIN(trace_leave),
202
+ BIN(trace_throw),
203
+ BIN(trace_jump),
204
+ BIN(trace_branchif),
205
+ BIN(trace_branchunless),
206
+ BIN(trace_branchnil),
207
+ BIN(trace_opt_getinlinecache),
208
+ BIN(trace_opt_setinlinecache),
209
+ BIN(trace_once),
210
+ BIN(trace_opt_case_dispatch),
211
+ BIN(trace_opt_plus),
212
+ BIN(trace_opt_minus),
213
+ BIN(trace_opt_mult),
214
+ BIN(trace_opt_div),
215
+ BIN(trace_opt_mod),
216
+ BIN(trace_opt_eq),
217
+ BIN(trace_opt_neq),
218
+ BIN(trace_opt_lt),
219
+ BIN(trace_opt_le),
220
+ BIN(trace_opt_gt),
221
+ BIN(trace_opt_ge),
222
+ BIN(trace_opt_ltlt),
223
+ BIN(trace_opt_and),
224
+ BIN(trace_opt_or),
225
+ BIN(trace_opt_aref),
226
+ BIN(trace_opt_aset),
227
+ BIN(trace_opt_aset_with),
228
+ BIN(trace_opt_aref_with),
229
+ BIN(trace_opt_length),
230
+ BIN(trace_opt_size),
231
+ BIN(trace_opt_empty_p),
232
+ BIN(trace_opt_succ),
233
+ BIN(trace_opt_not),
234
+ BIN(trace_opt_regexpmatch1),
235
+ BIN(trace_opt_regexpmatch2),
236
+ BIN(trace_opt_call_c_function),
237
+ BIN(trace_bitblt),
238
+ BIN(trace_answer),
239
+ BIN(trace_getlocal_WC_0),
240
+ BIN(trace_getlocal_WC_1),
241
+ BIN(trace_setlocal_WC_0),
242
+ BIN(trace_setlocal_WC_1),
243
+ BIN(trace_putobject_INT2FIX_0_),
244
+ BIN(trace_putobject_INT2FIX_1_),
245
+ VM_INSTRUCTION_SIZE
246
+ };
247
+
248
+ #define ASSERT_VM_INSTRUCTION_SIZE(array) \
249
+ STATIC_ASSERT(numberof_##array, numberof(array) == VM_INSTRUCTION_SIZE)