rubinius-compiler 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88bdb00808bc7bbb05baf430787b8b6ba1db40a2
4
- data.tar.gz: 0b4305c8e6e47805a24495331e5de262731425b9
3
+ metadata.gz: e68f0fc260745783eba82d2ba135d21699db9350
4
+ data.tar.gz: 19d09c8b2e07bbd63c23a1768ca53c9316886fcd
5
5
  SHA512:
6
- metadata.gz: 4a4fa98f86f6a53c33f8446077ef1a3d138c45f4789262d379d71c9121b9f3f29bc5593723e0fdce52a7f04af31f7a78a992f781c68d20911abda1b85b7433eb
7
- data.tar.gz: f9c09ab593b0ade87108ae31d079f5f673efea61fd0d8b74f3ec9d80bc34ded68684c047786dfc90b2303fbeea123f780fd8ddc10c657004437cec2c18555965
6
+ metadata.gz: 02a2111f41bfcfb73aa96d648adaa8dddc4144833fe6b12c76619eeb483c2b204c5cddd202f13295a935446a3f269d4bb5ada289b137c1f518c52fa16740d48c
7
+ data.tar.gz: 7e79d508f8c7bd555d05c0944c56e8b55bbbed2f50061775aa70645c0614f6b02bf2ba2b80cadc4447be6f7b15966db1d1e52ab0c749f1360c034318743eaecd
@@ -452,6 +452,12 @@ module CodeTools
452
452
  alias_method :dup, :dup_top
453
453
  alias_method :git, :goto_if_true
454
454
  alias_method :gif, :goto_if_false
455
+ alias_method :gin, :goto_if_nil
456
+ alias_method :ginn, :goto_if_not_nil
457
+ alias_method :giu, :goto_if_undefined
458
+ alias_method :ginu, :goto_if_not_undefined
459
+ alias_method :gie, :goto_if_equal
460
+ alias_method :gine, :goto_if_not_equal
455
461
  alias_method :swap, :swap_stack
456
462
 
457
463
  # Helpers
@@ -113,139 +113,223 @@ module CodeTools
113
113
  @instruction = 10
114
114
  end
115
115
 
116
+ def goto_if_nil(arg1)
117
+ location = @ip + 1
118
+ @stream << 11 << arg1
119
+ @ip += 2
120
+ arg1.used_at location
121
+ @current_block.add_stack(1, 0)
122
+ @current_block.left = arg1.basic_block
123
+ @current_block.close
124
+ block = new_basic_block
125
+ @current_block.right = block
126
+ @current_block = block
127
+ @instruction = 11
128
+ end
129
+
130
+ def goto_if_not_nil(arg1)
131
+ location = @ip + 1
132
+ @stream << 12 << arg1
133
+ @ip += 2
134
+ arg1.used_at location
135
+ @current_block.add_stack(1, 0)
136
+ @current_block.left = arg1.basic_block
137
+ @current_block.close
138
+ block = new_basic_block
139
+ @current_block.right = block
140
+ @current_block = block
141
+ @instruction = 12
142
+ end
143
+
144
+ def goto_if_undefined(arg1)
145
+ location = @ip + 1
146
+ @stream << 13 << arg1
147
+ @ip += 2
148
+ arg1.used_at location
149
+ @current_block.add_stack(1, 0)
150
+ @current_block.left = arg1.basic_block
151
+ @current_block.close
152
+ block = new_basic_block
153
+ @current_block.right = block
154
+ @current_block = block
155
+ @instruction = 13
156
+ end
157
+
158
+ def goto_if_not_undefined(arg1)
159
+ location = @ip + 1
160
+ @stream << 14 << arg1
161
+ @ip += 2
162
+ arg1.used_at location
163
+ @current_block.add_stack(1, 0)
164
+ @current_block.left = arg1.basic_block
165
+ @current_block.close
166
+ block = new_basic_block
167
+ @current_block.right = block
168
+ @current_block = block
169
+ @instruction = 14
170
+ end
171
+
172
+ def goto_if_equal(arg1)
173
+ location = @ip + 1
174
+ @stream << 15 << arg1
175
+ @ip += 2
176
+ arg1.used_at location
177
+ @current_block.add_stack(2, 0)
178
+ @current_block.left = arg1.basic_block
179
+ @current_block.close
180
+ block = new_basic_block
181
+ @current_block.right = block
182
+ @current_block = block
183
+ @instruction = 15
184
+ end
185
+
186
+ def goto_if_not_equal(arg1)
187
+ location = @ip + 1
188
+ @stream << 16 << arg1
189
+ @ip += 2
190
+ arg1.used_at location
191
+ @current_block.add_stack(2, 0)
192
+ @current_block.left = arg1.basic_block
193
+ @current_block.close
194
+ block = new_basic_block
195
+ @current_block.right = block
196
+ @current_block = block
197
+ @instruction = 16
198
+ end
199
+
116
200
  def ret
117
- @stream << 11
201
+ @stream << 17
118
202
  @ip += 1
119
203
  @current_block.add_stack(1, 1)
120
204
  @current_block.close true
121
205
  @current_block = new_basic_block
122
- @instruction = 11
206
+ @instruction = 17
123
207
  end
124
208
 
125
209
  def swap_stack
126
- @stream << 12
210
+ @stream << 18
127
211
  @ip += 1
128
212
  @current_block.add_stack(2, 2)
129
- @instruction = 12
213
+ @instruction = 18
130
214
  end
131
215
 
132
216
  def dup_top
133
- @stream << 13
217
+ @stream << 19
134
218
  @ip += 1
135
219
  @current_block.add_stack(1, 2)
136
- @instruction = 13
220
+ @instruction = 19
137
221
  end
138
222
 
139
223
  def dup_many(arg1)
140
- @stream << 14 << arg1
224
+ @stream << 20 << arg1
141
225
  @ip += 2
142
226
  @current_block.add_stack(arg1, (arg1 * 2))
143
- @instruction = 14
227
+ @instruction = 20
144
228
  end
145
229
 
146
230
  def pop
147
- @stream << 15
231
+ @stream << 21
148
232
  @ip += 1
149
233
  @current_block.add_stack(1, 0)
150
- @instruction = 15
234
+ @instruction = 21
151
235
  end
152
236
 
153
237
  def pop_many(arg1)
154
- @stream << 16 << arg1
238
+ @stream << 22 << arg1
155
239
  @ip += 2
156
240
  @current_block.add_stack(arg1, 0)
157
- @instruction = 16
241
+ @instruction = 22
158
242
  end
159
243
 
160
244
  def rotate(arg1)
161
- @stream << 17 << arg1
245
+ @stream << 23 << arg1
162
246
  @ip += 2
163
247
  @current_block.add_stack(arg1, (arg1 * 1))
