rubinius-compiler 1.0.1

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