rubinius-compiler 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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