164
- @instruction = 17
248
+ @instruction = 23
165
249
  end
166
250
 
167
251
  def move_down(arg1)
168
- @stream << 18 << arg1
252
+ @stream << 24 << arg1
169
253
  @ip += 2
170
254
  @current_block.add_stack(arg1, (arg1 * 1))
171
- @instruction = 18
255
+ @instruction = 24
172
256
  end
173
257
 
174
258
  def set_local(arg1)
175
- @stream << 19 << arg1
259
+ @stream << 25 << arg1
176
260
  @ip += 2
177
261
  @current_block.add_stack(1, 1)
178
- @instruction = 19
262
+ @instruction = 25
179
263
  end
180
264
 
181
265
  def push_local(arg1)
182
- @stream << 20 << arg1
266
+ @stream << 26 << arg1
183
267
  @ip += 2
184
268
  @current_block.add_stack(0, 1)
185
- @instruction = 20
269
+ @instruction = 26
186
270
  end
187
271
 
188
272
  def push_local_depth(arg1, arg2)
189
- @stream << 21 << arg1 << arg2
273
+ @stream << 27 << arg1 << arg2
190
274
  @ip += 3
191
275
  @current_block.add_stack(0, 1)
192
- @instruction = 21
276
+ @instruction = 27
193
277
  end
194
278
 
195
279
  def set_local_depth(arg1, arg2)
196
- @stream << 22 << arg1 << arg2
280
+ @stream << 28 << arg1 << arg2
197
281
  @ip += 3
198
282
  @current_block.add_stack(1, 1)
199
- @instruction = 22
283
+ @instruction = 28
200
284
  end
201
285
 
202
286
  def passed_arg(arg1)
203
- @stream << 23 << arg1
287
+ @stream << 29 << arg1
204
288
  @ip += 2
205
289
  @current_block.add_stack(0, 1)
206
- @instruction = 23
290
+ @instruction = 29
207
291
  end
208
292
 
209
293
  def push_current_exception
210
- @stream << 24
294
+ @stream << 30
211
295
  @ip += 1
212
296
  @current_block.add_stack(0, 1)
213
- @instruction = 24
297
+ @instruction = 30
214
298
  end
215
299
 
216
300
  def clear_exception
217
- @stream << 25
301
+ @stream << 31
218
302
  @ip += 1
219
303
  @current_block.add_stack(0, 0)
220
- @instruction = 25
304
+ @instruction = 31
221
305
  end
222
306
 
223
307
  def push_exception_state
224
- @stream << 26
308
+ @stream << 32
225
309
  @ip += 1
226
310
  @current_block.add_stack(0, 1)
227
- @instruction = 26
311
+ @instruction = 32
228
312
  end
229
313
 
230
314
  def restore_exception_state
231
- @stream << 27
315
+ @stream << 33
232
316
  @ip += 1
233
317
  @current_block.add_stack(1, 0)
234
- @instruction = 27
318
+ @instruction = 33
235
319
  end
236
320
 
237
321
  def raise_exc
238
- @stream << 28
322
+ @stream << 34
239
323
  @ip += 1
240
324
  @current_block.add_stack(1, 0)
241
325
  @current_block.close false
242
326
  @current_block = new_basic_block
243
- @instruction = 28
327
+ @instruction = 34
244
328
  end
245
329
 
246
330
  def setup_unwind(arg1, arg2)
247
331
  location = @ip + 1
248
- @stream << 29 << arg1 << arg2
332
+ @stream << 35 << arg1 << arg2
249
333
  @ip += 3
250
334
  arg1.used_at location
251
335
  @current_block.add_stack(0, 0)
@@ -254,548 +338,548 @@ module CodeTools
254
338
  block = new_basic_block
255
339
  @current_block.right = block
256
340
  @current_block = block
257
- @instruction = 29
341
+ @instruction = 35
258
342
  end
259
343
 
260
344
  def pop_unwind
261
- @stream << 30
345
+ @stream << 36
262
346
  @ip += 1
263
347
  @current_block.add_stack(0, 0)
264
- @instruction = 30
348
+ @instruction = 36
265
349
  end
266
350
 
267
351
  def raise_return
268
- @stream << 31
352
+ @stream << 37
269
353
  @ip += 1
270
354
  @current_block.add_stack(1, 1)
271
355
  @current_block.close true
272
356
  @current_block = new_basic_block
273
- @instruction = 31
357
+ @instruction = 37
274
358
  end
275
359
 
276
360
  def ensure_return
277
- @stream << 32
361
+ @stream << 38
278
362
  @ip += 1
279
363
  @current_block.add_stack(1, 1)
280
364
  @current_block.close true
281
365
  @current_block = new_basic_block
282
- @instruction = 32
366
+ @instruction = 38
283
367
  end
284
368
 
285
369
  def raise_break
286
- @stream << 33
370
+ @stream << 39
287
371
  @ip += 1
288
372
  @current_block.add_stack(1, 1)
289
373
  @current_block.close false
290
374
  @current_block = new_basic_block
291
- @instruction = 33
375
+ @instruction = 39
292
376
  end
293
377
 
294
378
  def reraise
295
- @stream << 34
379
+ @stream << 40
296
380
  @ip += 1
297
381
  @current_block.add_stack(0, 0)
298
382
  @current_block.close false
299
383
  @current_block = new_basic_block
300
- @instruction = 34
384
+ @instruction = 40
301
385
  end
302
386
 
303
387
  def make_array(arg1)
304
- @stream << 35 << arg1
388
+ @stream << 41 << arg1
305
389
  @ip += 2
306
390
  @current_block.add_stack(arg1, 1)
307
- @instruction = 35
391
+ @instruction = 41
308
392
  end
309
393
 
310
394
  def cast_array
311
- unless @instruction == 36 or @instruction == 35
312
- @stream << 36
395
+ unless @instruction == 42 or @instruction == 41
396
+ @stream << 42
313
397
  @ip += 1
314
398
  end
315
- @instruction = 36
399
+ @instruction = 42
316
400
  end
317
401
 
318
402
  def shift_array
319
- @stream << 37
403
+ @stream << 43
320
404
  @ip += 1
321
405
  @current_block.add_stack(1, 2)
322
- @instruction = 37
406
+ @instruction = 43
323
407
  end
324
408
 
325
409
  def set_ivar(arg1)
326
410
  arg1 = find_literal arg1
327
- @stream << 38 << arg1
411
+ @stream << 44 << arg1
328
412
  @ip += 2
329
413
  @current_block.add_stack(1, 1)
330
- @instruction = 38
414
+ @instruction = 44
331
415
  end
332
416
 
333
417
  def push_ivar(arg1)
334
418
  arg1 = find_literal arg1
335
- @stream << 39 << arg1
419
+ @stream << 45 << arg1
336
420
  @ip += 2
