1/******************************** -*- C -*- **************************** 2 * 3 * Byte Code definitions. 4 * 5 * 6 ***********************************************************************/ 7 8/*********************************************************************** 9 * 10 * Copyright 2003, 2006 Free Software Foundation, Inc. 11 * Written by Paolo Bonzini. 12 * 13 * This file is part of GNU Smalltalk. 14 * 15 * GNU Smalltalk is free software; you can redistribute it and/or modify it 16 * under the terms of the GNU General Public License as published by the Free 17 * Software Foundation; either version 2, or (at your option) any later 18 * version. 19 * 20 * Linking GNU Smalltalk statically or dynamically with other modules is 21 * making a combined work based on GNU Smalltalk. Thus, the terms and 22 * conditions of the GNU General Public License cover the whole 23 * combination. 24 * 25 * In addition, as a special exception, the Free Software Foundation 26 * give you permission to combine GNU Smalltalk with free software 27 * programs or libraries that are released under the GNU LGPL and with 28 * independent programs running under the GNU Smalltalk virtual machine. 29 * 30 * You may copy and distribute such a system following the terms of the 31 * GNU GPL for GNU Smalltalk and the licenses of the other code 32 * concerned, provided that you include the source code of that other 33 * code when and as the GNU GPL requires distribution of source code. 34 * 35 * Note that people who make modified versions of GNU Smalltalk are not 36 * obligated to grant this special exception for their modified 37 * versions; it is their choice whether to do so. The GNU General 38 * Public License gives permission to release a modified version without 39 * this exception; this exception also makes it possible to release a 40 * modified version which carries forward this exception. 41 * 42 * GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT 43 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 44 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 45 * more details. 46 * 47 * You should have received a copy of the GNU General Public License along with 48 * GNU Smalltalk; see the file COPYING. If not, write to the Free Software 49 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 50 * 51 ***********************************************************************/ 52 53/* This is C code which is wrapped within patterns; the patterns can 54 be BEGIN/END a la awk, numbers, or ranges of numbers separated by 55 ``..''. Patterns don't fall through, unlike C's switch statements. 56 57 There are special keywords: extract advances the instruction 58 pointer and reads bits from it; dispatch goes to the named section 59 of the MATCH_BYTECODES occurrence; break gets out of the 60 MATCH_BYTECODES block; continue matches the next bytecode without 61 executing anything in the MATCH_BYTECODES occurrence. 62 63 In awk tradition, we also have a couple of predefined variables 64 whose name is in uppercase... :-) these are IP which is the current 65 instruction pointer (including the bytecodes that were dissected 66 with extract), and IP0 which is the value of the instruction 67 pointer on entrance to MATCH_BYTECODES (it is never changed, not 68 even by continue statements). You can see them used in the 69 jump patterns below (40..43) */ 70 71/* Define the bytecodes and their arguments */ 72SEND_ARITH (n); 73SEND_SPECIAL (n); 74SEND (n, super, num_args); 75SEND_IMMEDIATE (n, super); 76PUSH_TEMPORARY_VARIABLE (n); 77PUSH_OUTER_TEMP (n, scopes); 78PUSH_LIT_VARIABLE (n); 79PUSH_RECEIVER_VARIABLE (n); 80STORE_TEMPORARY_VARIABLE (n); 81STORE_OUTER_TEMP (n, scopes); 82STORE_LIT_VARIABLE (n); 83STORE_RECEIVER_VARIABLE (n); 84JUMP (ofs); 85POP_JUMP_TRUE (ofs); 86POP_JUMP_FALSE (ofs); 87PUSH_INTEGER (n); 88PUSH_SELF; 89PUSH_SPECIAL (n); 90PUSH_LIT_CONSTANT (n); 91POP_INTO_NEW_STACKTOP (n); 92POP_STACK_TOP; 93MAKE_DIRTY_BLOCK; 94RETURN_METHOD_STACK_TOP; 95RETURN_CONTEXT_STACK_TOP; 96DUP_STACK_TOP; 97EXIT_INTERPRETER; 98LINE_NUMBER_BYTECODE (n); 99INVALID (opcode, arg); 100 101/* Automatically generated by superops. Do not modify past this line! */ 102/* PLUS_SPECIAL(*) */ 1030 { 104 extract opcode (8), arg_lsb (8); 105 dispatch SEND_ARITH (0); 106} 107 108/* MINUS_SPECIAL(*) */ 1091 { 110 extract opcode (8), arg_lsb (8); 111 dispatch SEND_ARITH (1); 112} 113 114/* LESS_THAN_SPECIAL(*) */ 1152 { 116 extract opcode (8), arg_lsb (8); 117 dispatch SEND_ARITH (2); 118} 119 120/* GREATER_THAN_SPECIAL(*) */ 1213 { 122 extract opcode (8), arg_lsb (8); 123 dispatch SEND_ARITH (3); 124} 125 126/* LESS_EQUAL_SPECIAL(*) */ 1274 { 128 extract opcode (8), arg_lsb (8); 129 dispatch SEND_ARITH (4); 130} 131 132/* GREATER_EQUAL_SPECIAL(*) */ 1335 { 134 extract opcode (8), arg_lsb (8); 135 dispatch SEND_ARITH (5); 136} 137 138/* EQUAL_SPECIAL(*) */ 1396 { 140 extract opcode (8), arg_lsb (8); 141 dispatch SEND_ARITH (6); 142} 143 144/* NOT_EQUAL_SPECIAL(*) */ 1457 { 146 extract opcode (8), arg_lsb (8); 147 dispatch SEND_ARITH (7); 148} 149 150/* TIMES_SPECIAL(*) */ 1518 { 152 extract opcode (8), arg_lsb (8); 153 dispatch SEND_ARITH (8); 154} 155 156/* DIVIDE_SPECIAL(*) */ 1579 { 158 extract opcode (8), arg_lsb (8); 159 dispatch SEND_ARITH (9); 160} 161 162/* REMAINDER_SPECIAL(*) */ 16310 { 164 extract opcode (8), arg_lsb (8); 165 dispatch SEND_ARITH (10); 166} 167 168/* BIT_XOR_SPECIAL(*) */ 16911 { 170 extract opcode (8), arg_lsb (8); 171 dispatch SEND_ARITH (11); 172} 173 174/* BIT_SHIFT_SPECIAL(*) */ 17512 { 176 extract opcode (8), arg_lsb (8); 177 dispatch SEND_ARITH (12); 178} 179 180/* INTEGER_DIVIDE_SPECIAL(*) */ 18113 { 182 extract opcode (8), arg_lsb (8); 183 dispatch SEND_ARITH (13); 184} 185 186/* BIT_AND_SPECIAL(*) */ 18714 { 188 extract opcode (8), arg_lsb (8); 189 dispatch SEND_ARITH (14); 190} 191 192/* BIT_OR_SPECIAL(*) */ 19315 { 194 extract opcode (8), arg_lsb (8); 195 dispatch SEND_ARITH (15); 196} 197 198/* AT_SPECIAL(*) */ 19916 { 200 extract opcode (8), arg_lsb (8); 201 dispatch SEND_SPECIAL (0); 202} 203 204/* AT_PUT_SPECIAL(*) */ 20517 { 206 extract opcode (8), arg_lsb (8); 207 dispatch SEND_SPECIAL (1); 208} 209 210/* SIZE_SPECIAL(*) */ 21118 { 212 extract opcode (8), arg_lsb (8); 213 dispatch SEND_SPECIAL (2); 214} 215 216/* CLASS_SPECIAL(*) */ 21719 { 218 extract opcode (8), arg_lsb (8); 219 dispatch SEND_SPECIAL (3); 220} 221 222/* IS_NIL_SPECIAL(*) */ 22320 { 224 extract opcode (8), arg_lsb (8); 225 dispatch SEND_SPECIAL (4); 226} 227 228/* NOT_NIL_SPECIAL(*) */ 22921 { 230 extract opcode (8), arg_lsb (8); 231 dispatch SEND_SPECIAL (5); 232} 233 234/* VALUE_SPECIAL(*) */ 23522 { 236 extract opcode (8), arg_lsb (8); 237 dispatch SEND_SPECIAL (6); 238} 239 240/* VALUE_COLON_SPECIAL(*) */ 24123 { 242 extract opcode (8), arg_lsb (8); 243 dispatch SEND_SPECIAL (7); 244} 245 246/* SAME_OBJECT_SPECIAL(*) */ 24724 { 248 extract opcode (8), arg_lsb (8); 249 dispatch SEND_SPECIAL (8); 250} 251 252/* JAVA_AS_INT_SPECIAL(*) */ 25325 { 254 extract opcode (8), arg_lsb (8); 255 dispatch SEND_SPECIAL (9); 256} 257 258/* JAVA_AS_LONG_SPECIAL(*) */ 25926 { 260 extract opcode (8), arg_lsb (8); 261 dispatch SEND_SPECIAL (10); 262} 263 264/* invalid bytecode */ 26527 { 266 extract opcode (8), arg_lsb (8); 267 dispatch INVALID (27, arg | arg_lsb); 268} 269 270/* SEND(*) */ 27128 { 272 extract opcode (8), arg_lsb (8); 273 dispatch SEND (arg >> 8, 0, arg_lsb); 274} 275 276/* SEND_SUPER(*) */ 27729 { 278 extract opcode (8), arg_lsb (8); 279 dispatch SEND (arg >> 8, 1, arg_lsb); 280} 281 282/* SEND_IMMEDIATE(*) */ 28330 { 284 extract opcode (8), arg_lsb (8); 285 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 286} 287 288/* SEND_SUPER_IMMEDIATE(*) */ 28931 { 290 extract opcode (8), arg_lsb (8); 291 dispatch SEND_IMMEDIATE (arg | arg_lsb, 1); 292} 293 294/* PUSH_TEMPORARY_VARIABLE(*) */ 29532 { 296 extract opcode (8), arg_lsb (8); 297 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 298} 299 300/* PUSH_OUTER_TEMP(*) */ 30133 { 302 extract opcode (8), arg_lsb (8); 303 dispatch PUSH_OUTER_TEMP (arg >> 8, arg_lsb); 304} 305 306/* PUSH_LIT_VARIABLE(*) */ 30734 { 308 extract opcode (8), arg_lsb (8); 309 dispatch PUSH_LIT_VARIABLE (arg | arg_lsb); 310} 311 312/* PUSH_RECEIVER_VARIABLE(*) */ 31335 { 314 extract opcode (8), arg_lsb (8); 315 dispatch PUSH_RECEIVER_VARIABLE (arg | arg_lsb); 316} 317 318/* STORE_TEMPORARY_VARIABLE(*) */ 31936 { 320 extract opcode (8), arg_lsb (8); 321 dispatch STORE_TEMPORARY_VARIABLE (arg | arg_lsb); 322} 323 324/* STORE_OUTER_TEMP(*) */ 32537 { 326 extract opcode (8), arg_lsb (8); 327 dispatch STORE_OUTER_TEMP (arg >> 8, arg_lsb); 328} 329 330/* STORE_LIT_VARIABLE(*) */ 33138 { 332 extract opcode (8), arg_lsb (8); 333 dispatch STORE_LIT_VARIABLE (arg | arg_lsb); 334} 335 336/* STORE_RECEIVER_VARIABLE(*) */ 33739 { 338 extract opcode (8), arg_lsb (8); 339 dispatch STORE_RECEIVER_VARIABLE (arg | arg_lsb); 340} 341 342/* JUMP_BACK(*) */ 34340 { 344 extract opcode (8), arg_lsb (8); 345 dispatch JUMP (IP - IP0 - (arg | arg_lsb)); 346} 347 348/* JUMP(*) */ 34941 { 350 extract opcode (8), arg_lsb (8); 351 dispatch JUMP (IP - IP0 + (arg | arg_lsb)); 352} 353 354/* POP_JUMP_TRUE(*) */ 35542 { 356 extract opcode (8), arg_lsb (8); 357 dispatch POP_JUMP_TRUE (IP - IP0 + (arg | arg_lsb)); 358} 359 360/* POP_JUMP_FALSE(*) */ 36143 { 362 extract opcode (8), arg_lsb (8); 363 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 364} 365 366/* PUSH_INTEGER(*) */ 36744 { 368 extract opcode (8), arg_lsb (8); 369 dispatch PUSH_INTEGER (arg | arg_lsb); 370} 371 372/* PUSH_SPECIAL(*) */ 37345 { 374 extract opcode (8), arg_lsb (8); 375 dispatch PUSH_SPECIAL (arg | arg_lsb); 376} 377 378/* PUSH_LIT_CONSTANT(*) */ 37946 { 380 extract opcode (8), arg_lsb (8); 381 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 382} 383 384/* POP_INTO_NEW_STACKTOP(*) */ 38547 { 386 extract opcode (8), arg_lsb (8); 387 dispatch POP_INTO_NEW_STACKTOP (arg | arg_lsb); 388} 389 390/* POP_STACK_TOP(*) */ 39148 { 392 extract opcode (8), arg_lsb (8); 393 dispatch POP_STACK_TOP; 394} 395 396/* MAKE_DIRTY_BLOCK(*) */ 39749 { 398 extract opcode (8), arg_lsb (8); 399 dispatch MAKE_DIRTY_BLOCK; 400} 401 402/* RETURN_METHOD_STACK_TOP(*) */ 40350 { 404 extract opcode (8), arg_lsb (8); 405 dispatch RETURN_METHOD_STACK_TOP; 406} 407 408/* RETURN_CONTEXT_STACK_TOP(*) */ 40951 { 410 extract opcode (8), arg_lsb (8); 411 dispatch RETURN_CONTEXT_STACK_TOP; 412} 413 414/* DUP_STACK_TOP(*) */ 41552 { 416 extract opcode (8), arg_lsb (8); 417 dispatch DUP_STACK_TOP; 418} 419 420/* EXIT_INTERPRETER(*) */ 42153 { 422 extract opcode (8), arg_lsb (8); 423 dispatch EXIT_INTERPRETER; 424} 425 426/* LINE_NUMBER_BYTECODE(*) */ 42754 { 428 extract opcode (8), arg_lsb (8); 429 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 430} 431 432/* EXT_BYTE(*) */ 43355 { 434 extract opcode (8), arg_lsb (8); 435 arg = (arg | arg_lsb) << 8; 436 continue; 437} 438 439/* PUSH_SELF(*) */ 44056 { 441 extract opcode (8), arg_lsb (8); 442 dispatch PUSH_SELF; 443} 444 445/* invalid bytecode */ 44657 { 447 extract opcode (8), arg_lsb (8); 448 dispatch INVALID (57, arg | arg_lsb); 449} 450 451/* invalid bytecode */ 45258 { 453 extract opcode (8), arg_lsb (8); 454 dispatch INVALID (58, arg | arg_lsb); 455} 456 457/* invalid bytecode */ 45859 { 459 extract opcode (8), arg_lsb (8); 460 dispatch INVALID (59, arg | arg_lsb); 461} 462 463/* invalid bytecode */ 46460 { 465 extract opcode (8), arg_lsb (8); 466 dispatch INVALID (60, arg | arg_lsb); 467} 468 469/* invalid bytecode */ 47061 { 471 extract opcode (8), arg_lsb (8); 472 dispatch INVALID (61, arg | arg_lsb); 473} 474 475/* invalid bytecode */ 47662 { 477 extract opcode (8), arg_lsb (8); 478 dispatch INVALID (62, arg | arg_lsb); 479} 480 481/* invalid bytecode */ 48263 { 483 extract opcode (8), arg_lsb (8); 484 dispatch INVALID (63, arg | arg_lsb); 485} 486 487/* EXT_BYTE(*) 488 SEND(1) */ 48964 { 490 extract opcode (8), arg_lsb (8); 491 dispatch SEND (arg | arg_lsb, 0, 1); 492} 493 494/* EXT_BYTE(*) 495 SEND(0) */ 49665 { 497 extract opcode (8), arg_lsb (8); 498 dispatch SEND (arg | arg_lsb, 0, 0); 499} 500 501/* PUSH_SELF(0) 502 RETURN_CONTEXT_STACK_TOP(*) */ 50366 { 504 extract opcode (8), arg_lsb (8); 505 dispatch PUSH_SELF; 506 dispatch RETURN_CONTEXT_STACK_TOP; 507} 508 509/* LINE_NUMBER_BYTECODE(*) 510 PUSH_SELF(0) */ 51167 { 512 extract opcode (8), arg_lsb (8); 513 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 514 dispatch PUSH_SELF; 515} 516 517/* LINE_NUMBER_BYTECODE(*) 518 POP_STACK_TOP(0) */ 51968 { 520 extract opcode (8), arg_lsb (8); 521 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 522 dispatch POP_STACK_TOP; 523} 524 525/* LINE_NUMBER_BYTECODE(*) 526 PUSH_TEMPORARY_VARIABLE(0) */ 52769 { 528 extract opcode (8), arg_lsb (8); 529 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 530 dispatch PUSH_TEMPORARY_VARIABLE (0); 531} 532 533/* PUSH_LIT_CONSTANT(*) 534 MAKE_DIRTY_BLOCK(0) */ 53570 { 536 extract opcode (8), arg_lsb (8); 537 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 538 dispatch MAKE_DIRTY_BLOCK; 539} 540 541/* EXT_BYTE(*) 542 SEND(2) */ 54371 { 544 extract opcode (8), arg_lsb (8); 545 dispatch SEND (arg | arg_lsb, 0, 2); 546} 547 548/* POP_STACK_TOP(0) 549 DUP_STACK_TOP(*) */ 55072 { 551 extract opcode (8), arg_lsb (8); 552 dispatch POP_STACK_TOP; 553 dispatch DUP_STACK_TOP; 554} 555 556/* PUSH_TEMPORARY_VARIABLE(0) 557 SEND_IMMEDIATE(*) */ 55873 { 559 extract opcode (8), arg_lsb (8); 560 dispatch PUSH_TEMPORARY_VARIABLE (0); 561 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 562} 563 564/* PUSH_SELF(0) 565 EXT_BYTE(*) 566 SEND(0) */ 56774 { 568 extract opcode (8), arg_lsb (8); 569 dispatch PUSH_SELF; 570 dispatch SEND (arg | arg_lsb, 0, 0); 571} 572 573/* PUSH_SPECIAL(*) 574 RETURN_CONTEXT_STACK_TOP(0) */ 57575 { 576 extract opcode (8), arg_lsb (8); 577 dispatch PUSH_SPECIAL (arg | arg_lsb); 578 dispatch RETURN_CONTEXT_STACK_TOP; 579} 580 581/* PUSH_SELF(0) 582 SEND_IMMEDIATE(*) */ 58376 { 584 extract opcode (8), arg_lsb (8); 585 dispatch PUSH_SELF; 586 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 587} 588 589/* EXT_BYTE(*) 590 PUSH_OUTER_TEMP(1) */ 59177 { 592 extract opcode (8), arg_lsb (8); 593 dispatch PUSH_OUTER_TEMP (arg | arg_lsb, 1); 594} 595 596/* STORE_TEMPORARY_VARIABLE(*) 597 POP_STACK_TOP(0) */ 59878 { 599 extract opcode (8), arg_lsb (8); 600 dispatch STORE_TEMPORARY_VARIABLE (arg | arg_lsb); 601 dispatch POP_STACK_TOP; 602} 603 604/* PUSH_SELF(0) 605 PUSH_TEMPORARY_VARIABLE(*) */ 60679 { 607 extract opcode (8), arg_lsb (8); 608 dispatch PUSH_SELF; 609 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 610} 611 612/* STORE_RECEIVER_VARIABLE(*) 613 PUSH_SELF(0) 614 RETURN_CONTEXT_STACK_TOP(0) */ 61580 { 616 extract opcode (8), arg_lsb (8); 617 dispatch STORE_RECEIVER_VARIABLE (arg | arg_lsb); 618 dispatch PUSH_SELF; 619 dispatch RETURN_CONTEXT_STACK_TOP; 620} 621 622/* PUSH_INTEGER(*) 623 PLUS_SPECIAL(0) */ 62481 { 625 extract opcode (8), arg_lsb (8); 626 dispatch PUSH_INTEGER (arg | arg_lsb); 627 dispatch SEND_ARITH (0); 628} 629 630/* LINE_NUMBER_BYTECODE(*) 631 PUSH_LIT_VARIABLE(0) */ 63282 { 633 extract opcode (8), arg_lsb (8); 634 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 635 dispatch PUSH_LIT_VARIABLE (0); 636} 637 638/* PUSH_TEMPORARY_VARIABLE(0) 639 PUSH_TEMPORARY_VARIABLE(*) */ 64083 { 641 extract opcode (8), arg_lsb (8); 642 dispatch PUSH_TEMPORARY_VARIABLE (0); 643 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 644} 645 646/* PUSH_TEMPORARY_VARIABLE(0) 647 SEND(*) */ 64884 { 649 extract opcode (8), arg_lsb (8); 650 dispatch PUSH_TEMPORARY_VARIABLE (0); 651 dispatch SEND (arg >> 8, 0, arg_lsb); 652} 653 654/* LINE_NUMBER_BYTECODE(*) 655 PUSH_TEMPORARY_VARIABLE(1) */ 65685 { 657 extract opcode (8), arg_lsb (8); 658 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 659 dispatch PUSH_TEMPORARY_VARIABLE (1); 660} 661 662/* IS_NIL_SPECIAL(0) 663 POP_JUMP_FALSE(*) */ 66486 { 665 extract opcode (8), arg_lsb (8); 666 dispatch SEND_SPECIAL (4); 667 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 668} 669 670/* PUSH_INTEGER(*) 671 EQUAL_SPECIAL(0) */ 67287 { 673 extract opcode (8), arg_lsb (8); 674 dispatch PUSH_INTEGER (arg | arg_lsb); 675 dispatch SEND_ARITH (6); 676} 677 678/* EXT_BYTE(*) 679 SEND(3) */ 68088 { 681 extract opcode (8), arg_lsb (8); 682 dispatch SEND (arg | arg_lsb, 0, 3); 683} 684 685/* PUSH_TEMPORARY_VARIABLE(0) 686 EXT_BYTE(*) 687 SEND(1) */ 68889 { 689 extract opcode (8), arg_lsb (8); 690 dispatch PUSH_TEMPORARY_VARIABLE (0); 691 dispatch SEND (arg | arg_lsb, 0, 1); 692} 693 694/* LINE_NUMBER_BYTECODE(*) 695 PUSH_SELF(0) 696 SEND(0) */ 69790 { 698 extract opcode (8), arg_lsb (8); 699 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 700 dispatch PUSH_SELF; 701 dispatch SEND (0, 0, 0); 702} 703 704/* PUSH_TEMPORARY_VARIABLE(*) 705 RETURN_CONTEXT_STACK_TOP(0) */ 70691 { 707 extract opcode (8), arg_lsb (8); 708 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 709 dispatch RETURN_CONTEXT_STACK_TOP; 710} 711 712/* PUSH_LIT_CONSTANT(*) 713 SEND_IMMEDIATE(36) */ 71492 { 715 extract opcode (8), arg_lsb (8); 716 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 717 dispatch SEND_IMMEDIATE (36, 0); 718} 719 720/* SAME_OBJECT_SPECIAL(0) 721 POP_JUMP_FALSE(*) */ 72293 { 723 extract opcode (8), arg_lsb (8); 724 dispatch SEND_SPECIAL (8); 725 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 726} 727 728/* PUSH_LIT_CONSTANT(*) 729 EXT_BYTE(1) 730 SEND(1) */ 73194 { 732 extract opcode (8), arg_lsb (8); 733 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 734 dispatch SEND (1, 0, 1); 735} 736 737/* LINE_NUMBER_BYTECODE(*) 738 POP_STACK_TOP(0) 739 PUSH_SELF(0) */ 74095 { 741 extract opcode (8), arg_lsb (8); 742 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 743 dispatch POP_STACK_TOP; 744 dispatch PUSH_SELF; 745} 746 747/* POP_STACK_TOP(0) 748 DUP_STACK_TOP(0) 749 LINE_NUMBER_BYTECODE(*) */ 75096 { 751 extract opcode (8), arg_lsb (8); 752 dispatch POP_STACK_TOP; 753 dispatch DUP_STACK_TOP; 754 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 755} 756 757/* PUSH_TEMPORARY_VARIABLE(0) 758 EXT_BYTE(*) 759 SEND(0) */ 76097 { 761 extract opcode (8), arg_lsb (8); 762 dispatch PUSH_TEMPORARY_VARIABLE (0); 763 dispatch SEND (arg | arg_lsb, 0, 0); 764} 765 766/* PUSH_TEMPORARY_VARIABLE(1) 767 SEND_IMMEDIATE(*) */ 76898 { 769 extract opcode (8), arg_lsb (8); 770 dispatch PUSH_TEMPORARY_VARIABLE (1); 771 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 772} 773 774/* PUSH_LIT_CONSTANT(*) 775 EQUAL_SPECIAL(0) */ 77699 { 777 extract opcode (8), arg_lsb (8); 778 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 779 dispatch SEND_ARITH (6); 780} 781 782/* PUSH_INTEGER(*) 783 MINUS_SPECIAL(0) */ 784100 { 785 extract opcode (8), arg_lsb (8); 786 dispatch PUSH_INTEGER (arg | arg_lsb); 787 dispatch SEND_ARITH (1); 788} 789 790/* DUP_STACK_TOP(0) 791 POP_JUMP_FALSE(*) */ 792101 { 793 extract opcode (8), arg_lsb (8); 794 dispatch DUP_STACK_TOP; 795 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 796} 797 798/* POP_STACK_TOP(0) 799 LINE_NUMBER_BYTECODE(*) */ 800102 { 801 extract opcode (8), arg_lsb (8); 802 dispatch POP_STACK_TOP; 803 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 804} 805 806/* PUSH_INTEGER(*) 807 SEND_IMMEDIATE(32) */ 808103 { 809 extract opcode (8), arg_lsb (8); 810 dispatch PUSH_INTEGER (arg | arg_lsb); 811 dispatch SEND_IMMEDIATE (32, 0); 812} 813 814/* PUSH_TEMPORARY_VARIABLE(*) 815 SIZE_SPECIAL(0) */ 816104 { 817 extract opcode (8), arg_lsb (8); 818 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 819 dispatch SEND_SPECIAL (2); 820} 821 822/* PUSH_SELF(0) 823 SEND(*) */ 824105 { 825 extract opcode (8), arg_lsb (8); 826 dispatch PUSH_SELF; 827 dispatch SEND (arg >> 8, 0, arg_lsb); 828} 829 830/* LINE_NUMBER_BYTECODE(*) 831 PUSH_TEMPORARY_VARIABLE(2) */ 832106 { 833 extract opcode (8), arg_lsb (8); 834 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 835 dispatch PUSH_TEMPORARY_VARIABLE (2); 836} 837 838/* POP_STACK_TOP(0) 839 SEND_IMMEDIATE(*) */ 840107 { 841 extract opcode (8), arg_lsb (8); 842 dispatch POP_STACK_TOP; 843 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 844} 845 846/* PUSH_TEMPORARY_VARIABLE(*) 847 PUSH_INTEGER(1) 848 PLUS_SPECIAL(0) */ 849108 { 850 extract opcode (8), arg_lsb (8); 851 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 852 dispatch PUSH_INTEGER (1); 853 dispatch SEND_ARITH (0); 854} 855 856/* LINE_NUMBER_BYTECODE(*) 857 PUSH_RECEIVER_VARIABLE(0) */ 858109 { 859 extract opcode (8), arg_lsb (8); 860 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 861 dispatch PUSH_RECEIVER_VARIABLE (0); 862} 863 864/* PUSH_LIT_CONSTANT(*) 865 SEND_IMMEDIATE(38) */ 866110 { 867 extract opcode (8), arg_lsb (8); 868 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 869 dispatch SEND_IMMEDIATE (38, 0); 870} 871 872/* PUSH_INTEGER(*) 873 AT_SPECIAL(0) */ 874111 { 875 extract opcode (8), arg_lsb (8); 876 dispatch PUSH_INTEGER (arg | arg_lsb); 877 dispatch SEND_SPECIAL (0); 878} 879 880/* LINE_NUMBER_BYTECODE(*) 881 PUSH_RECEIVER_VARIABLE(1) */ 882112 { 883 extract opcode (8), arg_lsb (8); 884 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 885 dispatch PUSH_RECEIVER_VARIABLE (1); 886} 887 888/* PUSH_TEMPORARY_VARIABLE(0) 889 PUSH_LIT_CONSTANT(*) */ 890113 { 891 extract opcode (8), arg_lsb (8); 892 dispatch PUSH_TEMPORARY_VARIABLE (0); 893 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 894} 895 896/* DUP_STACK_TOP(0) 897 POP_JUMP_TRUE(*) */ 898114 { 899 extract opcode (8), arg_lsb (8); 900 dispatch DUP_STACK_TOP; 901 dispatch POP_JUMP_TRUE (IP - IP0 + (arg | arg_lsb)); 902} 903 904/* PUSH_TEMPORARY_VARIABLE(*) 905 AT_SPECIAL(0) */ 906115 { 907 extract opcode (8), arg_lsb (8); 908 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 909 dispatch SEND_SPECIAL (0); 910} 911 912/* PUSH_TEMPORARY_VARIABLE(2) 913 SEND_IMMEDIATE(*) */ 914116 { 915 extract opcode (8), arg_lsb (8); 916 dispatch PUSH_TEMPORARY_VARIABLE (2); 917 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 918} 919 920/* PUSH_LIT_CONSTANT(*) 921 SEND_IMMEDIATE(49) */ 922117 { 923 extract opcode (8), arg_lsb (8); 924 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 925 dispatch SEND_IMMEDIATE (49, 0); 926} 927 928/* STORE_TEMPORARY_VARIABLE(1) 929 LINE_NUMBER_BYTECODE(*) 930 POP_STACK_TOP(0) */ 931118 { 932 extract opcode (8), arg_lsb (8); 933 dispatch STORE_TEMPORARY_VARIABLE (1); 934 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 935 dispatch POP_STACK_TOP; 936} 937 938/* PUSH_TEMPORARY_VARIABLE(1) 939 EXT_BYTE(*) 940 SEND(1) */ 941119 { 942 extract opcode (8), arg_lsb (8); 943 dispatch PUSH_TEMPORARY_VARIABLE (1); 944 dispatch SEND (arg | arg_lsb, 0, 1); 945} 946 947/* STORE_RECEIVER_VARIABLE(*) 948 POP_STACK_TOP(0) */ 949120 { 950 extract opcode (8), arg_lsb (8); 951 dispatch STORE_RECEIVER_VARIABLE (arg | arg_lsb); 952 dispatch POP_STACK_TOP; 953} 954 955/* EXT_BYTE(*) 956 STORE_OUTER_TEMP(1) */ 957121 { 958 extract opcode (8), arg_lsb (8); 959 dispatch STORE_OUTER_TEMP (arg | arg_lsb, 1); 960} 961 962/* PUSH_INTEGER(*) 963 SEND_IMMEDIATE(96) */ 964122 { 965 extract opcode (8), arg_lsb (8); 966 dispatch PUSH_INTEGER (arg | arg_lsb); 967 dispatch SEND_IMMEDIATE (96, 0); 968} 969 970/* POP_STACK_TOP(0) 971 PUSH_TEMPORARY_VARIABLE(*) */ 972123 { 973 extract opcode (8), arg_lsb (8); 974 dispatch POP_STACK_TOP; 975 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 976} 977 978/* PUSH_RECEIVER_VARIABLE(*) 979 RETURN_CONTEXT_STACK_TOP(0) */ 980124 { 981 extract opcode (8), arg_lsb (8); 982 dispatch PUSH_RECEIVER_VARIABLE (arg | arg_lsb); 983 dispatch RETURN_CONTEXT_STACK_TOP; 984} 985 986/* LINE_NUMBER_BYTECODE(*) 987 POP_STACK_TOP(0) 988 PUSH_TEMPORARY_VARIABLE(1) */ 989125 { 990 extract opcode (8), arg_lsb (8); 991 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 992 dispatch POP_STACK_TOP; 993 dispatch PUSH_TEMPORARY_VARIABLE (1); 994} 995 996/* LINE_NUMBER_BYTECODE(*) 997 POP_STACK_TOP(0) 998 PUSH_TEMPORARY_VARIABLE(0) */ 999126 { 1000 extract opcode (8), arg_lsb (8); 1001 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1002 dispatch POP_STACK_TOP; 1003 dispatch PUSH_TEMPORARY_VARIABLE (0); 1004} 1005 1006/* LINE_NUMBER_BYTECODE(*) 1007 PUSH_SELF(0) 1008 PUSH_LIT_CONSTANT(0) */ 1009127 { 1010 extract opcode (8), arg_lsb (8); 1011 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1012 dispatch PUSH_SELF; 1013 dispatch PUSH_LIT_CONSTANT (0); 1014} 1015 1016/* PUSH_LIT_CONSTANT(*) 1017 RETURN_CONTEXT_STACK_TOP(0) */ 1018128 { 1019 extract opcode (8), arg_lsb (8); 1020 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1021 dispatch RETURN_CONTEXT_STACK_TOP; 1022} 1023 1024/* PUSH_SELF(0) 1025 SIZE_SPECIAL(*) */ 1026129 { 1027 extract opcode (8), arg_lsb (8); 1028 dispatch PUSH_SELF; 1029 dispatch SEND_SPECIAL (2); 1030} 1031 1032/* IS_NIL_SPECIAL(0) 1033 POP_JUMP_TRUE(*) */ 1034130 { 1035 extract opcode (8), arg_lsb (8); 1036 dispatch SEND_SPECIAL (4); 1037 dispatch POP_JUMP_TRUE (IP - IP0 + (arg | arg_lsb)); 1038} 1039 1040/* PUSH_TEMPORARY_VARIABLE(*) 1041 AT_PUT_SPECIAL(0) */ 1042131 { 1043 extract opcode (8), arg_lsb (8); 1044 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1045 dispatch SEND_SPECIAL (1); 1046} 1047 1048/* LINE_NUMBER_BYTECODE(*) 1049 PUSH_LIT_VARIABLE(1) */ 1050132 { 1051 extract opcode (8), arg_lsb (8); 1052 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1053 dispatch PUSH_LIT_VARIABLE (1); 1054} 1055 1056/* PUSH_TEMPORARY_VARIABLE(*) 1057 PLUS_SPECIAL(0) */ 1058133 { 1059 extract opcode (8), arg_lsb (8); 1060 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1061 dispatch SEND_ARITH (0); 1062} 1063 1064/* POP_STACK_TOP(0) 1065 JUMP_BACK(*) */ 1066134 { 1067 extract opcode (8), arg_lsb (8); 1068 dispatch POP_STACK_TOP; 1069 dispatch JUMP (IP - IP0 - (arg | arg_lsb)); 1070} 1071 1072/* POP_STACK_TOP(0) 1073 PUSH_LIT_VARIABLE(*) */ 1074135 { 1075 extract opcode (8), arg_lsb (8); 1076 dispatch POP_STACK_TOP; 1077 dispatch PUSH_LIT_VARIABLE (arg | arg_lsb); 1078} 1079 1080/* PUSH_INTEGER(1) 1081 STORE_TEMPORARY_VARIABLE(*) */ 1082136 { 1083 extract opcode (8), arg_lsb (8); 1084 dispatch PUSH_INTEGER (1); 1085 dispatch STORE_TEMPORARY_VARIABLE (arg | arg_lsb); 1086} 1087 1088/* PUSH_LIT_CONSTANT(*) 1089 EXT_BYTE(2) 1090 SEND(1) */ 1091137 { 1092 extract opcode (8), arg_lsb (8); 1093 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1094 dispatch SEND (2, 0, 1); 1095} 1096 1097/* LINE_NUMBER_BYTECODE(*) 1098 PUSH_TEMPORARY_VARIABLE(3) */ 1099138 { 1100 extract opcode (8), arg_lsb (8); 1101 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1102 dispatch PUSH_TEMPORARY_VARIABLE (3); 1103} 1104 1105/* LINE_NUMBER_BYTECODE(*) 1106 PUSH_OUTER_TEMP(1) */ 1107139 { 1108 extract opcode (8), arg_lsb (8); 1109 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1110 dispatch PUSH_OUTER_TEMP (0, 1); 1111} 1112 1113/* PUSH_RECEIVER_VARIABLE(*) 1114 SEND(0) */ 1115140 { 1116 extract opcode (8), arg_lsb (8); 1117 dispatch PUSH_RECEIVER_VARIABLE (arg | arg_lsb); 1118 dispatch SEND (0, 0, 0); 1119} 1120 1121/* PUSH_INTEGER(*) 1122 GREATER_THAN_SPECIAL(0) */ 1123141 { 1124 extract opcode (8), arg_lsb (8); 1125 dispatch PUSH_INTEGER (arg | arg_lsb); 1126 dispatch SEND_ARITH (3); 1127} 1128 1129/* PUSH_TEMPORARY_VARIABLE(*) 1130 VALUE_SPECIAL(0) */ 1131142 { 1132 extract opcode (8), arg_lsb (8); 1133 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1134 dispatch SEND_SPECIAL (6); 1135} 1136 1137/* PUSH_TEMPORARY_VARIABLE(*) 1138 MINUS_SPECIAL(0) */ 1139143 { 1140 extract opcode (8), arg_lsb (8); 1141 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1142 dispatch SEND_ARITH (1); 1143} 1144 1145/* PUSH_LIT_CONSTANT(*) 1146 EXT_BYTE(3) 1147 SEND(1) */ 1148144 { 1149 extract opcode (8), arg_lsb (8); 1150 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1151 dispatch SEND (3, 0, 1); 1152} 1153 1154/* PUSH_SPECIAL(0) 1155 SAME_OBJECT_SPECIAL(0) 1156 POP_JUMP_FALSE(*) */ 1157145 { 1158 extract opcode (8), arg_lsb (8); 1159 dispatch PUSH_SPECIAL (0); 1160 dispatch SEND_SPECIAL (8); 1161 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 1162} 1163 1164/* STORE_TEMPORARY_VARIABLE(2) 1165 LINE_NUMBER_BYTECODE(*) 1166 POP_STACK_TOP(0) */ 1167146 { 1168 extract opcode (8), arg_lsb (8); 1169 dispatch STORE_TEMPORARY_VARIABLE (2); 1170 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1171 dispatch POP_STACK_TOP; 1172} 1173 1174/* SAME_OBJECT_SPECIAL(0) 1175 POP_JUMP_TRUE(*) */ 1176147 { 1177 extract opcode (8), arg_lsb (8); 1178 dispatch SEND_SPECIAL (8); 1179 dispatch POP_JUMP_TRUE (IP - IP0 + (arg | arg_lsb)); 1180} 1181 1182/* PUSH_INTEGER(*) 1183 TIMES_SPECIAL(0) */ 1184148 { 1185 extract opcode (8), arg_lsb (8); 1186 dispatch PUSH_INTEGER (arg | arg_lsb); 1187 dispatch SEND_ARITH (8); 1188} 1189 1190/* LINE_NUMBER_BYTECODE(*) 1191 PUSH_RECEIVER_VARIABLE(2) */ 1192149 { 1193 extract opcode (8), arg_lsb (8); 1194 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1195 dispatch PUSH_RECEIVER_VARIABLE (2); 1196} 1197 1198/* PUSH_INTEGER(*) 1199 LESS_THAN_SPECIAL(0) */ 1200150 { 1201 extract opcode (8), arg_lsb (8); 1202 dispatch PUSH_INTEGER (arg | arg_lsb); 1203 dispatch SEND_ARITH (2); 1204} 1205 1206/* PUSH_LIT_CONSTANT(*) 1207 AT_PUT_SPECIAL(0) */ 1208151 { 1209 extract opcode (8), arg_lsb (8); 1210 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1211 dispatch SEND_SPECIAL (1); 1212} 1213 1214/* EXT_BYTE(*) 1215 PUSH_OUTER_TEMP(2) */ 1216152 { 1217 extract opcode (8), arg_lsb (8); 1218 dispatch PUSH_OUTER_TEMP (arg | arg_lsb, 2); 1219} 1220 1221/* LINE_NUMBER_BYTECODE(*) 1222 PUSH_SELF(0) 1223 PUSH_TEMPORARY_VARIABLE(0) 1224 SEND(1) */ 1225153 { 1226 extract opcode (8), arg_lsb (8); 1227 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1228 dispatch PUSH_SELF; 1229 dispatch PUSH_TEMPORARY_VARIABLE (0); 1230 dispatch SEND (0, 0, 1); 1231} 1232 1233/* PUSH_SELF(0) 1234 PUSH_TEMPORARY_VARIABLE(0) 1235 EXT_BYTE(*) 1236 SEND(1) */ 1237154 { 1238 extract opcode (8), arg_lsb (8); 1239 dispatch PUSH_SELF; 1240 dispatch PUSH_TEMPORARY_VARIABLE (0); 1241 dispatch SEND (arg | arg_lsb, 0, 1); 1242} 1243 1244/* LINE_NUMBER_BYTECODE(*) 1245 PUSH_SELF(0) 1246 SEND_IMMEDIATE(40) */ 1247155 { 1248 extract opcode (8), arg_lsb (8); 1249 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1250 dispatch PUSH_SELF; 1251 dispatch SEND_IMMEDIATE (40, 0); 1252} 1253 1254/* PUSH_TEMPORARY_VARIABLE(*) 1255 PUSH_TEMPORARY_VARIABLE(3) */ 1256156 { 1257 extract opcode (8), arg_lsb (8); 1258 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1259 dispatch PUSH_TEMPORARY_VARIABLE (3); 1260} 1261 1262/* STORE_TEMPORARY_VARIABLE(1) 1263 LINE_NUMBER_BYTECODE(*) */ 1264157 { 1265 extract opcode (8), arg_lsb (8); 1266 dispatch STORE_TEMPORARY_VARIABLE (1); 1267 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1268} 1269 1270/* LINE_NUMBER_BYTECODE(*) 1271 PUSH_TEMPORARY_VARIABLE(0) 1272 SEND(0) */ 1273158 { 1274 extract opcode (8), arg_lsb (8); 1275 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1276 dispatch PUSH_TEMPORARY_VARIABLE (0); 1277 dispatch SEND (0, 0, 0); 1278} 1279 1280/* PUSH_INTEGER(*) 1281 BIT_AND_SPECIAL(0) */ 1282159 { 1283 extract opcode (8), arg_lsb (8); 1284 dispatch PUSH_INTEGER (arg | arg_lsb); 1285 dispatch SEND_ARITH (14); 1286} 1287 1288/* PUSH_TEMPORARY_VARIABLE(2) 1289 EXT_BYTE(*) 1290 SEND(0) */ 1291160 { 1292 extract opcode (8), arg_lsb (8); 1293 dispatch PUSH_TEMPORARY_VARIABLE (2); 1294 dispatch SEND (arg | arg_lsb, 0, 0); 1295} 1296 1297/* PUSH_TEMPORARY_VARIABLE(0) 1298 PUSH_TEMPORARY_VARIABLE(1) 1299 SEND(*) */ 1300161 { 1301 extract opcode (8), arg_lsb (8); 1302 dispatch PUSH_TEMPORARY_VARIABLE (0); 1303 dispatch PUSH_TEMPORARY_VARIABLE (1); 1304 dispatch SEND (arg >> 8, 0, arg_lsb); 1305} 1306 1307/* LINE_NUMBER_BYTECODE(*) 1308 PUSH_SELF(0) 1309 PUSH_TEMPORARY_VARIABLE(0) */ 1310162 { 1311 extract opcode (8), arg_lsb (8); 1312 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1313 dispatch PUSH_SELF; 1314 dispatch PUSH_TEMPORARY_VARIABLE (0); 1315} 1316 1317/* LINE_NUMBER_BYTECODE(*) 1318 PUSH_RECEIVER_VARIABLE(3) */ 1319163 { 1320 extract opcode (8), arg_lsb (8); 1321 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1322 dispatch PUSH_RECEIVER_VARIABLE (3); 1323} 1324 1325/* PUSH_TEMPORARY_VARIABLE(2) 1326 EXT_BYTE(*) 1327 SEND(1) */ 1328164 { 1329 extract opcode (8), arg_lsb (8); 1330 dispatch PUSH_TEMPORARY_VARIABLE (2); 1331 dispatch SEND (arg | arg_lsb, 0, 1); 1332} 1333 1334/* NOT_NIL_SPECIAL(0) 1335 POP_JUMP_FALSE(*) */ 1336165 { 1337 extract opcode (8), arg_lsb (8); 1338 dispatch SEND_SPECIAL (5); 1339 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 1340} 1341 1342/* STORE_TEMPORARY_VARIABLE(2) 1343 LINE_NUMBER_BYTECODE(*) */ 1344166 { 1345 extract opcode (8), arg_lsb (8); 1346 dispatch STORE_TEMPORARY_VARIABLE (2); 1347 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1348} 1349 1350/* STORE_TEMPORARY_VARIABLE(3) 1351 LINE_NUMBER_BYTECODE(*) 1352 POP_STACK_TOP(0) */ 1353167 { 1354 extract opcode (8), arg_lsb (8); 1355 dispatch STORE_TEMPORARY_VARIABLE (3); 1356 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1357 dispatch POP_STACK_TOP; 1358} 1359 1360/* PUSH_LIT_CONSTANT(1) 1361 SEND_IMMEDIATE(*) */ 1362168 { 1363 extract opcode (8), arg_lsb (8); 1364 dispatch PUSH_LIT_CONSTANT (1); 1365 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1366} 1367 1368/* PUSH_TEMPORARY_VARIABLE(*) 1369 EQUAL_SPECIAL(0) */ 1370169 { 1371 extract opcode (8), arg_lsb (8); 1372 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1373 dispatch SEND_ARITH (6); 1374} 1375 1376/* POP_STACK_TOP(0) 1377 DUP_STACK_TOP(0) 1378 PUSH_TEMPORARY_VARIABLE(*) 1379 PUSH_INTEGER(1) 1380 PLUS_SPECIAL(0) */ 1381170 { 1382 extract opcode (8), arg_lsb (8); 1383 dispatch POP_STACK_TOP; 1384 dispatch DUP_STACK_TOP; 1385 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1386 dispatch PUSH_INTEGER (1); 1387 dispatch SEND_ARITH (0); 1388} 1389 1390/* PUSH_SELF(0) 1391 EXT_BYTE(*) 1392 SEND(1) */ 1393171 { 1394 extract opcode (8), arg_lsb (8); 1395 dispatch PUSH_SELF; 1396 dispatch SEND (arg | arg_lsb, 0, 1); 1397} 1398 1399/* STORE_TEMPORARY_VARIABLE(0) 1400 LINE_NUMBER_BYTECODE(*) 1401 POP_STACK_TOP(0) */ 1402172 { 1403 extract opcode (8), arg_lsb (8); 1404 dispatch STORE_TEMPORARY_VARIABLE (0); 1405 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1406 dispatch POP_STACK_TOP; 1407} 1408 1409/* DUP_STACK_TOP(0) 1410 LINE_NUMBER_BYTECODE(*) */ 1411173 { 1412 extract opcode (8), arg_lsb (8); 1413 dispatch DUP_STACK_TOP; 1414 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1415} 1416 1417/* PUSH_SELF(0) 1418 PUSH_LIT_CONSTANT(*) 1419 SEND_IMMEDIATE(49) */ 1420174 { 1421 extract opcode (8), arg_lsb (8); 1422 dispatch PUSH_SELF; 1423 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1424 dispatch SEND_IMMEDIATE (49, 0); 1425} 1426 1427/* POP_STACK_TOP(0) 1428 PUSH_RECEIVER_VARIABLE(*) */ 1429175 { 1430 extract opcode (8), arg_lsb (8); 1431 dispatch POP_STACK_TOP; 1432 dispatch PUSH_RECEIVER_VARIABLE (arg | arg_lsb); 1433} 1434 1435/* LINE_NUMBER_BYTECODE(*) 1436 PUSH_SELF(0) 1437 SEND_IMMEDIATE(84) */ 1438176 { 1439 extract opcode (8), arg_lsb (8); 1440 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1441 dispatch PUSH_SELF; 1442 dispatch SEND_IMMEDIATE (84, 0); 1443} 1444 1445/* LINE_NUMBER_BYTECODE(*) 1446 PUSH_LIT_VARIABLE(2) */ 1447177 { 1448 extract opcode (8), arg_lsb (8); 1449 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1450 dispatch PUSH_LIT_VARIABLE (2); 1451} 1452 1453/* PUSH_LIT_CONSTANT(*) 1454 MAKE_DIRTY_BLOCK(0) 1455 EXT_BYTE(3) 1456 SEND(1) */ 1457178 { 1458 extract opcode (8), arg_lsb (8); 1459 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1460 dispatch MAKE_DIRTY_BLOCK; 1461 dispatch SEND (3, 0, 1); 1462} 1463 1464/* LINE_NUMBER_BYTECODE(*) 1465 PUSH_LIT_CONSTANT(0) */ 1466179 { 1467 extract opcode (8), arg_lsb (8); 1468 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1469 dispatch PUSH_LIT_CONSTANT (0); 1470} 1471 1472/* DUP_STACK_TOP(0) 1473 PUSH_LIT_CONSTANT(*) 1474 SEND_IMMEDIATE(36) */ 1475180 { 1476 extract opcode (8), arg_lsb (8); 1477 dispatch DUP_STACK_TOP; 1478 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1479 dispatch SEND_IMMEDIATE (36, 0); 1480} 1481 1482/* LINE_NUMBER_BYTECODE(*) 1483 EXT_BYTE(1) 1484 PUSH_OUTER_TEMP(1) */ 1485181 { 1486 extract opcode (8), arg_lsb (8); 1487 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1488 dispatch PUSH_OUTER_TEMP (1, 1); 1489} 1490 1491/* PUSH_INTEGER(*) 1492 INTEGER_DIVIDE_SPECIAL(0) */ 1493182 { 1494 extract opcode (8), arg_lsb (8); 1495 dispatch PUSH_INTEGER (arg | arg_lsb); 1496 dispatch SEND_ARITH (13); 1497} 1498 1499/* PUSH_LIT_CONSTANT(1) 1500 MAKE_DIRTY_BLOCK(0) 1501 SEND_IMMEDIATE(*) */ 1502183 { 1503 extract opcode (8), arg_lsb (8); 1504 dispatch PUSH_LIT_CONSTANT (1); 1505 dispatch MAKE_DIRTY_BLOCK; 1506 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1507} 1508 1509/* PUSH_TEMPORARY_VARIABLE(3) 1510 SEND_IMMEDIATE(*) */ 1511184 { 1512 extract opcode (8), arg_lsb (8); 1513 dispatch PUSH_TEMPORARY_VARIABLE (3); 1514 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1515} 1516 1517/* LINE_NUMBER_BYTECODE(*) 1518 PUSH_SPECIAL(0) 1519 RETURN_CONTEXT_STACK_TOP(0) */ 1520185 { 1521 extract opcode (8), arg_lsb (8); 1522 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1523 dispatch PUSH_SPECIAL (0); 1524 dispatch RETURN_CONTEXT_STACK_TOP; 1525} 1526 1527/* LINE_NUMBER_BYTECODE(*) 1528 PUSH_RECEIVER_VARIABLE(5) */ 1529186 { 1530 extract opcode (8), arg_lsb (8); 1531 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1532 dispatch PUSH_RECEIVER_VARIABLE (5); 1533} 1534 1535/* PUSH_LIT_CONSTANT(*) 1536 MAKE_DIRTY_BLOCK(0) 1537 EXT_BYTE(2) 1538 SEND(1) */ 1539187 { 1540 extract opcode (8), arg_lsb (8); 1541 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1542 dispatch MAKE_DIRTY_BLOCK; 1543 dispatch SEND (2, 0, 1); 1544} 1545 1546/* PUSH_TEMPORARY_VARIABLE(*) 1547 VALUE_COLON_SPECIAL(0) */ 1548188 { 1549 extract opcode (8), arg_lsb (8); 1550 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1551 dispatch SEND_SPECIAL (7); 1552} 1553 1554/* PUSH_INTEGER(*) 1555 RETURN_CONTEXT_STACK_TOP(0) */ 1556189 { 1557 extract opcode (8), arg_lsb (8); 1558 dispatch PUSH_INTEGER (arg | arg_lsb); 1559 dispatch RETURN_CONTEXT_STACK_TOP; 1560} 1561 1562/* PUSH_TEMPORARY_VARIABLE(0) 1563 EXT_BYTE(*) 1564 SEND(2) */ 1565190 { 1566 extract opcode (8), arg_lsb (8); 1567 dispatch PUSH_TEMPORARY_VARIABLE (0); 1568 dispatch SEND (arg | arg_lsb, 0, 2); 1569} 1570 1571/* PUSH_TEMPORARY_VARIABLE(*) 1572 PUSH_INTEGER(1) 1573 MINUS_SPECIAL(0) */ 1574191 { 1575 extract opcode (8), arg_lsb (8); 1576 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1577 dispatch PUSH_INTEGER (1); 1578 dispatch SEND_ARITH (1); 1579} 1580 1581/* PUSH_SELF(0) 1582 PUSH_LIT_CONSTANT(*) */ 1583192 { 1584 extract opcode (8), arg_lsb (8); 1585 dispatch PUSH_SELF; 1586 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1587} 1588 1589/* LINE_NUMBER_BYTECODE(*) 1590 PUSH_RECEIVER_VARIABLE(4) */ 1591193 { 1592 extract opcode (8), arg_lsb (8); 1593 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1594 dispatch PUSH_RECEIVER_VARIABLE (4); 1595} 1596 1597/* PUSH_OUTER_TEMP(1) 1598 SEND_IMMEDIATE(*) */ 1599194 { 1600 extract opcode (8), arg_lsb (8); 1601 dispatch PUSH_OUTER_TEMP (0, 1); 1602 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1603} 1604 1605/* LINE_NUMBER_BYTECODE(*) 1606 PUSH_SELF(0) 1607 EXT_BYTE(1) 1608 SEND(0) */ 1609195 { 1610 extract opcode (8), arg_lsb (8); 1611 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1612 dispatch PUSH_SELF; 1613 dispatch SEND (1, 0, 0); 1614} 1615 1616/* PUSH_OUTER_TEMP(1) 1617 EXT_BYTE(*) 1618 SEND(1) */ 1619196 { 1620 extract opcode (8), arg_lsb (8); 1621 dispatch PUSH_OUTER_TEMP (0, 1); 1622 dispatch SEND (arg | arg_lsb, 0, 1); 1623} 1624 1625/* PUSH_TEMPORARY_VARIABLE(4) 1626 SEND_IMMEDIATE(*) */ 1627197 { 1628 extract opcode (8), arg_lsb (8); 1629 dispatch PUSH_TEMPORARY_VARIABLE (4); 1630 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1631} 1632 1633/* PUSH_INTEGER(*) 1634 SEND_IMMEDIATE(41) */ 1635198 { 1636 extract opcode (8), arg_lsb (8); 1637 dispatch PUSH_INTEGER (arg | arg_lsb); 1638 dispatch SEND_IMMEDIATE (41, 0); 1639} 1640 1641/* EXT_BYTE(*) 1642 SEND(4) */ 1643199 { 1644 extract opcode (8), arg_lsb (8); 1645 dispatch SEND (arg | arg_lsb, 0, 4); 1646} 1647 1648/* PUSH_TEMPORARY_VARIABLE(*) 1649 PUSH_TEMPORARY_VARIABLE(2) */ 1650200 { 1651 extract opcode (8), arg_lsb (8); 1652 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1653 dispatch PUSH_TEMPORARY_VARIABLE (2); 1654} 1655 1656/* PUSH_SELF(0) 1657 CLASS_SPECIAL(*) */ 1658201 { 1659 extract opcode (8), arg_lsb (8); 1660 dispatch PUSH_SELF; 1661 dispatch SEND_SPECIAL (3); 1662} 1663 1664/* PUSH_TEMPORARY_VARIABLE(1) 1665 SEND(*) */ 1666202 { 1667 extract opcode (8), arg_lsb (8); 1668 dispatch PUSH_TEMPORARY_VARIABLE (1); 1669 dispatch SEND (arg >> 8, 0, arg_lsb); 1670} 1671 1672/* PUSH_SELF(0) 1673 PUSH_TEMPORARY_VARIABLE(1) 1674 EXT_BYTE(*) 1675 SEND(1) */ 1676203 { 1677 extract opcode (8), arg_lsb (8); 1678 dispatch PUSH_SELF; 1679 dispatch PUSH_TEMPORARY_VARIABLE (1); 1680 dispatch SEND (arg | arg_lsb, 0, 1); 1681} 1682 1683/* PUSH_LIT_CONSTANT(*) 1684 EXT_BYTE(4) 1685 SEND(1) */ 1686204 { 1687 extract opcode (8), arg_lsb (8); 1688 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1689 dispatch SEND (4, 0, 1); 1690} 1691 1692/* PUSH_INTEGER(*) 1693 SEND(1) */ 1694205 { 1695 extract opcode (8), arg_lsb (8); 1696 dispatch PUSH_INTEGER (arg | arg_lsb); 1697 dispatch SEND (0, 0, 1); 1698} 1699 1700/* PUSH_RECEIVER_VARIABLE(*) 1701 SIZE_SPECIAL(0) */ 1702206 { 1703 extract opcode (8), arg_lsb (8); 1704 dispatch PUSH_RECEIVER_VARIABLE (arg | arg_lsb); 1705 dispatch SEND_SPECIAL (2); 1706} 1707 1708/* PUSH_TEMPORARY_VARIABLE(1) 1709 EXT_BYTE(*) 1710 SEND(2) */ 1711207 { 1712 extract opcode (8), arg_lsb (8); 1713 dispatch PUSH_TEMPORARY_VARIABLE (1); 1714 dispatch SEND (arg | arg_lsb, 0, 2); 1715} 1716 1717/* PUSH_TEMPORARY_VARIABLE(0) 1718 PUSH_TEMPORARY_VARIABLE(1) 1719 EXT_BYTE(*) 1720 SEND(2) */ 1721208 { 1722 extract opcode (8), arg_lsb (8); 1723 dispatch PUSH_TEMPORARY_VARIABLE (0); 1724 dispatch PUSH_TEMPORARY_VARIABLE (1); 1725 dispatch SEND (arg | arg_lsb, 0, 2); 1726} 1727 1728/* PUSH_TEMPORARY_VARIABLE(*) 1729 POP_INTO_NEW_STACKTOP(0) */ 1730209 { 1731 extract opcode (8), arg_lsb (8); 1732 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1733 dispatch POP_INTO_NEW_STACKTOP (0); 1734} 1735 1736/* PUSH_LIT_CONSTANT(*) 1737 MAKE_DIRTY_BLOCK(0) 1738 EXT_BYTE(5) 1739 SEND(1) */ 1740210 { 1741 extract opcode (8), arg_lsb (8); 1742 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1743 dispatch MAKE_DIRTY_BLOCK; 1744 dispatch SEND (5, 0, 1); 1745} 1746 1747/* EXT_BYTE(*) 1748 SEND_SUPER(1) */ 1749211 { 1750 extract opcode (8), arg_lsb (8); 1751 dispatch SEND (arg | arg_lsb, 1, 1); 1752} 1753 1754/* PUSH_LIT_CONSTANT(*) 1755 MAKE_DIRTY_BLOCK(0) 1756 EXT_BYTE(4) 1757 SEND(1) */ 1758212 { 1759 extract opcode (8), arg_lsb (8); 1760 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1761 dispatch MAKE_DIRTY_BLOCK; 1762 dispatch SEND (4, 0, 1); 1763} 1764 1765/* PUSH_RECEIVER_VARIABLE(1) 1766 SEND_IMMEDIATE(*) */ 1767213 { 1768 extract opcode (8), arg_lsb (8); 1769 dispatch PUSH_RECEIVER_VARIABLE (1); 1770 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1771} 1772 1773/* EXT_BYTE(*) 1774 STORE_OUTER_TEMP(1) 1775 RETURN_CONTEXT_STACK_TOP(0) */ 1776214 { 1777 extract opcode (8), arg_lsb (8); 1778 dispatch STORE_OUTER_TEMP (arg | arg_lsb, 1); 1779 dispatch RETURN_CONTEXT_STACK_TOP; 1780} 1781 1782/* POP_STACK_TOP(0) 1783 LINE_NUMBER_BYTECODE(*) 1784 SEND_IMMEDIATE(37) */ 1785215 { 1786 extract opcode (8), arg_lsb (8); 1787 dispatch POP_STACK_TOP; 1788 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1789 dispatch SEND_IMMEDIATE (37, 0); 1790} 1791 1792/* LINE_NUMBER_BYTECODE(*) 1793 PUSH_SELF(0) 1794 CLASS_SPECIAL(0) */ 1795216 { 1796 extract opcode (8), arg_lsb (8); 1797 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1798 dispatch PUSH_SELF; 1799 dispatch SEND_SPECIAL (3); 1800} 1801 1802/* PUSH_TEMPORARY_VARIABLE(1) 1803 EXT_BYTE(*) 1804 SEND(0) */ 1805217 { 1806 extract opcode (8), arg_lsb (8); 1807 dispatch PUSH_TEMPORARY_VARIABLE (1); 1808 dispatch SEND (arg | arg_lsb, 0, 0); 1809} 1810 1811/* LINE_NUMBER_BYTECODE(*) 1812 PUSH_SELF(0) 1813 SEND_IMMEDIATE(130) */ 1814218 { 1815 extract opcode (8), arg_lsb (8); 1816 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1817 dispatch PUSH_SELF; 1818 dispatch SEND_IMMEDIATE (130, 0); 1819} 1820 1821/* PUSH_RECEIVER_VARIABLE(0) 1822 SEND_IMMEDIATE(*) */ 1823219 { 1824 extract opcode (8), arg_lsb (8); 1825 dispatch PUSH_RECEIVER_VARIABLE (0); 1826 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1827} 1828 1829/* PUSH_TEMPORARY_VARIABLE(0) 1830 PUSH_LIT_VARIABLE(*) */ 1831220 { 1832 extract opcode (8), arg_lsb (8); 1833 dispatch PUSH_TEMPORARY_VARIABLE (0); 1834 dispatch PUSH_LIT_VARIABLE (arg | arg_lsb); 1835} 1836 1837/* STORE_TEMPORARY_VARIABLE(0) 1838 LINE_NUMBER_BYTECODE(*) */ 1839221 { 1840 extract opcode (8), arg_lsb (8); 1841 dispatch STORE_TEMPORARY_VARIABLE (0); 1842 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1843} 1844 1845/* PUSH_RECEIVER_VARIABLE(2) 1846 SEND_IMMEDIATE(*) */ 1847222 { 1848 extract opcode (8), arg_lsb (8); 1849 dispatch PUSH_RECEIVER_VARIABLE (2); 1850 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1851} 1852 1853/* LINE_NUMBER_BYTECODE(*) 1854 PUSH_SELF(0) 1855 EXT_BYTE(2) 1856 SEND(0) */ 1857223 { 1858 extract opcode (8), arg_lsb (8); 1859 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1860 dispatch PUSH_SELF; 1861 dispatch SEND (2, 0, 0); 1862} 1863 1864/* LINE_NUMBER_BYTECODE(*) 1865 POP_STACK_TOP(0) 1866 PUSH_TEMPORARY_VARIABLE(2) */ 1867224 { 1868 extract opcode (8), arg_lsb (8); 1869 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1870 dispatch POP_STACK_TOP; 1871 dispatch PUSH_TEMPORARY_VARIABLE (2); 1872} 1873 1874/* PUSH_LIT_CONSTANT(*) 1875 MAKE_DIRTY_BLOCK(0) 1876 EXT_BYTE(6) 1877 SEND(1) */ 1878225 { 1879 extract opcode (8), arg_lsb (8); 1880 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1881 dispatch MAKE_DIRTY_BLOCK; 1882 dispatch SEND (6, 0, 1); 1883} 1884 1885/* PUSH_SPECIAL(*) 1886 RETURN_METHOD_STACK_TOP(0) */ 1887226 { 1888 extract opcode (8), arg_lsb (8); 1889 dispatch PUSH_SPECIAL (arg | arg_lsb); 1890 dispatch RETURN_METHOD_STACK_TOP; 1891} 1892 1893/* PUSH_INTEGER(*) 1894 GREATER_EQUAL_SPECIAL(0) */ 1895227 { 1896 extract opcode (8), arg_lsb (8); 1897 dispatch PUSH_INTEGER (arg | arg_lsb); 1898 dispatch SEND_ARITH (5); 1899} 1900 1901/* LINE_NUMBER_BYTECODE(*) 1902 POP_STACK_TOP(0) 1903 PUSH_RECEIVER_VARIABLE(1) */ 1904228 { 1905 extract opcode (8), arg_lsb (8); 1906 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1907 dispatch POP_STACK_TOP; 1908 dispatch PUSH_RECEIVER_VARIABLE (1); 1909} 1910 1911/* LINE_NUMBER_BYTECODE(*) 1912 PUSH_LIT_VARIABLE(3) */ 1913229 { 1914 extract opcode (8), arg_lsb (8); 1915 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1916 dispatch PUSH_LIT_VARIABLE (3); 1917} 1918 1919/* PUSH_LIT_CONSTANT(2) 1920 SEND_IMMEDIATE(*) */ 1921230 { 1922 extract opcode (8), arg_lsb (8); 1923 dispatch PUSH_LIT_CONSTANT (2); 1924 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 1925} 1926 1927/* EXT_BYTE(*) 1928 SEND_SUPER(0) */ 1929231 { 1930 extract opcode (8), arg_lsb (8); 1931 dispatch SEND (arg | arg_lsb, 1, 0); 1932} 1933 1934/* PUSH_SPECIAL(0) 1935 STORE_RECEIVER_VARIABLE(*) */ 1936232 { 1937 extract opcode (8), arg_lsb (8); 1938 dispatch PUSH_SPECIAL (0); 1939 dispatch STORE_RECEIVER_VARIABLE (arg | arg_lsb); 1940} 1941 1942/* PUSH_SELF(0) 1943 PUSH_TEMPORARY_VARIABLE(*) 1944 SEND(1) */ 1945233 { 1946 extract opcode (8), arg_lsb (8); 1947 dispatch PUSH_SELF; 1948 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 1949 dispatch SEND (0, 0, 1); 1950} 1951 1952/* LINE_NUMBER_BYTECODE(*) 1953 POP_STACK_TOP(0) 1954 PUSH_TEMPORARY_VARIABLE(0) 1955 RETURN_CONTEXT_STACK_TOP(0) */ 1956234 { 1957 extract opcode (8), arg_lsb (8); 1958 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1959 dispatch POP_STACK_TOP; 1960 dispatch PUSH_TEMPORARY_VARIABLE (0); 1961 dispatch RETURN_CONTEXT_STACK_TOP; 1962} 1963 1964/* PUSH_LIT_CONSTANT(*) 1965 SAME_OBJECT_SPECIAL(0) */ 1966235 { 1967 extract opcode (8), arg_lsb (8); 1968 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1969 dispatch SEND_SPECIAL (8); 1970} 1971 1972/* PUSH_LIT_CONSTANT(*) 1973 MAKE_DIRTY_BLOCK(0) 1974 EXT_BYTE(1) 1975 SEND(1) */ 1976236 { 1977 extract opcode (8), arg_lsb (8); 1978 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 1979 dispatch MAKE_DIRTY_BLOCK; 1980 dispatch SEND (1, 0, 1); 1981} 1982 1983/* LINE_NUMBER_BYTECODE(*) 1984 POP_STACK_TOP(0) 1985 PUSH_TEMPORARY_VARIABLE(3) */ 1986237 { 1987 extract opcode (8), arg_lsb (8); 1988 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 1989 dispatch POP_STACK_TOP; 1990 dispatch PUSH_TEMPORARY_VARIABLE (3); 1991} 1992 1993/* POP_STACK_TOP(0) 1994 DUP_STACK_TOP(0) 1995 SEND_IMMEDIATE(*) */ 1996238 { 1997 extract opcode (8), arg_lsb (8); 1998 dispatch POP_STACK_TOP; 1999 dispatch DUP_STACK_TOP; 2000 dispatch SEND_IMMEDIATE (arg | arg_lsb, 0); 2001} 2002 2003/* PUSH_LIT_CONSTANT(*) 2004 PUSH_TEMPORARY_VARIABLE(0) 2005 AT_PUT_SPECIAL(0) */ 2006239 { 2007 extract opcode (8), arg_lsb (8); 2008 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 2009 dispatch PUSH_TEMPORARY_VARIABLE (0); 2010 dispatch SEND_SPECIAL (1); 2011} 2012 2013/* DUP_STACK_TOP(0) 2014 PUSH_TEMPORARY_VARIABLE(*) 2015 PUSH_INTEGER(1) 2016 PLUS_SPECIAL(0) */ 2017240 { 2018 extract opcode (8), arg_lsb (8); 2019 dispatch DUP_STACK_TOP; 2020 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 2021 dispatch PUSH_INTEGER (1); 2022 dispatch SEND_ARITH (0); 2023} 2024 2025/* LINE_NUMBER_BYTECODE(*) 2026 PUSH_TEMPORARY_VARIABLE(4) */ 2027241 { 2028 extract opcode (8), arg_lsb (8); 2029 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2030 dispatch PUSH_TEMPORARY_VARIABLE (4); 2031} 2032 2033/* POP_STACK_TOP(0) 2034 LINE_NUMBER_BYTECODE(*) 2035 PUSH_LIT_VARIABLE(1) */ 2036242 { 2037 extract opcode (8), arg_lsb (8); 2038 dispatch POP_STACK_TOP; 2039 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2040 dispatch PUSH_LIT_VARIABLE (1); 2041} 2042 2043/* DUP_STACK_TOP(0) 2044 PUSH_LIT_CONSTANT(*) 2045 EXT_BYTE(1) 2046 SEND(1) */ 2047243 { 2048 extract opcode (8), arg_lsb (8); 2049 dispatch DUP_STACK_TOP; 2050 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 2051 dispatch SEND (1, 0, 1); 2052} 2053 2054/* POP_INTO_NEW_STACKTOP(1) 2055 EXT_BYTE(*) 2056 SEND(1) */ 2057244 { 2058 extract opcode (8), arg_lsb (8); 2059 dispatch POP_INTO_NEW_STACKTOP (1); 2060 dispatch SEND (arg | arg_lsb, 0, 1); 2061} 2062 2063/* LINE_NUMBER_BYTECODE(*) 2064 POP_STACK_TOP(0) 2065 PUSH_TEMPORARY_VARIABLE(1) 2066 RETURN_CONTEXT_STACK_TOP(0) */ 2067245 { 2068 extract opcode (8), arg_lsb (8); 2069 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2070 dispatch POP_STACK_TOP; 2071 dispatch PUSH_TEMPORARY_VARIABLE (1); 2072 dispatch RETURN_CONTEXT_STACK_TOP; 2073} 2074 2075/* STORE_TEMPORARY_VARIABLE(3) 2076 LINE_NUMBER_BYTECODE(*) */ 2077246 { 2078 extract opcode (8), arg_lsb (8); 2079 dispatch STORE_TEMPORARY_VARIABLE (3); 2080 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2081} 2082 2083/* DUP_STACK_TOP(0) 2084 EXT_BYTE(*) 2085 SEND(0) */ 2086247 { 2087 extract opcode (8), arg_lsb (8); 2088 dispatch DUP_STACK_TOP; 2089 dispatch SEND (arg | arg_lsb, 0, 0); 2090} 2091 2092/* STORE_RECEIVER_VARIABLE(*) 2093 RETURN_CONTEXT_STACK_TOP(0) */ 2094248 { 2095 extract opcode (8), arg_lsb (8); 2096 dispatch STORE_RECEIVER_VARIABLE (arg | arg_lsb); 2097 dispatch RETURN_CONTEXT_STACK_TOP; 2098} 2099 2100/* LINE_NUMBER_BYTECODE(*) 2101 PUSH_SELF(0) 2102 EXT_BYTE(3) 2103 SEND(0) */ 2104249 { 2105 extract opcode (8), arg_lsb (8); 2106 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2107 dispatch PUSH_SELF; 2108 dispatch SEND (3, 0, 0); 2109} 2110 2111/* NOT_NIL_SPECIAL(0) 2112 DUP_STACK_TOP(0) 2113 POP_JUMP_FALSE(*) */ 2114250 { 2115 extract opcode (8), arg_lsb (8); 2116 dispatch SEND_SPECIAL (5); 2117 dispatch DUP_STACK_TOP; 2118 dispatch POP_JUMP_FALSE (IP - IP0 + (arg | arg_lsb)); 2119} 2120 2121/* DUP_STACK_TOP(0) 2122 PUSH_LIT_CONSTANT(*) */ 2123251 { 2124 extract opcode (8), arg_lsb (8); 2125 dispatch DUP_STACK_TOP; 2126 dispatch PUSH_LIT_CONSTANT (arg | arg_lsb); 2127} 2128 2129/* LINE_NUMBER_BYTECODE(*) 2130 PUSH_TEMPORARY_VARIABLE(0) 2131 RETURN_CONTEXT_STACK_TOP(0) */ 2132252 { 2133 extract opcode (8), arg_lsb (8); 2134 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2135 dispatch PUSH_TEMPORARY_VARIABLE (0); 2136 dispatch RETURN_CONTEXT_STACK_TOP; 2137} 2138 2139/* PUSH_INTEGER(*) 2140 AT_PUT_SPECIAL(0) */ 2141253 { 2142 extract opcode (8), arg_lsb (8); 2143 dispatch PUSH_INTEGER (arg | arg_lsb); 2144 dispatch SEND_SPECIAL (1); 2145} 2146 2147/* PUSH_TEMPORARY_VARIABLE(*) 2148 CLASS_SPECIAL(0) */ 2149254 { 2150 extract opcode (8), arg_lsb (8); 2151 dispatch PUSH_TEMPORARY_VARIABLE (arg | arg_lsb); 2152 dispatch SEND_SPECIAL (3); 2153} 2154 2155/* LINE_NUMBER_BYTECODE(*) 2156 EXT_BYTE(2) 2157 PUSH_OUTER_TEMP(1) */ 2158255 { 2159 extract opcode (8), arg_lsb (8); 2160 dispatch LINE_NUMBER_BYTECODE (arg | arg_lsb); 2161 dispatch PUSH_OUTER_TEMP (2, 1); 2162} 2163 2164