rubinius-compiler 3.9 → 3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rubinius/code/compiler/generator_methods.rb +389 -382
- data/lib/rubinius/code/compiler/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43a70986619cb373730960efd90ca453c167d955
|
4
|
+
data.tar.gz: 491d005f82901b9b4892de820a6d5a3c914997c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee4b15f721f45fa9e9057c28aef06febccc47a7cc611a52e3ecf3bc8ae2edd76196d7d17cbb17d738a9d6dfe452fc3499e77d1c35eae8832742e474f83f43496
|
7
|
+
data.tar.gz: 5783d337b23a39cb4d1267854538cc620cade019e5cb22fb0d9a7365162d3d937dd119f0702248e0bbbd5515515d146e9c62940554918a416c76fd27629b968c
|
@@ -2,92 +2,162 @@
|
|
2
2
|
|
3
3
|
module CodeTools
|
4
4
|
module GeneratorMethods
|
5
|
-
def
|
5
|
+
def add_scope
|
6
6
|
@stream << 0
|
7
7
|
@ip += 1
|
8
|
-
@current_block.add_stack(
|
8
|
+
@current_block.add_stack(1, 0)
|
9
9
|
@instruction = 0
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
12
|
+
def allow_private
|
13
13
|
@stream << 1
|
14
14
|
@ip += 1
|
15
|
-
@current_block.add_stack(0,
|
15
|
+
@current_block.add_stack(0, 0)
|
16
16
|
@instruction = 1
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
20
|
-
@
|
21
|
-
|
22
|
-
|
19
|
+
def cast_array
|
20
|
+
unless @instruction == 2 or @instruction == 29
|
21
|
+
@stream << 2
|
22
|
+
@ip += 1
|
23
|
+
end
|
23
24
|
@instruction = 2
|
24
25
|
end
|
25
26
|
|
26
|
-
def
|
27
|
+
def cast_for_multi_block_arg
|
27
28
|
@stream << 3
|
28
29
|
@ip += 1
|
29
30
|
@current_block.add_stack(0, 1)
|
30
31
|
@instruction = 3
|
31
32
|
end
|
32
33
|
|
33
|
-
def
|
34
|
-
@stream << 4
|
35
|
-
@ip +=
|
34
|
+
def cast_for_single_block_arg
|
35
|
+
@stream << 4
|
36
|
+
@ip += 1
|
36
37
|
@current_block.add_stack(0, 1)
|
37
38
|
@instruction = 4
|
38
39
|
end
|
39
40
|
|
40
|
-
def
|
41
|
+
def cast_for_splat_block_arg
|
41
42
|
@stream << 5
|
42
43
|
@ip += 1
|
43
44
|
@current_block.add_stack(0, 1)
|
44
45
|
@instruction = 5
|
45
46
|
end
|
46
47
|
|
47
|
-
def
|
48
|
-
|
49
|
-
@
|
50
|
-
@ip += 2
|
48
|
+
def cast_multi_value
|
49
|
+
@stream << 6
|
50
|
+
@ip += 1
|
51
51
|
@current_block.add_stack(1, 1)
|
52
52
|
@instruction = 6
|
53
53
|
end
|
54
54
|
|
55
|
-
def
|
56
|
-
@stream << 7
|
55
|
+
def check_frozen
|
56
|
+
@stream << 7
|
57
|
+
@ip += 1
|
58
|
+
@current_block.add_stack(1, 1)
|
59
|
+
@instruction = 7
|
60
|
+
end
|
61
|
+
|
62
|
+
def check_interrupts
|
63
|
+
@stream << 8
|
64
|
+
@ip += 1
|
65
|
+
@current_block.add_stack(0, 0)
|
66
|
+
@instruction = 8
|
67
|
+
end
|
68
|
+
|
69
|
+
def check_serial(arg1, arg2)
|
70
|
+
arg1 = find_literal(arg1)
|
71
|
+
@stream << 9 << arg1 << arg2
|
72
|
+
@ip += 3
|
73
|
+
@current_block.add_stack(1, 1)
|
74
|
+
@instruction = 9
|
75
|
+
end
|
76
|
+
|
77
|
+
def check_serial_private(arg1, arg2)
|
78
|
+
arg1 = find_literal(arg1)
|
79
|
+
@stream << 10 << arg1 << arg2
|
80
|
+
@ip += 3
|
81
|
+
@current_block.add_stack(1, 1)
|
82
|
+
@instruction = 10
|
83
|
+
end
|
84
|
+
|
85
|
+
def clear_exception
|
86
|
+
@stream << 11
|
87
|
+
@ip += 1
|
88
|
+
@current_block.add_stack(0, 0)
|
89
|
+
@instruction = 11
|
90
|
+
end
|
91
|
+
|
92
|
+
def create_block(arg1)
|
93
|
+
arg1 = add_generator(arg1)
|
94
|
+
@stream << 12 << arg1
|
57
95
|
@ip += 2
|
58
96
|
@current_block.add_stack(0, 1)
|
59
|
-
@instruction =
|
97
|
+
@instruction = 12
|
98
|
+
end
|
99
|
+
|
100
|
+
def dup
|
101
|
+
@stream << 13
|
102
|
+
@ip += 1
|
103
|
+
@current_block.add_stack(1, 2)
|
104
|
+
@instruction = 13
|
105
|
+
end
|
106
|
+
|
107
|
+
def dup_many(arg1)
|
108
|
+
arg1 = Integer(arg1)
|
109
|
+
@stream << 14 << arg1
|
110
|
+
@ip += 2
|
111
|
+
@current_block.add_stack(arg1, (arg1 * 2))
|
112
|
+
@instruction = 14
|
113
|
+
end
|
114
|
+
|
115
|
+
def ensure_return
|
116
|
+
@stream << 15
|
117
|
+
@ip += 1
|
118
|
+
@current_block.add_stack(1, 1)
|
119
|
+
@current_block.close true
|
120
|
+
@current_block = new_basic_block
|
121
|
+
@instruction = 15
|
122
|
+
end
|
123
|
+
|
124
|
+
def find_const(arg1)
|
125
|
+
arg1 = find_literal(arg1)
|
126
|
+
@stream << 16 << arg1
|
127
|
+
@ip += 2
|
128
|
+
@current_block.add_stack(1, 1)
|
129
|
+
@instruction = 16
|
60
130
|
end
|
61
131
|
|
62
132
|
def goto(arg1)
|
63
133
|
location = @ip + 1
|
64
|
-
@stream <<
|
134
|
+
@stream << 17 << arg1
|
65
135
|
@ip += 2
|
66
136
|
arg1.used_at location
|
67
137
|
@current_block.add_stack(0, 0)
|
68
138
|
@current_block.left = arg1.basic_block
|
69
139
|
@current_block.close
|
70
140
|
@current_block = new_basic_block
|
71
|
-
@instruction =
|
141
|
+
@instruction = 17
|
72
142
|
end
|
73
143
|
|
74
|
-
def
|
144
|
+
def goto_if_equal(arg1)
|
75
145
|
location = @ip + 1
|
76
|
-
@stream <<
|
146
|
+
@stream << 18 << arg1
|
77
147
|
@ip += 2
|
78
148
|
arg1.used_at location
|
79
|
-
@current_block.add_stack(
|
149
|
+
@current_block.add_stack(2, 0)
|
80
150
|
@current_block.left = arg1.basic_block
|
81
151
|
@current_block.close
|
82
152
|
block = new_basic_block
|
83
153
|
@current_block.right = block
|
84
154
|
@current_block = block
|
85
|
-
@instruction =
|
155
|
+
@instruction = 18
|
86
156
|
end
|
87
157
|
|
88
|
-
def
|
158
|
+
def goto_if_false(arg1)
|
89
159
|
location = @ip + 1
|
90
|
-
@stream <<
|
160
|
+
@stream << 19 << arg1
|
91
161
|
@ip += 2
|
92
162
|
arg1.used_at location
|
93
163
|
@current_block.add_stack(1, 0)
|
@@ -96,12 +166,12 @@ module CodeTools
|
|
96
166
|
block = new_basic_block
|
97
167
|
@current_block.right = block
|
98
168
|
@current_block = block
|
99
|
-
@instruction =
|
169
|
+
@instruction = 19
|
100
170
|
end
|
101
171
|
|
102
172
|
def goto_if_nil(arg1)
|
103
173
|
location = @ip + 1
|
104
|
-
@stream <<
|
174
|
+
@stream << 20 << arg1
|
105
175
|
@ip += 2
|
106
176
|
arg1.used_at location
|
107
177
|
@current_block.add_stack(1, 0)
|
@@ -110,26 +180,26 @@ module CodeTools
|
|
110
180
|
block = new_basic_block
|
111
181
|
@current_block.right = block
|
112
182
|
@current_block = block
|
113
|
-
@instruction =
|
183
|
+
@instruction = 20
|
114
184
|
end
|
115
185
|
|
116
|
-
def
|
186
|
+
def goto_if_not_equal(arg1)
|
117
187
|
location = @ip + 1
|
118
|
-
@stream <<
|
188
|
+
@stream << 21 << arg1
|
119
189
|
@ip += 2
|
120
190
|
arg1.used_at location
|
121
|
-
@current_block.add_stack(
|
191
|
+
@current_block.add_stack(2, 0)
|
122
192
|
@current_block.left = arg1.basic_block
|
123
193
|
@current_block.close
|
124
194
|
block = new_basic_block
|
125
195
|
@current_block.right = block
|
126
196
|
@current_block = block
|
127
|
-
@instruction =
|
197
|
+
@instruction = 21
|
128
198
|
end
|
129
199
|
|
130
|
-
def
|
200
|
+
def goto_if_not_nil(arg1)
|
131
201
|
location = @ip + 1
|
132
|
-
@stream <<
|
202
|
+
@stream << 22 << arg1
|
133
203
|
@ip += 2
|
134
204
|
arg1.used_at location
|
135
205
|
@current_block.add_stack(1, 0)
|
@@ -138,12 +208,12 @@ module CodeTools
|
|
138
208
|
block = new_basic_block
|
139
209
|
@current_block.right = block
|
140
210
|
@current_block = block
|
141
|
-
@instruction =
|
211
|
+
@instruction = 22
|
142
212
|
end
|
143
213
|
|
144
214
|
def goto_if_not_undefined(arg1)
|
145
215
|
location = @ip + 1
|
146
|
-
@stream <<
|
216
|
+
@stream << 23 << arg1
|
147
217
|
@ip += 2
|
148
218
|
arg1.used_at location
|
149
219
|
@current_block.add_stack(1, 0)
|
@@ -152,549 +222,471 @@ module CodeTools
|
|
152
222
|
block = new_basic_block
|
153
223
|
@current_block.right = block
|
154
224
|
@current_block = block
|
155
|
-
@instruction =
|
225
|
+
@instruction = 23
|
156
226
|
end
|
157
227
|
|
158
|
-
def
|
228
|
+
def goto_if_true(arg1)
|
159
229
|
location = @ip + 1
|
160
|
-
@stream <<
|
230
|
+
@stream << 24 << arg1
|
161
231
|
@ip += 2
|
162
232
|
arg1.used_at location
|
163
|
-
@current_block.add_stack(
|
233
|
+
@current_block.add_stack(1, 0)
|
164
234
|
@current_block.left = arg1.basic_block
|
165
235
|
@current_block.close
|
166
236
|
block = new_basic_block
|
167
237
|
@current_block.right = block
|
168
238
|
@current_block = block
|
169
|
-
@instruction =
|
239
|
+
@instruction = 24
|
170
240
|
end
|
171
241
|
|
172
|
-
def
|
242
|
+
def goto_if_undefined(arg1)
|
173
243
|
location = @ip + 1
|
174
|
-
@stream <<
|
244
|
+
@stream << 25 << arg1
|
175
245
|
@ip += 2
|
176
246
|
arg1.used_at location
|
177
|
-
@current_block.add_stack(
|
247
|
+
@current_block.add_stack(1, 0)
|
178
248
|
@current_block.left = arg1.basic_block
|
179
249
|
@current_block.close
|
180
250
|
block = new_basic_block
|
181
251
|
@current_block.right = block
|
182
252
|
@current_block = block
|
183
|
-
@instruction =
|
184
|
-
end
|
185
|
-
|
186
|
-
def ret
|
187
|
-
@stream << 17
|
188
|
-
@ip += 1
|
189
|
-
@current_block.add_stack(1, 1)
|
190
|
-
@current_block.close true
|
191
|
-
@current_block = new_basic_block
|
192
|
-
@instruction = 17
|
193
|
-
end
|
194
|
-
|
195
|
-
def swap
|
196
|
-
@stream << 18
|
197
|
-
@ip += 1
|
198
|
-
@current_block.add_stack(2, 2)
|
199
|
-
@instruction = 18
|
253
|
+
@instruction = 25
|
200
254
|
end
|
201
255
|
|
202
|
-
def
|
203
|
-
@stream <<
|
256
|
+
def instance_of
|
257
|
+
@stream << 26
|
204
258
|
@ip += 1
|
205
|
-
@current_block.add_stack(
|
206
|
-
@instruction =
|
259
|
+
@current_block.add_stack(2, 1)
|
260
|
+
@instruction = 26
|
207
261
|
end
|
208
262
|
|
209
|
-
def
|
210
|
-
arg1 =
|
211
|
-
|
212
|
-
@
|
213
|
-
@
|
214
|
-
@
|
263
|
+
def invoke_primitive(arg1, arg2)
|
264
|
+
arg1 = find_literal(arg1)
|
265
|
+
arg2 = Integer(arg2)
|
266
|
+
@stream << 27 << arg1 << arg2
|
267
|
+
@ip += 3
|
268
|
+
@current_block.add_stack(arg2, 1)
|
269
|
+
@instruction = 27
|
215
270
|
end
|
216
271
|
|
217
|
-
def
|
218
|
-
@stream <<
|
272
|
+
def kind_of
|
273
|
+
@stream << 28
|
219
274
|
@ip += 1
|
220
|
-
@current_block.add_stack(
|
221
|
-
@instruction =
|
275
|
+
@current_block.add_stack(2, 1)
|
276
|
+
@instruction = 28
|
222
277
|
end
|
223
278
|
|
224
|
-
def
|
279
|
+
def make_array(arg1)
|
225
280
|
arg1 = Integer(arg1)
|
226
|
-
@stream <<
|
281
|
+
@stream << 29 << arg1
|
227
282
|
@ip += 2
|
228
|
-
@current_block.add_stack(arg1,
|
229
|
-
@instruction =
|
283
|
+
@current_block.add_stack(arg1, 1)
|
284
|
+
@instruction = 29
|
230
285
|
end
|
231
286
|
|
232
|
-
def
|
233
|
-
|
234
|
-
@stream << 23 << arg1
|
287
|
+
def move_down(arg1)
|
288
|
+
@stream << 30 << arg1
|
235
289
|
@ip += 2
|
236
290
|
@current_block.add_stack(arg1, (arg1 * 1))
|
237
|
-
@instruction =
|
291
|
+
@instruction = 30
|
238
292
|
end
|
239
293
|
|
240
|
-
def
|
241
|
-
@stream <<
|
242
|
-
@ip +=
|
243
|
-
@current_block.add_stack(
|
244
|
-
@instruction =
|
294
|
+
def noop
|
295
|
+
@stream << 31
|
296
|
+
@ip += 1
|
297
|
+
@current_block.add_stack(0, 0)
|
298
|
+
@instruction = 31
|
245
299
|
end
|
246
300
|
|
247
|
-
def
|
248
|
-
|
301
|
+
def object_to_s(arg1)
|
302
|
+
arg1 = find_literal(arg1)
|
303
|
+
@stream << 32 << arg1
|
249
304
|
@ip += 2
|
250
305
|
@current_block.add_stack(1, 1)
|
251
|
-
@instruction =
|
306
|
+
@instruction = 32
|
252
307
|
end
|
253
308
|
|
254
|
-
def
|
255
|
-
@stream <<
|
309
|
+
def passed_arg(arg1)
|
310
|
+
@stream << 33 << arg1
|
256
311
|
@ip += 2
|
257
312
|
@current_block.add_stack(0, 1)
|
258
|
-
@instruction =
|
313
|
+
@instruction = 33
|
259
314
|
end
|
260
315
|
|
261
|
-
def
|
262
|
-
|
263
|
-
@
|
316
|
+
def passed_blockarg(arg1)
|
317
|
+
arg1 = Integer(arg1)
|
318
|
+
@stream << 34 << arg1
|
319
|
+
@ip += 2
|
264
320
|
@current_block.add_stack(0, 1)
|
265
|
-
@instruction =
|
321
|
+
@instruction = 34
|
266
322
|
end
|
267
323
|
|
268
|
-
def
|
269
|
-
@stream <<
|
270
|
-
@ip +=
|
271
|
-
@current_block.add_stack(1,
|
272
|
-
@instruction =
|
324
|
+
def pop
|
325
|
+
@stream << 35
|
326
|
+
@ip += 1
|
327
|
+
@current_block.add_stack(1, 0)
|
328
|
+
@instruction = 35
|
273
329
|
end
|
274
330
|
|
275
|
-
def
|
276
|
-
|
331
|
+
def pop_many(arg1)
|
332
|
+
arg1 = Integer(arg1)
|
333
|
+
@stream << 36 << arg1
|
277
334
|
@ip += 2
|
278
|
-
@current_block.add_stack(
|
279
|
-
@instruction =
|
280
|
-
end
|
281
|
-
|
282
|
-
def push_current_exception
|
283
|
-
@stream << 30
|
284
|
-
@ip += 1
|
285
|
-
@current_block.add_stack(0, 1)
|
286
|
-
@instruction = 30
|
335
|
+
@current_block.add_stack(arg1, 0)
|
336
|
+
@instruction = 36
|
287
337
|
end
|
288
338
|
|
289
|
-
def
|
290
|
-
@stream <<
|
339
|
+
def pop_unwind
|
340
|
+
@stream << 37
|
291
341
|
@ip += 1
|
292
342
|
@current_block.add_stack(0, 0)
|
293
|
-
@instruction =
|
343
|
+
@instruction = 37
|
294
344
|
end
|
295
345
|
|
296
|
-
def
|
297
|
-
@stream <<
|
346
|
+
def push_block
|
347
|
+
@stream << 38
|
298
348
|
@ip += 1
|
299
349
|
@current_block.add_stack(0, 1)
|
300
|
-
@instruction =
|
350
|
+
@instruction = 38
|
301
351
|
end
|
302
352
|
|
303
|
-
def
|
304
|
-
@stream << 33
|
305
|
-
@ip += 1
|
306
|
-
@current_block.add_stack(1, 0)
|
307
|
-
@instruction = 33
|
308
|
-
end
|
309
|
-
|
310
|
-
def raise_exc
|
311
|
-
@stream << 34
|
312
|
-
@ip += 1
|
313
|
-
@current_block.add_stack(1, 0)
|
314
|
-
@current_block.close false
|
315
|
-
@current_block = new_basic_block
|
316
|
-
@instruction = 34
|
317
|
-
end
|
318
|
-
|
319
|
-
def setup_unwind(arg1, arg2)
|
320
|
-
location = @ip + 1
|
321
|
-
@stream << 35 << arg1 << arg2
|
322
|
-
@ip += 3
|
323
|
-
arg1.used_at location
|
324
|
-
@current_block.add_stack(0, 0)
|
325
|
-
@current_block.left = arg1.basic_block
|
326
|
-
@current_block.close
|
327
|
-
block = new_basic_block
|
328
|
-
@current_block.right = block
|
329
|
-
@current_block = block
|
330
|
-
@instruction = 35
|
331
|
-
end
|
332
|
-
|
333
|
-
def pop_unwind
|
334
|
-
@stream << 36
|
335
|
-
@ip += 1
|
336
|
-
@current_block.add_stack(0, 0)
|
337
|
-
@instruction = 36
|
338
|
-
end
|
339
|
-
|
340
|
-
def raise_return
|
341
|
-
@stream << 37
|
342
|
-
@ip += 1
|
343
|
-
@current_block.add_stack(1, 1)
|
344
|
-
@current_block.close true
|
345
|
-
@current_block = new_basic_block
|
346
|
-
@instruction = 37
|
347
|
-
end
|
348
|
-
|
349
|
-
def ensure_return
|
350
|
-
@stream << 38
|
351
|
-
@ip += 1
|
352
|
-
@current_block.add_stack(1, 1)
|
353
|
-
@current_block.close true
|
354
|
-
@current_block = new_basic_block
|
355
|
-
@instruction = 38
|
356
|
-
end
|
357
|
-
|
358
|
-
def raise_break
|
353
|
+
def push_block_arg
|
359
354
|
@stream << 39
|
360
355
|
@ip += 1
|
361
|
-
@current_block.add_stack(
|
362
|
-
@current_block.close false
|
363
|
-
@current_block = new_basic_block
|
356
|
+
@current_block.add_stack(0, 1)
|
364
357
|
@instruction = 39
|
365
358
|
end
|
366
359
|
|
367
|
-
def
|
368
|
-
|
369
|
-
@
|
370
|
-
@
|
371
|
-
@current_block.
|
372
|
-
@current_block = new_basic_block
|
360
|
+
def push_const(arg1)
|
361
|
+
arg1 = find_literal(arg1)
|
362
|
+
@stream << 40 << arg1
|
363
|
+
@ip += 2
|
364
|
+
@current_block.add_stack(0, 1)
|
373
365
|
@instruction = 40
|
374
366
|
end
|
375
367
|
|
376
|
-
def
|
377
|
-
|
378
|
-
@
|
379
|
-
@
|
380
|
-
@current_block.add_stack(arg1, 1)
|
368
|
+
def push_cpath_top
|
369
|
+
@stream << 41
|
370
|
+
@ip += 1
|
371
|
+
@current_block.add_stack(0, 1)
|
381
372
|
@instruction = 41
|
382
373
|
end
|
383
374
|
|
384
|
-
def
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
end
|
375
|
+
def push_current_exception
|
376
|
+
@stream << 42
|
377
|
+
@ip += 1
|
378
|
+
@current_block.add_stack(0, 1)
|
389
379
|
@instruction = 42
|
390
380
|
end
|
391
381
|
|
392
|
-
def
|
382
|
+
def push_exception_state
|
393
383
|
@stream << 43
|
394
384
|
@ip += 1
|
395
|
-
@current_block.add_stack(
|
385
|
+
@current_block.add_stack(0, 1)
|
396
386
|
@instruction = 43
|
397
387
|
end
|
398
388
|
|
399
|
-
def
|
400
|
-
|
401
|
-
@
|
402
|
-
@
|
403
|
-
@current_block.add_stack(1, 1)
|
389
|
+
def push_false
|
390
|
+
@stream << 44
|
391
|
+
@ip += 1
|
392
|
+
@current_block.add_stack(0, 1)
|
404
393
|
@instruction = 44
|
405
394
|
end
|
406
395
|
|
407
|
-
def
|
408
|
-
|
409
|
-
@
|
410
|
-
@ip += 2
|
396
|
+
def push_has_block
|
397
|
+
@stream << 45
|
398
|
+
@ip += 1
|
411
399
|
@current_block.add_stack(0, 1)
|
412
400
|
@instruction = 45
|
413
401
|
end
|
414
402
|
|
415
|
-
def
|
416
|
-
arg1 = find_literal(arg1)
|
403
|
+
def push_int(arg1)
|
417
404
|
@stream << 46 << arg1
|
418
405
|
@ip += 2
|
419
|
-
@current_block.add_stack(
|
406
|
+
@current_block.add_stack(0, 1)
|
420
407
|
@instruction = 46
|
421
408
|
end
|
422
409
|
|
423
|
-
def
|
410
|
+
def push_ivar(arg1)
|
424
411
|
arg1 = find_literal(arg1)
|
425
412
|
@stream << 47 << arg1
|
426
413
|
@ip += 2
|
427
|
-
@current_block.add_stack(
|
414
|
+
@current_block.add_stack(0, 1)
|
428
415
|
@instruction = 47
|
429
416
|
end
|
430
417
|
|
431
|
-
def
|
432
|
-
@stream << 48
|
433
|
-
@ip +=
|
418
|
+
def emit_push_literal(arg1)
|
419
|
+
@stream << 48 << arg1
|
420
|
+
@ip += 2
|
434
421
|
@current_block.add_stack(0, 1)
|
435
422
|
@instruction = 48
|
436
423
|
end
|
437
424
|
|
438
|
-
def
|
439
|
-
arg1 = find_literal(arg1)
|
425
|
+
def push_local(arg1)
|
440
426
|
@stream << 49 << arg1
|
441
427
|
@ip += 2
|
442
428
|
@current_block.add_stack(0, 1)
|
443
429
|
@instruction = 49
|
444
430
|
end
|
445
431
|
|
446
|
-
def
|
447
|
-
arg1
|
448
|
-
@
|
449
|
-
@
|
450
|
-
@current_block.add_stack(1, 1)
|
432
|
+
def push_local_depth(arg1, arg2)
|
433
|
+
@stream << 50 << arg1 << arg2
|
434
|
+
@ip += 3
|
435
|
+
@current_block.add_stack(0, 1)
|
451
436
|
@instruction = 50
|
452
437
|
end
|
453
438
|
|
454
|
-
def
|
439
|
+
def push_memo(arg1)
|
440
|
+
arg1 = find_literal(arg1)
|
455
441
|
@stream << 51 << arg1
|
456
442
|
@ip += 2
|
457
|
-
@current_block.add_stack(
|
443
|
+
@current_block.add_stack(1, 1)
|
458
444
|
@instruction = 51
|
459
445
|
end
|
460
446
|
|
461
|
-
def
|
447
|
+
def push_mirror
|
462
448
|
@stream << 52
|
463
449
|
@ip += 1
|
464
|
-
@current_block.add_stack(0,
|
450
|
+
@current_block.add_stack(0, 1)
|
465
451
|
@instruction = 52
|
466
452
|
end
|
467
453
|
|
468
|
-
def
|
469
|
-
arg1 = find_literal(arg1)
|
454
|
+
def push_my_field(arg1)
|
470
455
|
@stream << 53 << arg1
|
471
456
|
@ip += 2
|
472
457
|
@current_block.add_stack(0, 1)
|
473
458
|
@instruction = 53
|
474
459
|
end
|
475
460
|
|
476
|
-
def
|
477
|
-
arg1 = find_literal(arg1)
|
461
|
+
def push_my_offset(arg1)
|
478
462
|
@stream << 54 << arg1
|
479
463
|
@ip += 2
|
480
|
-
@current_block.add_stack(
|
464
|
+
@current_block.add_stack(0, 1)
|
481
465
|
@instruction = 54
|
482
466
|
end
|
483
467
|
|
484
|
-
def
|
485
|
-
|
486
|
-
|
487
|
-
@
|
488
|
-
@ip += 3
|
489
|
-
@current_block.add_stack(arg2+1, 1)
|
468
|
+
def push_nil
|
469
|
+
@stream << 55
|
470
|
+
@ip += 1
|
471
|
+
@current_block.add_stack(0, 1)
|
490
472
|
@instruction = 55
|
491
473
|
end
|
492
474
|
|
493
|
-
def
|
494
|
-
|
495
|
-
|
496
|
-
@
|
497
|
-
@ip += 3
|
498
|
-
@current_block.add_stack(arg2+2, 1)
|
475
|
+
def push_proc
|
476
|
+
@stream << 56
|
477
|
+
@ip += 1
|
478
|
+
@current_block.add_stack(0, 1)
|
499
479
|
@instruction = 56
|
500
480
|
end
|
501
481
|
|
502
|
-
def
|
503
|
-
|
504
|
-
|
505
|
-
@
|
506
|
-
@ip += 3
|
507
|
-
@current_block.add_stack(arg2+3, 1)
|
482
|
+
def push_rubinius
|
483
|
+
@stream << 57
|
484
|
+
@ip += 1
|
485
|
+
@current_block.add_stack(0, 1)
|
508
486
|
@instruction = 57
|
509
487
|
end
|
510
488
|
|
511
|
-
def
|
512
|
-
|
513
|
-
|
514
|
-
@
|
515
|
-
@ip += 3
|
516
|
-
@current_block.add_stack(arg2+1, 1)
|
489
|
+
def push_scope
|
490
|
+
@stream << 58
|
491
|
+
@ip += 1
|
492
|
+
@current_block.add_stack(0, 1)
|
517
493
|
@instruction = 58
|
518
494
|
end
|
519
495
|
|
520
|
-
def
|
521
|
-
|
522
|
-
|
523
|
-
@
|
524
|
-
@ip += 3
|
525
|
-
@current_block.add_stack(arg2+2, 1)
|
496
|
+
def push_self
|
497
|
+
@stream << 59
|
498
|
+
@ip += 1
|
499
|
+
@current_block.add_stack(0, 1)
|
526
500
|
@instruction = 59
|
527
501
|
end
|
528
502
|
|
529
|
-
def
|
530
|
-
@stream << 60
|
531
|
-
@ip +=
|
503
|
+
def push_stack_local(arg1)
|
504
|
+
@stream << 60 << arg1
|
505
|
+
@ip += 2
|
532
506
|
@current_block.add_stack(0, 1)
|
533
507
|
@instruction = 60
|
534
508
|
end
|
535
509
|
|
536
|
-
def
|
537
|
-
|
538
|
-
@
|
539
|
-
@ip += 2
|
510
|
+
def push_true
|
511
|
+
@stream << 61
|
512
|
+
@ip += 1
|
540
513
|
@current_block.add_stack(0, 1)
|
541
514
|
@instruction = 61
|
542
515
|
end
|
543
516
|
|
544
|
-
def
|
545
|
-
|
546
|
-
@
|
547
|
-
@ip += 2
|
517
|
+
def push_type
|
518
|
+
@stream << 62
|
519
|
+
@ip += 1
|
548
520
|
@current_block.add_stack(0, 1)
|
549
521
|
@instruction = 62
|
550
522
|
end
|
551
523
|
|
552
|
-
def
|
524
|
+
def push_undef
|
553
525
|
@stream << 63
|
554
526
|
@ip += 1
|
555
527
|
@current_block.add_stack(0, 1)
|
556
528
|
@instruction = 63
|
557
529
|
end
|
558
530
|
|
559
|
-
def
|
531
|
+
def push_variables
|
560
532
|
@stream << 64
|
561
533
|
@ip += 1
|
562
534
|
@current_block.add_stack(0, 1)
|
563
535
|
@instruction = 64
|
564
536
|
end
|
565
537
|
|
566
|
-
def
|
538
|
+
def raise_break
|
567
539
|
@stream << 65
|
568
540
|
@ip += 1
|
569
|
-
@current_block.add_stack(
|
541
|
+
@current_block.add_stack(1, 1)
|
542
|
+
@current_block.close false
|
543
|
+
@current_block = new_basic_block
|
570
544
|
@instruction = 65
|
571
545
|
end
|
572
546
|
|
573
|
-
def
|
574
|
-
|
575
|
-
@
|
576
|
-
@
|
577
|
-
@current_block.
|
547
|
+
def raise_exc
|
548
|
+
@stream << 66
|
549
|
+
@ip += 1
|
550
|
+
@current_block.add_stack(1, 0)
|
551
|
+
@current_block.close false
|
552
|
+
@current_block = new_basic_block
|
578
553
|
@instruction = 66
|
579
554
|
end
|
580
555
|
|
581
|
-
def
|
582
|
-
|
583
|
-
@
|
584
|
-
@
|
585
|
-
@current_block.
|
556
|
+
def raise_return
|
557
|
+
@stream << 67
|
558
|
+
@ip += 1
|
559
|
+
@current_block.add_stack(1, 1)
|
560
|
+
@current_block.close true
|
561
|
+
@current_block = new_basic_block
|
586
562
|
@instruction = 67
|
587
563
|
end
|
588
564
|
|
589
|
-
def
|
565
|
+
def reraise
|
590
566
|
@stream << 68
|
591
567
|
@ip += 1
|
592
|
-
@current_block.add_stack(
|
568
|
+
@current_block.add_stack(0, 0)
|
569
|
+
@current_block.close false
|
570
|
+
@current_block = new_basic_block
|
593
571
|
@instruction = 68
|
594
572
|
end
|
595
573
|
|
596
|
-
def
|
597
|
-
|
598
|
-
@
|
599
|
-
@
|
600
|
-
@current_block.add_stack(arg1, 1)
|
574
|
+
def restore_exception_state
|
575
|
+
@stream << 69
|
576
|
+
@ip += 1
|
577
|
+
@current_block.add_stack(1, 0)
|
601
578
|
@instruction = 69
|
602
579
|
end
|
603
580
|
|
604
|
-
def
|
581
|
+
def ret
|
605
582
|
@stream << 70
|
606
583
|
@ip += 1
|
607
584
|
@current_block.add_stack(1, 1)
|
585
|
+
@current_block.close true
|
586
|
+
@current_block = new_basic_block
|
608
587
|
@instruction = 70
|
609
588
|
end
|
610
589
|
|
611
|
-
def
|
612
|
-
|
613
|
-
@
|
614
|
-
@
|
590
|
+
def rotate(arg1)
|
591
|
+
arg1 = Integer(arg1)
|
592
|
+
@stream << 71 << arg1
|
593
|
+
@ip += 2
|
594
|
+
@current_block.add_stack(arg1, (arg1 * 1))
|
615
595
|
@instruction = 71
|
616
596
|
end
|
617
597
|
|
618
|
-
def
|
598
|
+
def run_exception
|
619
599
|
@stream << 72
|
620
600
|
@ip += 1
|
621
|
-
@current_block.add_stack(
|
601
|
+
@current_block.add_stack(0, 0)
|
622
602
|
@instruction = 72
|
623
603
|
end
|
624
604
|
|
625
|
-
def
|
626
|
-
|
627
|
-
@
|
628
|
-
@
|
605
|
+
def send_method(arg1)
|
606
|
+
arg1 = find_literal(arg1)
|
607
|
+
@stream << 73 << arg1
|
608
|
+
@ip += 2
|
609
|
+
@current_block.add_stack(1, 1)
|
629
610
|
@instruction = 73
|
630
611
|
end
|
631
612
|
|
632
|
-
def
|
633
|
-
|
634
|
-
|
635
|
-
@
|
613
|
+
def send_stack(arg1, arg2)
|
614
|
+
arg1 = find_literal(arg1)
|
615
|
+
arg2 = Integer(arg2)
|
616
|
+
@stream << 74 << arg1 << arg2
|
617
|
+
@ip += 3
|
618
|
+
@current_block.add_stack(arg2+1, 1)
|
636
619
|
@instruction = 74
|
637
620
|
end
|
638
621
|
|
639
|
-
def
|
640
|
-
|
641
|
-
|
642
|
-
@
|
622
|
+
def send_stack_with_block(arg1, arg2)
|
623
|
+
arg1 = find_literal(arg1)
|
624
|
+
arg2 = Integer(arg2)
|
625
|
+
@stream << 75 << arg1 << arg2
|
626
|
+
@ip += 3
|
627
|
+
@current_block.add_stack(arg2+2, 1)
|
643
628
|
@instruction = 75
|
644
629
|
end
|
645
630
|
|
646
|
-
def
|
631
|
+
def send_stack_with_splat(arg1, arg2)
|
647
632
|
arg1 = find_literal(arg1)
|
633
|
+
arg2 = Integer(arg2)
|
648
634
|
@stream << 76 << arg1 << arg2
|
649
635
|
@ip += 3
|
650
|
-
@current_block.add_stack(
|
636
|
+
@current_block.add_stack(arg2+3, 1)
|
651
637
|
@instruction = 76
|
652
638
|
end
|
653
639
|
|
654
|
-
def
|
640
|
+
def send_super_stack_with_block(arg1, arg2)
|
655
641
|
arg1 = find_literal(arg1)
|
642
|
+
arg2 = Integer(arg2)
|
656
643
|
@stream << 77 << arg1 << arg2
|
657
644
|
@ip += 3
|
658
|
-
@current_block.add_stack(1, 1)
|
645
|
+
@current_block.add_stack(arg2+1, 1)
|
659
646
|
@instruction = 77
|
660
647
|
end
|
661
648
|
|
662
|
-
def
|
663
|
-
|
664
|
-
|
665
|
-
@
|
649
|
+
def send_super_stack_with_splat(arg1, arg2)
|
650
|
+
arg1 = find_literal(arg1)
|
651
|
+
arg2 = Integer(arg2)
|
652
|
+
@stream << 78 << arg1 << arg2
|
653
|
+
@ip += 3
|
654
|
+
@current_block.add_stack(arg2+2, 1)
|
666
655
|
@instruction = 78
|
667
656
|
end
|
668
657
|
|
669
|
-
def
|
658
|
+
def send_vcall(arg1)
|
659
|
+
arg1 = find_literal(arg1)
|
670
660
|
@stream << 79 << arg1
|
671
661
|
@ip += 2
|
672
|
-
@current_block.add_stack(
|
662
|
+
@current_block.add_stack(0, 1)
|
673
663
|
@instruction = 79
|
674
664
|
end
|
675
665
|
|
676
|
-
def
|
677
|
-
@stream << 80
|
678
|
-
@ip +=
|
679
|
-
@current_block.add_stack(
|
666
|
+
def set_call_flags(arg1)
|
667
|
+
@stream << 80 << arg1
|
668
|
+
@ip += 2
|
669
|
+
@current_block.add_stack(0, 0)
|
680
670
|
@instruction = 80
|
681
671
|
end
|
682
672
|
|
683
|
-
def
|
684
|
-
|
685
|
-
@
|
686
|
-
@
|
673
|
+
def set_const(arg1)
|
674
|
+
arg1 = find_literal(arg1)
|
675
|
+
@stream << 81 << arg1
|
676
|
+
@ip += 2
|
677
|
+
@current_block.add_stack(1, 1)
|
687
678
|
@instruction = 81
|
688
679
|
end
|
689
680
|
|
690
|
-
def
|
681
|
+
def set_const_at(arg1)
|
682
|
+
arg1 = find_literal(arg1)
|
691
683
|
@stream << 82 << arg1
|
692
684
|
@ip += 2
|
693
|
-
@current_block.add_stack(
|
685
|
+
@current_block.add_stack(2, 1)
|
694
686
|
@instruction = 82
|
695
687
|
end
|
696
688
|
|
697
|
-
def
|
689
|
+
def set_ivar(arg1)
|
698
690
|
arg1 = find_literal(arg1)
|
699
691
|
@stream << 83 << arg1
|
700
692
|
@ip += 2
|
@@ -702,99 +694,114 @@ module CodeTools
|
|
702
694
|
@instruction = 83
|
703
695
|
end
|
704
696
|
|
705
|
-
def
|
706
|
-
@stream << 84
|
707
|
-
@ip +=
|
708
|
-
@current_block.add_stack(
|
697
|
+
def set_local(arg1)
|
698
|
+
@stream << 84 << arg1
|
699
|
+
@ip += 2
|
700
|
+
@current_block.add_stack(1, 1)
|
709
701
|
@instruction = 84
|
710
702
|
end
|
711
703
|
|
712
|
-
def
|
713
|
-
@stream << 85
|
714
|
-
@ip +=
|
715
|
-
@current_block.add_stack(
|
704
|
+
def set_local_depth(arg1, arg2)
|
705
|
+
@stream << 85 << arg1 << arg2
|
706
|
+
@ip += 3
|
707
|
+
@current_block.add_stack(1, 1)
|
716
708
|
@instruction = 85
|
717
709
|
end
|
718
710
|
|
719
|
-
def
|
711
|
+
def set_stack_local(arg1)
|
720
712
|
@stream << 86 << arg1
|
721
713
|
@ip += 2
|
722
|
-
@current_block.add_stack(
|
714
|
+
@current_block.add_stack(1, 1)
|
723
715
|
@instruction = 86
|
724
716
|
end
|
725
717
|
|
726
|
-
def
|
727
|
-
|
728
|
-
@
|
729
|
-
@
|
718
|
+
def setup_unwind(arg1, arg2)
|
719
|
+
location = @ip + 1
|
720
|
+
@stream << 87 << arg1 << arg2
|
721
|
+
@ip += 3
|
722
|
+
arg1.used_at location
|
723
|
+
@current_block.add_stack(0, 0)
|
724
|
+
@current_block.left = arg1.basic_block
|
725
|
+
@current_block.close
|
726
|
+
block = new_basic_block
|
727
|
+
@current_block.right = block
|
728
|
+
@current_block = block
|
730
729
|
@instruction = 87
|
731
730
|
end
|
732
731
|
|
733
|
-
def
|
732
|
+
def shift_array
|
734
733
|
@stream << 88
|
735
734
|
@ip += 1
|
736
|
-
@current_block.add_stack(
|
735
|
+
@current_block.add_stack(1, 2)
|
737
736
|
@instruction = 88
|
738
737
|
end
|
739
738
|
|
740
|
-
def
|
741
|
-
@stream << 89
|
742
|
-
@ip +=
|
743
|
-
@current_block.add_stack(
|
739
|
+
def store_my_field(arg1)
|
740
|
+
@stream << 89 << arg1
|
741
|
+
@ip += 2
|
742
|
+
@current_block.add_stack(1, 1)
|
744
743
|
@instruction = 89
|
745
744
|
end
|
746
745
|
|
747
|
-
def
|
746
|
+
def string_append
|
748
747
|
@stream << 90
|
749
748
|
@ip += 1
|
750
|
-
@current_block.add_stack(
|
749
|
+
@current_block.add_stack(2, 1)
|
751
750
|
@instruction = 90
|
752
751
|
end
|
753
752
|
|
754
|
-
def
|
755
|
-
|
756
|
-
@
|
757
|
-
@
|
753
|
+
def string_build(arg1)
|
754
|
+
arg1 = Integer(arg1)
|
755
|
+
@stream << 91 << arg1
|
756
|
+
@ip += 2
|
757
|
+
@current_block.add_stack(arg1, 1)
|
758
758
|
@instruction = 91
|
759
759
|
end
|
760
760
|
|
761
|
-
def
|
762
|
-
|
763
|
-
|
764
|
-
@
|
765
|
-
@ip += 3
|
766
|
-
@current_block.add_stack(arg2, 1)
|
761
|
+
def string_dup
|
762
|
+
@stream << 92
|
763
|
+
@ip += 1
|
764
|
+
@current_block.add_stack(1, 1)
|
767
765
|
@instruction = 92
|
768
766
|
end
|
769
767
|
|
770
|
-
def
|
768
|
+
def swap
|
771
769
|
@stream << 93
|
772
770
|
@ip += 1
|
773
|
-
@current_block.add_stack(
|
771
|
+
@current_block.add_stack(2, 2)
|
774
772
|
@instruction = 93
|
775
773
|
end
|
776
774
|
|
777
|
-
def
|
778
|
-
|
779
|
-
@
|
780
|
-
@
|
781
|
-
@current_block.add_stack(1, 1)
|
775
|
+
def yield_debugger
|
776
|
+
@stream << 94
|
777
|
+
@ip += 1
|
778
|
+
@current_block.add_stack(0, 0)
|
782
779
|
@instruction = 94
|
783
780
|
end
|
784
781
|
|
785
|
-
def
|
786
|
-
|
787
|
-
@
|
788
|
-
@
|
782
|
+
def yield_splat(arg1)
|
783
|
+
arg1 = Integer(arg1)
|
784
|
+
@stream << 95 << arg1
|
785
|
+
@ip += 2
|
786
|
+
@current_block.add_stack(arg1+1, 1)
|
789
787
|
@instruction = 95
|
790
788
|
end
|
791
789
|
|
792
|
-
def
|
793
|
-
|
794
|
-
@
|
795
|
-
@
|
790
|
+
def yield_stack(arg1)
|
791
|
+
arg1 = Integer(arg1)
|
792
|
+
@stream << 96 << arg1
|
793
|
+
@ip += 2
|
794
|
+
@current_block.add_stack(arg1, 1)
|
796
795
|
@instruction = 96
|
797
796
|
end
|
798
797
|
|
798
|
+
def zsuper(arg1)
|
799
|
+
arg1 = find_literal(arg1)
|
800
|
+
@stream << 97 << arg1
|
801
|
+
@ip += 2
|
802
|
+
@current_block.add_stack(1, 1)
|
803
|
+
@instruction = 97
|
804
|
+
end
|
805
|
+
|
799
806
|
end
|
800
807
|
end
|