337
421
  @current_block.add_stack(0, 1)
338
- @instruction = 39
422
+ @instruction = 45
339
423
  end
340
424
 
341
425
  def set_const(arg1)
342
- @stream << 41 << arg1
426
+ @stream << 47 << arg1
343
427
  @ip += 2
344
428
  @current_block.add_stack(1, 1)
345
- @instruction = 41
429
+ @instruction = 47
346
430
  end
347
431
 
348
432
  def set_const_at(arg1)
349
- @stream << 42 << arg1
433
+ @stream << 48 << arg1
350
434
  @ip += 2
351
435
  @current_block.add_stack(2, 1)
352
- @instruction = 42
436
+ @instruction = 48
353
437
  end
354
438
 
355
439
  def find_const(arg1)
356
440
  arg1 = find_literal arg1
357
- @stream << 43 << arg1
441
+ @stream << 49 << arg1
358
442
  @ip += 2
359
443
  @current_block.add_stack(1, 1)
360
- @instruction = 43
444
+ @instruction = 49
361
445
  end
362
446
 
363
447
  def push_cpath_top
364
- @stream << 44
448
+ @stream << 50
365
449
  @ip += 1
366
450
  @current_block.add_stack(0, 1)
367
- @instruction = 44
451
+ @instruction = 50
368
452
  end
369
453
 
370
454
  def push_const_fast(arg1)
371
- @stream << 45 << arg1
455
+ @stream << 51 << arg1
372
456
  @ip += 2
373
457
  @current_block.add_stack(0, 1)
374
- @instruction = 45
458
+ @instruction = 51
375
459
  end
376
460
 
377
461
  def find_const_fast(arg1)
378
- @stream << 46 << arg1
462
+ @stream << 52 << arg1
379
463
  @ip += 2
380
464
  @current_block.add_stack(1, 1)
381
- @instruction = 46
465
+ @instruction = 52
382
466
  end
383
467
 
384
468
  def set_call_flags(arg1)
385
- @stream << 47 << arg1
469
+ @stream << 53 << arg1
386
470
  @ip += 2
387
471
  @current_block.add_stack(0, 0)
388
- @instruction = 47
472
+ @instruction = 53
389
473
  end
390
474
 
391
475
  def allow_private
392
- @stream << 48
476
+ @stream << 54
393
477
  @ip += 1
394
478
  @current_block.add_stack(0, 0)
395
- @instruction = 48
479
+ @instruction = 54
396
480
  end
397
481
 
398
482
  def send_method(arg1)
399
- @stream << 49 << arg1
483
+ @stream << 55 << arg1
400
484
  @ip += 2
401
485
  @current_block.add_stack(1, 1)
402
- @instruction = 49
486
+ @instruction = 55
403
487
  end
404
488
 
405
489
  def send_stack(arg1, arg2)
406
- @stream << 50 << arg1 << arg2
490
+ @stream << 56 << arg1 << arg2
407
491
  @ip += 3
408
492
  @current_block.add_stack(arg2+1, 1)
409
- @instruction = 50
493
+ @instruction = 56
410
494
  end
411
495
 
412
496
  def send_stack_with_block(arg1, arg2)
413
- @stream << 51 << arg1 << arg2
497
+ @stream << 57 << arg1 << arg2
414
498
  @ip += 3
415
499
  @current_block.add_stack(arg2+2, 1)
416
- @instruction = 51
500
+ @instruction = 57
417
501
  end
418
502
 
419
503
  def send_stack_with_splat(arg1, arg2)
420
- @stream << 52 << arg1 << arg2
504
+ @stream << 58 << arg1 << arg2
421
505
  @ip += 3
422
506
  @current_block.add_stack(arg2+3, 1)
423
- @instruction = 52
507
+ @instruction = 58
424
508
  end
425
509
 
426
510
  def send_super_stack_with_block(arg1, arg2)
427
- @stream << 53 << arg1 << arg2
511
+ @stream << 59 << arg1 << arg2
428
512
  @ip += 3
429
513
  @current_block.add_stack(arg2+1, 1)
430
- @instruction = 53
514
+ @instruction = 59
431
515
  end
432
516
 
433
517
  def send_super_stack_with_splat(arg1, arg2)
434
- @stream << 54 << arg1 << arg2
518
+ @stream << 60 << arg1 << arg2
435
519
  @ip += 3
436
520
  @current_block.add_stack(arg2+2, 1)
437
- @instruction = 54
521
+ @instruction = 60
438
522
  end
439
523
 
440
524
  def push_block
441
- @stream << 55
525
+ @stream << 61
442
526
  @ip += 1
443
527
  @current_block.add_stack(0, 1)
444
- @instruction = 55
528
+ @instruction = 61
445
529
  end
446
530
 
447
531
  def passed_blockarg(arg1)
448
- @stream << 56 << arg1
532
+ @stream << 62 << arg1
449
533
  @ip += 2
450
534
  @current_block.add_stack(0, 1)
451
- @instruction = 56
535
+ @instruction = 62
452
536
  end
453
537
 
454
538
  def create_block(arg1)
455
539
  arg1 = add_literal arg1
456
540
  @generators << arg1
457
- @stream << 57 << arg1
541
+ @stream << 63 << arg1
458
542
  @ip += 2
459
543
  @current_block.add_stack(0, 1)
460
- @instruction = 57
544
+ @instruction = 63
461
545
  end
462
546
 
463
547
  def cast_for_single_block_arg
464
- @stream << 58
548
+ @stream << 64
465
549
  @ip += 1
466
550
  @current_block.add_stack(0, 1)
467
- @instruction = 58
551
+ @instruction = 64
468
552
  end
469
553
 
470
554
  def cast_for_multi_block_arg
471
- @stream << 59
555
+ @stream << 65
472
556
  @ip += 1
473
557
  @current_block.add_stack(0, 1)
474
- @instruction = 59
558
+ @instruction = 65
475
559
  end
476
560
 
477
561
  def cast_for_splat_block_arg
478
- @stream << 60
562
+ @stream << 66
479
563
  @ip += 1
480
564
  @current_block.add_stack(0, 1)
481
- @instruction = 60
565
+ @instruction = 66
482
566
  end
483
567
 
484
568
  def yield_stack(arg1)
485
- @stream << 61 << arg1
569
+ @stream << 67 << arg1
486
570
  @ip += 2
487
571
  @current_block.add_stack(arg1, 1)
488
- @instruction = 61
572
+ @instruction = 67
489
573
  end
490
574
 
491
575
  def yield_splat(arg1)
492
- @stream << 62 << arg1
576
+ @stream << 68 << arg1
493
577
  @ip += 2
494
578
  @current_block.add_stack(arg1+1, 1)
495
- @instruction = 62
579
+ @instruction = 68
496
580
  end
497
581
 
498
582
  def string_append
499
- @stream << 63
583
+ @stream << 69
500
584
  @ip += 1
501
585
  @current_block.add_stack(2, 1)
502
- @instruction = 63
586
+ @instruction = 69
503
587
  end
504
588
 
505
589
  def string_build(arg1)
506
- @stream << 64 << arg1
590
+ @stream << 70 << arg1
507
591
  @ip += 2
508
592
  @current_block.add_stack(arg1, 1)
509
- @instruction = 64
593
+ @instruction = 70
510
594
  end
511
595
 
512
596
  def string_dup
513
- @stream << 65
597
+ @stream << 71
514
598
  @ip += 1
515
599
  @current_block.add_stack(1, 1)
516
- @instruction = 65
600
+ @instruction = 71
517
601
  end
518
602
 
519
603
  def push_scope
520
- @stream << 66
604
+ @stream << 72
521
605
  @ip += 1
522
606
  @current_block.add_stack(0, 1)
523
- @instruction = 66
607
+ @instruction = 72
524
608
  end
525
609
 
526
610
  def add_scope
527
- @stream << 67
611
+ @stream << 73
528
612
  @ip += 1
529
613
  @current_block.add_stack(1, 0)
530
- @instruction = 67
614
+ @instruction = 73
531
615
  end
532
616
 
533
617
  def push_variables
534
- @stream << 68
618
+ @stream << 74
535
619
  @ip += 1
536
620
  @current_block.add_stack(0, 1)
537
- @instruction = 68
621
+ @instruction = 74
538
622
  end
539
623
 
540
624
  def check_interrupts
541
- @stream << 69
625
+ @stream << 75
542
626
  @ip += 1
543
627
  @current_block.add_stack(0, 0)
544
- @instruction = 69
628
+ @instruction = 75
545
629
  end
546
630
 
547
631
  def yield_debugger
548
- @stream << 70
632
+ @stream << 76
549
633
  @ip += 1
550
634
  @current_block.add_stack(0, 0)
551
- @instruction = 70
635
+ @instruction = 76
552
636
  end
553
637
 
554
638
  def is_nil
555
- @stream << 71
639
+ @stream << 77
556
640
  @ip += 1
557
641
  @current_block.add_stack(1, 1)
558
- @instruction = 71
642
+ @instruction = 77
559
643
  end
560
644
 
561
645
  def check_serial(arg1, arg2)
562
646
  arg1 = find_literal arg1
563
647
  arg2 = Integer(arg2)
564
- @stream << 72 << arg1 << arg2
648
+ @stream << 78 << arg1 << arg2
565
649
  @ip += 3
566
650
  @current_block.add_stack(1, 1)
567
- @instruction = 72
651
+ @instruction = 78
568
652
  end
569
653
 
570
654
  def check_serial_private(arg1, arg2)
571
655
  arg1 = find_literal arg1
572
656
  arg2 = Integer(arg2)
573
- @stream << 73 << arg1 << arg2
657
+ @stream << 79 << arg1 << arg2
574
658
  @ip += 3
575
659
  @current_block.add_stack(1, 1)
576
- @instruction = 73
660
+ @instruction = 79
577
661
  end
578
662
 
579
663
  def push_my_field(arg1)
580
- @stream << 74 << arg1
664
+ @stream << 80 << arg1
581
665
  @ip += 2
582
666
  @current_block.add_stack(0, 1)
583
- @instruction = 74
667
+ @instruction = 80
584
668
  end
585
669
 
586
670
  def store_my_field(arg1)
587
- @stream << 75 << arg1
671
+ @stream << 81 << arg1
588
672
  @ip += 2
589
673
  @current_block.add_stack(1, 1)
590
- @instruction = 75
674
+ @instruction = 81
591
675
  end
592
676
 
593
677
  def kind_of
594
- @stream << 76
678
+ @stream << 82
595
679
  @ip += 1
596
680
  @current_block.add_stack(2, 1)
597
- @instruction = 76
681
+ @instruction = 82
598
682
  end
599
683
 
600
684
  def instance_of
601
- @stream << 77
685
+ @stream << 83
602
686
  @ip += 1
603
687
  @current_block.add_stack(2, 1)
604
- @instruction = 77
688
+ @instruction = 83
605
689
  end
606
690
 
607
691
  def meta_push_neg_1
608
- @stream << 78
692
+ @stream << 84
609
693
  @ip += 1
610
694
  @current_block.add_stack(0, 1)
611
- @instruction = 78
695
+ @instruction = 84
612
696
  end
613
697
 
614
698
  def meta_push_0
615
- @stream << 79
699
+ @stream << 85
616
700
  @ip += 1
617
701
  @current_block.add_stack(0, 1)
618
- @instruction = 79
702
+ @instruction = 85
619
703
  end
620
704
 
621
705
  def meta_push_1
622
- @stream << 80
706
+ @stream << 86
623
707
  @ip += 1
624
708
  @current_block.add_stack(0, 1)
625
- @instruction = 80
709
+ @instruction = 86
626
710
  end
627
711
 
628
712
  def meta_push_2
629
- @stream << 81
713
+ @stream << 87
630
714
  @ip += 1
631
715
  @current_block.add_stack(0, 1)
632
- @instruction = 81
716
+ @instruction = 87
633
717
  end
634
718
 
635
719
  def meta_send_op_plus(arg1)
636
- @stream << 82 << arg1
720
+ @stream << 88 << arg1
637
721
  @ip += 2
638
722
  @current_block.add_stack(2, 1)
639
- @instruction = 82
723
+ @instruction = 88
640
724
  end
641
725
 
642
726
  def meta_send_op_minus(arg1)
643
- @stream << 83 << arg1
727
+ @stream << 89 << arg1
644
728
  @ip += 2
645
729
  @current_block.add_stack(2, 1)
646
- @instruction = 83
730
+ @instruction = 89
647
731
  end
648
732
 
649
733
  def meta_send_op_equal(arg1)
650
- @stream << 84 << arg1
734
+ @stream << 90 << arg1
651
735
  @ip += 2
652
736
  @current_block.add_stack(2, 1)
653
- @instruction = 84
737
+ @instruction = 90
654
738
  end
655
739
 
656
740
  def meta_send_op_lt(arg1)
657
- @stream << 85 << arg1
741
+ @stream << 91 << arg1
658
742
  @ip += 2
659
743
  @current_block.add_stack(2, 1)
660
- @instruction = 85
744
+ @instruction = 91
661
745
  end
662
746
 
663
747
  def meta_send_op_gt(arg1)
664
- @stream << 86 << arg1
748
+ @stream << 92 << arg1
665
749
  @ip += 2
666
750
  @current_block.add_stack(2, 1)
667
- @instruction = 86
751
+ @instruction = 92
668
752
  end
669
753
 
670
754
  def meta_send_op_tequal(arg1)
671
- @stream << 87 << arg1
755
+ @stream << 93 << arg1
672
756
  @ip += 2
673
757
  @current_block.add_stack(2, 1)
674
- @instruction = 87
758
+ @instruction = 93
675
759
  end
676
760
 
677
761
  def meta_send_call(arg1, arg2)
678
- @stream << 88 << arg1 << arg2
762
+ @stream << 94 << arg1 << arg2
679
763
  @ip += 3
680
764
  @current_block.add_stack(arg2+1, 1)
681
- @instruction = 88
765
+ @instruction = 94
682
766
  end
683
767
 
684
768
  def push_my_offset(arg1)
685
- @stream << 89 << arg1
769
+ @stream << 95 << arg1
686
770
  @ip += 2
687
771
  @current_block.add_stack(0, 1)
688
- @instruction = 89
772
+ @instruction = 95
689
773
  end
690
774
 
691
775
  def zsuper(arg1)
692
776
  arg1 = find_literal arg1
693
- @stream << 90 << arg1
777
+ @stream << 96 << arg1
694
778
  @ip += 2
695
779
  @current_block.add_stack(1, 1)
696
- @instruction = 90
780
+ @instruction = 96
697
781
  end
698
782
 
699
783
  def push_block_arg
700
- @stream << 91
784
+ @stream << 97
701
785
  @ip += 1
702
786
  @current_block.add_stack(0, 1)
703
- @instruction = 91
787
+ @instruction = 97
704
788
  end
705
789
 
706
790
  def push_undef
707
- @stream << 92
791
+ @stream << 98
708
792
  @ip += 1
709
793
  @current_block.add_stack(0, 1)
710
- @instruction = 92
794
+ @instruction = 98
711
795
  end
712
796
 
713
797
  def push_stack_local(arg1)
714
- @stream << 93 << arg1
798
+ @stream << 99 << arg1
715
799
  @ip += 2
716
800
  @current_block.add_stack(0, 1)
717
- @instruction = 93
801
+ @instruction = 99
718
802
  end
719
803
 
720
804
  def set_stack_local(arg1)
721
- @stream << 94 << arg1
805
+ @stream << 100 << arg1
722
806
  @ip += 2
723
807
  @current_block.add_stack(1, 1)
724
- @instruction = 94
808
+ @instruction = 100
725
809
  end
726
810
 
727
811
  def push_has_block
728
- @stream << 95
812
+ @stream << 101
729
813
  @ip += 1
730
814
  @current_block.add_stack(0, 1)
731
- @instruction = 95
815
+ @instruction = 101
732
816
  end
733
817
 
734
818
  def push_proc
735
- @stream << 96
819
+ @stream << 102
736
820
  @ip += 1
737
821
  @current_block.add_stack(0, 1)
738
- @instruction = 96
822
+ @instruction = 102
739
823
  end
740
824
 
741
825
  def check_frozen
742
- @stream << 97
826
+ @stream << 103
743
827
  @ip += 1
744
828
  @current_block.add_stack(1, 1)
745
- @instruction = 97
829
+ @instruction = 103
746
830
  end
747
831
 
748
832
  def cast_multi_value
749
- @stream << 98
833
+ @stream << 104
750
834
  @ip += 1
751
835
  @current_block.add_stack(1, 1)
752
- @instruction = 98
836
+ @instruction = 104
753
837
  end
754
838
 
755
839
  def invoke_primitive(arg1, arg2)
756
840
  arg1 = find_literal arg1
757
841
  arg2 = Integer(arg2)
758
- @stream << 99 << arg1 << arg2
842
+ @stream << 105 << arg1 << arg2
759
843
  @ip += 3
760
844
  @current_block.add_stack(arg2, 1)
761
- @instruction = 99
845
+ @instruction = 105
762
846
  end
763
847
 
764
848
  def push_rubinius
765
- @stream << 100
849
+ @stream << 106
766
850
  @ip += 1
767
851
  @current_block.add_stack(0, 1)
768
- @instruction = 100
852
+ @instruction = 106
769
853
  end
770
854
 
771
855
  def call_custom(arg1, arg2)
772
856
  arg1 = find_literal arg1
773
857
  arg2 = Integer(arg2)
774
- @stream << 101 << arg1 << arg2
858
+ @stream << 107 << arg1 << arg2
775
859
  @ip += 3
776
860
  @current_block.add_stack(arg2+1, 1)
777
- @instruction = 101
861
+ @instruction = 107
778
862
  end
779
863
 
780
864
  def meta_to_s(arg1)
781
- @stream << 102 << arg1
865
+ @stream << 108 << arg1
782
866
  @ip += 2
783
867
  @current_block.add_stack(1, 1)
784
- @instruction = 102
868
+ @instruction = 108
785
869
  end
786
870
 
787
871
  def push_type
788
- @stream << 103
872
+ @stream << 109
789
873
  @ip += 1
790
874
  @current_block.add_stack(0, 1)
791
- @instruction = 103
875
+ @instruction = 109
792
876
  end
793
877
 
794
878
  def push_mirror
795
- @stream << 104
879
+ @stream << 110
796
880
  @ip += 1
797
881
  @current_block.add_stack(0, 1)
798
- @instruction = 104
882
+ @instruction = 110
799
883
  end
800
884
 
801
885
  end
@@ -19,132 +19,138 @@ module Rubinius
19
19
  opcode 8, :goto, :stack => [0, 0], :args => [:location], :control_flow => :branch
20
20
  opcode 9, :goto_if_false, :stack => [1, 0], :args => [:location], :control_flow => :branch
21
21
  opcode 10, :goto_if_true, :stack => [1, 0], :args => [:location], :control_flow => :branch
22
- opcode 11, :ret, :stack => [1, 1], :args => [], :control_flow => :return
22
+ opcode 11, :goto_if_nil, :stack => [1, 0], :args => [:location], :control_flow => :branch
23
+ opcode 12, :goto_if_not_nil, :stack => [1, 0], :args => [:location], :control_flow => :branch
24
+ opcode 13, :goto_if_undefined, :stack => [1, 0], :args => [:location], :control_flow => :branch
25
+ opcode 14, :goto_if_not_undefined, :stack => [1, 0], :args => [:location], :control_flow => :branch
26
+ opcode 15, :goto_if_equal, :stack => [2, 0], :args => [:location], :control_flow => :branch
27
+ opcode 16, :goto_if_not_equal, :stack => [2, 0], :args => [:location], :control_flow => :branch
28
+ opcode 17, :ret, :stack => [1, 1], :args => [], :control_flow => :return
23
29
 
24
30
  # Stack manipulations
25
- opcode 12, :swap_stack, :stack => [2, 2], :args => [], :control_flow => :next
26
- opcode 13, :dup_top, :stack => [1, 2], :args => [], :control_flow => :next
27
- opcode 14, :dup_many, :stack => [[0,1], [0, 1, 2]],:args => [:count], :control_flow => :next
28
- opcode 15, :pop, :stack => [1, 0], :args => [], :control_flow => :next
29
- opcode 16, :pop_many, :stack => [[0,1], 0], :args => [:count], :control_flow => :next
30
- opcode 17, :rotate, :stack => [[0,1], [0, 1, 1]],:args => [:count], :control_flow => :next
31
- opcode 18, :move_down, :stack => [[0,1], [0, 1, 1]],:args => [:positions], :control_flow => :next
31
+ opcode 18, :swap_stack, :stack => [2, 2], :args => [], :control_flow => :next
32
+ opcode 19, :dup_top, :stack => [1, 2], :args => [], :control_flow => :next
33
+ opcode 20, :dup_many, :stack => [[0,1], [0, 1, 2]],:args => [:count], :control_flow => :next
34
+ opcode 21, :pop, :stack => [1, 0], :args => [], :control_flow => :next
35
+ opcode 22, :pop_many, :stack => [[0,1], 0], :args => [:count], :control_flow => :next
36
+ opcode 23, :rotate, :stack => [[0,1], [0, 1, 1]],:args => [:count], :control_flow => :next
37
+ opcode 24, :move_down, :stack => [[0,1], [0, 1, 1]],:args => [:positions], :control_flow => :next
32
38
 
33
39
  # Manipulate local variables
34
- opcode 19, :set_local, :stack => [1, 1], :args => [:local], :control_flow => :next
35
- opcode 20, :push_local, :stack => [0, 1], :args => [:local], :control_flow => :next
36
- opcode 21, :push_local_depth, :stack => [0, 1], :args => [:depth, :index], :control_flow => :next
37
- opcode 22, :set_local_depth, :stack => [1, 1], :args => [:depth, :index], :control_flow => :next
38
- opcode 23, :passed_arg, :stack => [0, 1], :args => [:index], :control_flow => :next
40
+ opcode 25, :set_local, :stack => [1, 1], :args => [:local], :control_flow => :next
41
+ opcode 26, :push_local, :stack => [0, 1], :args => [:local], :control_flow => :next
42
+ opcode 27, :push_local_depth, :stack => [0, 1], :args => [:depth, :index], :control_flow => :next
43
+ opcode 28, :set_local_depth, :stack => [1, 1], :args => [:depth, :index], :control_flow => :next
44
+ opcode 29, :passed_arg, :stack => [0, 1], :args => [:index], :control_flow => :next
39
45
 
40
46
  # Manipulate exceptions
41
- opcode 24, :push_current_exception, :stack => [0, 1], :args => [], :control_flow => :next
42
- opcode 25, :clear_exception, :stack => [0, 0], :args => [], :control_flow => :next
43
- opcode 26, :push_exception_state, :stack => [0, 1], :args => [], :control_flow => :next
44
- opcode 27, :restore_exception_state, :stack => [1, 0], :args => [], :control_flow => :next
45
- opcode 28, :raise_exc, :stack => [1, 0], :args => [], :control_flow => :raise
46
- opcode 29, :setup_unwind, :stack => [0, 0], :args => [:ip, :type], :control_flow => :handler
47
- opcode 30, :pop_unwind, :stack => [0, 0], :args => [], :control_flow => :next
48
- opcode 31, :raise_return, :stack => [1, 1], :args => [], :control_flow => :raise
49
- opcode 32, :ensure_return, :stack => [1, 1], :args => [], :control_flow => :raise
50
- opcode 33, :raise_break, :stack => [1, 1], :args => [], :control_flow => :raise
51
- opcode 34, :reraise, :stack => [0, 0], :args => [], :control_flow => :raise
47
+ opcode 30, :push_current_exception, :stack => [0, 1], :args => [], :control_flow => :next
48
+ opcode 31, :clear_exception, :stack => [0, 0], :args => [], :control_flow => :next
49
+ opcode 32, :push_exception_state, :stack => [0, 1], :args => [], :control_flow => :next
50
+ opcode 33, :restore_exception_state, :stack => [1, 0], :args => [], :control_flow => :next
51
+ opcode 34, :raise_exc, :stack => [1, 0], :args => [], :control_flow => :raise
52
+ opcode 35, :setup_unwind, :stack => [0, 0], :args => [:ip, :type], :control_flow => :handler
53
+ opcode 36, :pop_unwind, :stack => [0, 0], :args => [], :control_flow => :next
54
+ opcode 37, :raise_return, :stack => [1, 1], :args => [], :control_flow => :raise
55
+ opcode 38, :ensure_return, :stack => [1, 1], :args => [], :control_flow => :raise
56
+ opcode 39, :raise_break, :stack => [1, 1], :args => [], :control_flow => :raise
57
+ opcode 40, :reraise, :stack => [0, 0], :args => [], :control_flow => :raise
52
58
 
53
59
  # Manipulate arrays
54
- opcode 35, :make_array, :stack => [[0,1], 1], :args => [:count], :control_flow => :next
55
- opcode 36, :cast_array, :stack => [1, 1], :args => [], :control_flow => :next
56
- opcode 37, :shift_array, :stack => [1, 2], :args => [], :control_flow => :next
60
+ opcode 41, :make_array, :stack => [[0,1], 1], :args => [:count], :control_flow => :next
61
+ opcode 42, :cast_array, :stack => [1, 1], :args => [], :control_flow => :next
62
+ opcode 43, :shift_array, :stack => [1, 2], :args => [], :control_flow => :next
57
63
 
58
64
  # Manipulate instance variables
59
- opcode 38, :set_ivar, :stack => [1, 1], :args => [:literal], :control_flow => :next
60
- opcode 39, :push_ivar, :stack => [0, 1], :args => [:literal], :control_flow => :next
65
+ opcode 44, :set_ivar, :stack => [1, 1], :args => [:literal], :control_flow => :next
66
+ opcode 45, :push_ivar, :stack => [0, 1], :args => [:literal], :control_flow => :next
61
67
 
62
68
  # Manipulate constants
63
- opcode 40, :push_const, :stack => [0, 1], :args => [:literal], :control_flow => :next
64
- opcode 41, :set_const, :stack => [1, 1], :args => [:literal], :control_flow => :next
65
- opcode 42, :set_const_at, :stack => [2, 1], :args => [:literal], :control_flow => :next
66
- opcode 43, :find_const, :stack => [1, 1], :args => [:literal], :control_flow => :next
67
- opcode 44, :push_cpath_top, :stack => [0, 1], :args => [], :control_flow => :next
68
- opcode 45, :push_const_fast, :stack => [0, 1], :args => [:literal], :control_flow => :next
69
- opcode 46, :find_const_fast, :stack => [1, 1], :args => [:literal], :control_flow => :next
69
+ opcode 46, :push_const, :stack => [0, 1], :args => [:literal], :control_flow => :next
70
+ opcode 47, :set_const, :stack => [1, 1], :args => [:literal], :control_flow => :next
71
+ opcode 48, :set_const_at, :stack => [2, 1], :args => [:literal], :control_flow => :next
72
+ opcode 49, :find_const, :stack => [1, 1], :args => [:literal], :control_flow => :next
73
+ opcode 50, :push_cpath_top, :stack => [0, 1], :args => [], :control_flow => :next
74
+ opcode 51, :push_const_fast, :stack => [0, 1], :args => [:literal], :control_flow => :next
75
+ opcode 52, :find_const_fast, :stack => [1, 1], :args => [:literal], :control_flow => :next
70
76
 
71
77
  # Send messages
72
- opcode 47, :set_call_flags, :stack => [0, 0], :args => [:flags], :control_flow => :next
73
- opcode 48, :allow_private, :stack => [0, 0], :args => [], :control_flow => :next
74
- opcode 49, :send_method, :stack => [1, 1], :args => [:literal], :control_flow => :send
75
- opcode 50, :send_stack, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
76
- opcode 51, :send_stack_with_block, :stack => [[2,2], 1], :args => [:literal, :count], :control_flow => :send
78
+ opcode 53, :set_call_flags, :stack => [0, 0], :args => [:flags], :control_flow => :next
79
+ opcode 54, :allow_private, :stack => [0, 0], :args => [], :control_flow => :next
80
+ opcode 55, :send_method, :stack => [1, 1], :args => [:literal], :control_flow => :send
81
+ opcode 56, :send_stack, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
82
+ opcode 57, :send_stack_with_block, :stack => [[2,2], 1], :args => [:literal, :count], :control_flow => :send
77
83
 
78
84
  CALL_FLAG_CONCAT = 2
79
85
 
80
- opcode 52, :send_stack_with_splat, :stack => [[3,2], 1], :args => [:literal, :count], :control_flow => :send
81
- opcode 53, :send_super_stack_with_block, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
82
- opcode 54, :send_super_stack_with_splat, :stack => [[2,2], 1], :args => [:literal, :count], :control_flow => :send
86
+ opcode 58, :send_stack_with_splat, :stack => [[3,2], 1], :args => [:literal, :count], :control_flow => :send
87
+ opcode 59, :send_super_stack_with_block, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
88
+ opcode 60, :send_super_stack_with_splat, :stack => [[2,2], 1], :args => [:literal, :count], :control_flow => :send
83
89
 
84
90
  # Manipulate blocks
85
- opcode 55, :push_block, :stack => [0, 1], :args => [], :control_flow => :next
86
- opcode 56, :passed_blockarg, :stack => [0, 1], :args => [:count], :control_flow => :next
87
- opcode 57, :create_block, :stack => [0, 1], :args => [:literal], :control_flow => :next
88
- opcode 58, :cast_for_single_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
89
- opcode 59, :cast_for_multi_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
90
- opcode 60, :cast_for_splat_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
91
- opcode 61, :yield_stack, :stack => [[0,1], 1], :args => [:count], :control_flow => :yield
92
- opcode 62, :yield_splat, :stack => [[1,1], 1], :args => [:count], :control_flow => :yield
91
+ opcode 61, :push_block, :stack => [0, 1], :args => [], :control_flow => :next
92
+ opcode 62, :passed_blockarg, :stack => [0, 1], :args => [:count], :control_flow => :next
93
+ opcode 63, :create_block, :stack => [0, 1], :args => [:literal], :control_flow => :next
94
+ opcode 64, :cast_for_single_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
95
+ opcode 65, :cast_for_multi_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
96
+ opcode 66, :cast_for_splat_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
97
+ opcode 67, :yield_stack, :stack => [[0,1], 1], :args => [:count], :control_flow => :yield
98
+ opcode 68, :yield_splat, :stack => [[1,1], 1], :args => [:count], :control_flow => :yield
93
99
 
94
100
  # Manipulate strings
95
- opcode 63, :string_append, :stack => [2, 1], :args => [], :control_flow => :next
96
- opcode 64, :string_build, :stack => [[0,1], 1], :args => [:count], :control_flow => :next
97
- opcode 65, :string_dup, :stack => [1, 1], :args => [], :control_flow => :next
101
+ opcode 69, :string_append, :stack => [2, 1], :args => [], :control_flow => :next
102
+ opcode 70, :string_build, :stack => [[0,1], 1], :args => [:count], :control_flow => :next
103
+ opcode 71, :string_dup, :stack => [1, 1], :args => [], :control_flow => :next
98
104
 
99
105
  # Manipulate scope
100
- opcode 66, :push_scope, :stack => [0, 1], :args => [], :control_flow => :next
101
- opcode 67, :add_scope, :stack => [1, 0], :args => [], :control_flow => :next
102
- opcode 68, :push_variables, :stack => [0, 1], :args => [], :control_flow => :next
106
+ opcode 72, :push_scope, :stack => [0, 1], :args => [], :control_flow => :next
107
+ opcode 73, :add_scope, :stack => [1, 0], :args => [], :control_flow => :next
108
+ opcode 74, :push_variables, :stack => [0, 1], :args => [], :control_flow => :next
103
109
 
104
110
  # Miscellaneous. TODO: better categorize these
105
- opcode 69, :check_interrupts, :stack => [0, 0], :args => [], :control_flow => :next
106
- opcode 70, :yield_debugger, :stack => [0, 0], :args => [], :control_flow => :next
107
- opcode 71, :is_nil, :stack => [1, 1], :args => [], :control_flow => :next
108
- opcode 72, :check_serial, :stack => [1, 1], :args => [:literal, :serial], :control_flow => :next
109
- opcode 73, :check_serial_private, :stack => [1, 1], :args => [:literal, :serial], :control_flow => :next
111
+ opcode 75, :check_interrupts, :stack => [0, 0], :args => [], :control_flow => :next
112
+ opcode 76, :yield_debugger, :stack => [0, 0], :args => [], :control_flow => :next
113
+ opcode 77, :is_nil, :stack => [1, 1], :args => [], :control_flow => :next
114
+ opcode 78, :check_serial, :stack => [1, 1], :args => [:literal, :serial], :control_flow => :next
115
+ opcode 79, :check_serial_private, :stack => [1, 1], :args => [:literal, :serial], :control_flow => :next
110
116
 
111
117
  # Access object fields
112
- opcode 74, :push_my_field, :stack => [0, 1], :args => [:index], :control_flow => :next
113
- opcode 75, :store_my_field, :stack => [1, 1], :args => [:index], :control_flow => :next
118
+ opcode 80, :push_my_field, :stack => [0, 1], :args => [:index], :control_flow => :next
119
+ opcode 81, :store_my_field, :stack => [1, 1], :args => [:index], :control_flow => :next
114
120
 
115
121
  # Type checks
116
- opcode 76, :kind_of, :stack => [2, 1], :args => [], :control_flow => :next
117
- opcode 77, :instance_of, :stack => [2, 1], :args => [], :control_flow => :next
122
+ opcode 82, :kind_of, :stack => [2, 1], :args => [], :control_flow => :next
123
+ opcode 83, :instance_of, :stack => [2, 1], :args => [], :control_flow => :next
118
124
 
119
125
  # Optimizations
120
- opcode 78, :meta_push_neg_1, :stack => [0, 1], :args => [], :control_flow => :next
121
- opcode 79, :meta_push_0, :stack => [0, 1], :args => [], :control_flow => :next
122
- opcode 80, :meta_push_1, :stack => [0, 1], :args => [], :control_flow => :next
123
- opcode 81, :meta_push_2, :stack => [0, 1], :args => [], :control_flow => :next
124
- opcode 82, :meta_send_op_plus, :stack => [2, 1], :args => [:literal], :control_flow => :send
125
- opcode 83, :meta_send_op_minus, :stack => [2, 1], :args => [:literal], :control_flow => :send
126
- opcode 84, :meta_send_op_equal, :stack => [2, 1], :args => [:literal], :control_flow => :send
127
- opcode 85, :meta_send_op_lt, :stack => [2, 1], :args => [:literal], :control_flow => :next
128
- opcode 86, :meta_send_op_gt, :stack => [2, 1], :args => [:literal], :control_flow => :next
129
- opcode 87, :meta_send_op_tequal, :stack => [2, 1], :args => [:literal], :control_flow => :send
130
- opcode 88, :meta_send_call, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
126
+ opcode 84, :meta_push_neg_1, :stack => [0, 1], :args => [], :control_flow => :next
127
+ opcode 85, :meta_push_0, :stack => [0, 1], :args => [], :control_flow => :next
128
+ opcode 86, :meta_push_1, :stack => [0, 1], :args => [], :control_flow => :next
129
+ opcode 87, :meta_push_2, :stack => [0, 1], :args => [], :control_flow => :next
130
+ opcode 88, :meta_send_op_plus, :stack => [2, 1], :args => [:literal], :control_flow => :send
131
+ opcode 89, :meta_send_op_minus, :stack => [2, 1], :args => [:literal], :control_flow => :send
132
+ opcode 90, :meta_send_op_equal, :stack => [2, 1], :args => [:literal], :control_flow => :send
133
+ opcode 91, :meta_send_op_lt, :stack => [2, 1], :args => [:literal], :control_flow => :next
134
+ opcode 92, :meta_send_op_gt, :stack => [2, 1], :args => [:literal], :control_flow => :next
135
+ opcode 93, :meta_send_op_tequal, :stack => [2, 1], :args => [:literal], :control_flow => :send
136
+ opcode 94, :meta_send_call, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
131
137
 
132
138
  # More misc
133
- opcode 89, :push_my_offset, :stack => [0, 1], :args => [:index], :control_flow => :next
134
- opcode 90, :zsuper, :stack => [1, 1], :args => [:literal], :control_flow => :next
135
- opcode 91, :push_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
136
- opcode 92, :push_undef, :stack => [0, 1], :args => [], :control_flow => :next
137
- opcode 93, :push_stack_local, :stack => [0, 1], :args => [:which], :control_flow => :next
138
- opcode 94, :set_stack_local, :stack => [1, 1], :args => [:which], :control_flow => :next
139
- opcode 95, :push_has_block, :stack => [0, 1], :args => [], :control_flow => :next
140
- opcode 96, :push_proc, :stack => [0, 1], :args => [], :control_flow => :next
141
- opcode 97, :check_frozen, :stack => [1, 1], :args => [], :control_flow => :next
142
- opcode 98, :cast_multi_value, :stack => [1, 1], :args => [], :control_flow => :next
143
- opcode 99, :invoke_primitive, :stack => [[0,2], 1], :args => [:literal, :count], :control_flow => :next
144
- opcode 100, :push_rubinius, :stack => [0, 1], :args => [], :control_flow => :next
145
- opcode 101, :call_custom, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
146
- opcode 102, :meta_to_s, :stack => [1, 1], :args => [:literal], :control_flow => :send
147
- opcode 103, :push_type, :stack => [0, 1], :args => [], :control_flow => :next
148
- opcode 104, :push_mirror, :stack => [0, 1], :args => [], :control_flow => :next
139
+ opcode 95, :push_my_offset, :stack => [0, 1], :args => [:index], :control_flow => :next
140
+ opcode 96, :zsuper, :stack => [1, 1], :args => [:literal], :control_flow => :next
141
+ opcode 97, :push_block_arg, :stack => [0, 1], :args => [], :control_flow => :next
142
+ opcode 98, :push_undef, :stack => [0, 1], :args => [], :control_flow => :next
143
+ opcode 99, :push_stack_local, :stack => [0, 1], :args => [:which], :control_flow => :next
144
+ opcode 100, :set_stack_local, :stack => [1, 1], :args => [:which], :control_flow => :next
145
+ opcode 101, :push_has_block, :stack => [0, 1], :args => [], :control_flow => :next
146
+ opcode 102, :push_proc, :stack => [0, 1], :args => [], :control_flow => :next
147
+ opcode 103, :check_frozen, :stack => [1, 1], :args => [], :control_flow => :next
148
+ opcode 104, :cast_multi_value, :stack => [1, 1], :args => [], :control_flow => :next
149
+ opcode 105, :invoke_primitive, :stack => [[0,2], 1], :args => [:literal, :count], :control_flow => :next
150
+ opcode 106, :push_rubinius, :stack => [0, 1], :args => [], :control_flow => :next
151
+ opcode 107, :call_custom, :stack => [[1,2], 1], :args => [:literal, :count], :control_flow => :send
152
+ opcode 108, :meta_to_s, :stack => [1, 1], :args => [:literal], :control_flow => :send
153
+ opcode 109, :push_type, :stack => [0, 1], :args => [], :control_flow => :next
154
+ opcode 110, :push_mirror, :stack => [0, 1], :args => [], :control_flow => :next
149
155
  end
150
156
  end
@@ -1,5 +1,5 @@
1
1
  module CodeTools
2
2
  class Compiler
3
- VERSION = "2.2.1"
3
+ VERSION = "2.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubinius-compiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Shirai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-24 00:00:00.000000000 Z
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler