1 if (VM_IS_INST(*ip, 0)) { 2 add_inst(b, "(docol)"); 3 ip += 1; 4 return; 5 } 6 if (VM_IS_INST(*ip, 1)) { 7 add_inst(b, "(docon)"); 8 ip += 1; 9 goto _endif_; 10 } 11 if (VM_IS_INST(*ip, 2)) { 12 add_inst(b, "(dovar)"); 13 ip += 1; 14 goto _endif_; 15 } 16 if (VM_IS_INST(*ip, 3)) { 17 add_inst(b, "(douser)"); 18 ip += 1; 19 goto _endif_; 20 } 21 if (VM_IS_INST(*ip, 4)) { 22 add_inst(b, "(dodefer)"); 23 ip += 1; 24 return; 25 } 26 if (VM_IS_INST(*ip, 5)) { 27 add_inst(b, "(dofield)"); 28 ip += 1; 29 goto _endif_; 30 } 31 if (VM_IS_INST(*ip, 6)) { 32 add_inst(b, "(dovalue)"); 33 ip += 1; 34 goto _endif_; 35 } 36 if (VM_IS_INST(*ip, 7)) { 37 add_inst(b, "(dodoes)"); 38 ip += 1; 39 return; 40 } 41 if (VM_IS_INST(*ip, 8)) { 42 add_inst(b, "(does-handler)"); 43 ip += 1; 44 goto _endif_; 45 } 46 GROUPADD(9) 47 GROUP( control, 9) 48 if (VM_IS_INST(*ip, 9)) { 49 add_inst(b, "noop"); 50 ip += 1; 51 goto _endif_; 52 } 53 if (VM_IS_INST(*ip, 10)) { 54 add_inst(b, "call"); 55 ip += 2; 56 return; 57 } 58 if (VM_IS_INST(*ip, 11)) { 59 add_inst(b, "execute"); 60 ip += 1; 61 return; 62 } 63 if (VM_IS_INST(*ip, 12)) { 64 add_inst(b, "perform"); 65 ip += 1; 66 return; 67 } 68 if (VM_IS_INST(*ip, 13)) { 69 add_inst(b, ";s"); 70 ip += 1; 71 return; 72 } 73 if (VM_IS_INST(*ip, 14)) { 74 add_inst(b, "unloop"); 75 ip += 1; 76 goto _endif_; 77 } 78 if (VM_IS_INST(*ip, 15)) { 79 add_inst(b, "lit-perform"); 80 ip += 2; 81 return; 82 } 83 if (VM_IS_INST(*ip, 16)) { 84 add_inst(b, "does-exec"); 85 ip += 2; 86 return; 87 } 88 GROUPADD(8) 89 #ifdef HAS_GLOCALS 90 if (VM_IS_INST(*ip, 17)) { 91 add_inst(b, "branch-lp+!#"); 92 ip += 3; 93 return; 94 } 95 GROUPADD(1) 96 #endif 97 if (VM_IS_INST(*ip, 18)) { 98 add_inst(b, "branch"); 99 ip += 2; 100 return; 101 } 102 if (VM_IS_INST(*ip, 19)) { 103 add_inst(b, "?branch"); 104 ip += 2; 105 return; 106 } 107 GROUPADD(2) 108 #ifdef HAS_GLOCALS 109 if (VM_IS_INST(*ip, 20)) { 110 add_inst(b, "?branch-lp+!#"); 111 ip += 3; 112 return; 113 } 114 GROUPADD(1) 115 #endif 116 GROUPADD(0) 117 #ifdef HAS_XCONDS 118 if (VM_IS_INST(*ip, 21)) { 119 add_inst(b, "?dup-?branch"); 120 ip += 2; 121 return; 122 } 123 if (VM_IS_INST(*ip, 22)) { 124 add_inst(b, "?dup-0=-?branch"); 125 ip += 2; 126 return; 127 } 128 GROUPADD(2) 129 #endif 130 if (VM_IS_INST(*ip, 23)) { 131 add_inst(b, "(next)"); 132 ip += 2; 133 return; 134 } 135 GROUPADD(1) 136 #ifdef HAS_GLOCALS 137 if (VM_IS_INST(*ip, 24)) { 138 add_inst(b, "(next)-lp+!#"); 139 ip += 3; 140 return; 141 } 142 GROUPADD(1) 143 #endif 144 if (VM_IS_INST(*ip, 25)) { 145 add_inst(b, "(loop)"); 146 ip += 2; 147 return; 148 } 149 GROUPADD(1) 150 #ifdef HAS_GLOCALS 151 if (VM_IS_INST(*ip, 26)) { 152 add_inst(b, "(loop)-lp+!#"); 153 ip += 3; 154 return; 155 } 156 GROUPADD(1) 157 #endif 158 if (VM_IS_INST(*ip, 27)) { 159 add_inst(b, "(+loop)"); 160 ip += 2; 161 return; 162 } 163 GROUPADD(1) 164 #ifdef HAS_GLOCALS 165 if (VM_IS_INST(*ip, 28)) { 166 add_inst(b, "(+loop)-lp+!#"); 167 ip += 3; 168 return; 169 } 170 GROUPADD(1) 171 #endif 172 GROUPADD(0) 173 #ifdef HAS_XCONDS 174 if (VM_IS_INST(*ip, 29)) { 175 add_inst(b, "(-loop)"); 176 ip += 2; 177 return; 178 } 179 GROUPADD(1) 180 #ifdef HAS_GLOCALS 181 if (VM_IS_INST(*ip, 30)) { 182 add_inst(b, "(-loop)-lp+!#"); 183 ip += 3; 184 return; 185 } 186 GROUPADD(1) 187 #endif 188 if (VM_IS_INST(*ip, 31)) { 189 add_inst(b, "(s+loop)"); 190 ip += 2; 191 return; 192 } 193 GROUPADD(1) 194 #ifdef HAS_GLOCALS 195 if (VM_IS_INST(*ip, 32)) { 196 add_inst(b, "(s+loop)-lp+!#"); 197 ip += 3; 198 return; 199 } 200 GROUPADD(1) 201 #endif 202 GROUPADD(0) 203 #endif 204 if (VM_IS_INST(*ip, 33)) { 205 add_inst(b, "(for)"); 206 ip += 1; 207 goto _endif_; 208 } 209 if (VM_IS_INST(*ip, 34)) { 210 add_inst(b, "(do)"); 211 ip += 1; 212 goto _endif_; 213 } 214 if (VM_IS_INST(*ip, 35)) { 215 add_inst(b, "(?do)"); 216 ip += 2; 217 return; 218 } 219 GROUPADD(3) 220 #ifdef HAS_XCONDS 221 if (VM_IS_INST(*ip, 36)) { 222 add_inst(b, "(+do)"); 223 ip += 2; 224 return; 225 } 226 if (VM_IS_INST(*ip, 37)) { 227 add_inst(b, "(u+do)"); 228 ip += 2; 229 return; 230 } 231 if (VM_IS_INST(*ip, 38)) { 232 add_inst(b, "(-do)"); 233 ip += 2; 234 return; 235 } 236 if (VM_IS_INST(*ip, 39)) { 237 add_inst(b, "(u-do)"); 238 ip += 2; 239 return; 240 } 241 GROUPADD(4) 242 #endif 243 if (VM_IS_INST(*ip, 40)) { 244 add_inst(b, "i"); 245 ip += 1; 246 goto _endif_; 247 } 248 if (VM_IS_INST(*ip, 41)) { 249 add_inst(b, "i'"); 250 ip += 1; 251 goto _endif_; 252 } 253 if (VM_IS_INST(*ip, 42)) { 254 add_inst(b, "j"); 255 ip += 1; 256 goto _endif_; 257 } 258 if (VM_IS_INST(*ip, 43)) { 259 add_inst(b, "k"); 260 ip += 1; 261 goto _endif_; 262 } 263 GROUPADD(4) 264 GROUP( strings, 44) 265 if (VM_IS_INST(*ip, 44)) { 266 add_inst(b, "move"); 267 ip += 1; 268 goto _endif_; 269 } 270 if (VM_IS_INST(*ip, 45)) { 271 add_inst(b, "cmove"); 272 ip += 1; 273 goto _endif_; 274 } 275 if (VM_IS_INST(*ip, 46)) { 276 add_inst(b, "cmove>"); 277 ip += 1; 278 goto _endif_; 279 } 280 if (VM_IS_INST(*ip, 47)) { 281 add_inst(b, "fill"); 282 ip += 1; 283 goto _endif_; 284 } 285 if (VM_IS_INST(*ip, 48)) { 286 add_inst(b, "compare"); 287 ip += 1; 288 goto _endif_; 289 } 290 if (VM_IS_INST(*ip, 49)) { 291 add_inst(b, "toupper"); 292 ip += 1; 293 goto _endif_; 294 } 295 if (VM_IS_INST(*ip, 50)) { 296 add_inst(b, "capscompare"); 297 ip += 1; 298 goto _endif_; 299 } 300 if (VM_IS_INST(*ip, 51)) { 301 add_inst(b, "/string"); 302 ip += 1; 303 goto _endif_; 304 } 305 GROUPADD(8) 306 GROUP( arith, 52) 307 if (VM_IS_INST(*ip, 52)) { 308 add_inst(b, "lit"); 309 ip += 2; 310 goto _endif_; 311 } 312 if (VM_IS_INST(*ip, 53)) { 313 add_inst(b, "+"); 314 ip += 1; 315 goto _endif_; 316 } 317 if (VM_IS_INST(*ip, 54)) { 318 add_inst(b, "lit+"); 319 ip += 2; 320 goto _endif_; 321 } 322 if (VM_IS_INST(*ip, 55)) { 323 add_inst(b, "under+"); 324 ip += 1; 325 goto _endif_; 326 } 327 if (VM_IS_INST(*ip, 56)) { 328 add_inst(b, "-"); 329 ip += 1; 330 goto _endif_; 331 } 332 if (VM_IS_INST(*ip, 57)) { 333 add_inst(b, "negate"); 334 ip += 1; 335 goto _endif_; 336 } 337 if (VM_IS_INST(*ip, 58)) { 338 add_inst(b, "1+"); 339 ip += 1; 340 goto _endif_; 341 } 342 if (VM_IS_INST(*ip, 59)) { 343 add_inst(b, "1-"); 344 ip += 1; 345 goto _endif_; 346 } 347 if (VM_IS_INST(*ip, 60)) { 348 add_inst(b, "max"); 349 ip += 1; 350 goto _endif_; 351 } 352 if (VM_IS_INST(*ip, 61)) { 353 add_inst(b, "min"); 354 ip += 1; 355 goto _endif_; 356 } 357 if (VM_IS_INST(*ip, 62)) { 358 add_inst(b, "abs"); 359 ip += 1; 360 goto _endif_; 361 } 362 if (VM_IS_INST(*ip, 63)) { 363 add_inst(b, "*"); 364 ip += 1; 365 goto _endif_; 366 } 367 if (VM_IS_INST(*ip, 64)) { 368 add_inst(b, "/"); 369 ip += 1; 370 goto _endif_; 371 } 372 if (VM_IS_INST(*ip, 65)) { 373 add_inst(b, "mod"); 374 ip += 1; 375 goto _endif_; 376 } 377 if (VM_IS_INST(*ip, 66)) { 378 add_inst(b, "/mod"); 379 ip += 1; 380 goto _endif_; 381 } 382 if (VM_IS_INST(*ip, 67)) { 383 add_inst(b, "*/mod"); 384 ip += 1; 385 goto _endif_; 386 } 387 if (VM_IS_INST(*ip, 68)) { 388 add_inst(b, "*/"); 389 ip += 1; 390 goto _endif_; 391 } 392 if (VM_IS_INST(*ip, 69)) { 393 add_inst(b, "2*"); 394 ip += 1; 395 goto _endif_; 396 } 397 if (VM_IS_INST(*ip, 70)) { 398 add_inst(b, "2/"); 399 ip += 1; 400 goto _endif_; 401 } 402 if (VM_IS_INST(*ip, 71)) { 403 add_inst(b, "fm/mod"); 404 ip += 1; 405 goto _endif_; 406 } 407 if (VM_IS_INST(*ip, 72)) { 408 add_inst(b, "sm/rem"); 409 ip += 1; 410 goto _endif_; 411 } 412 if (VM_IS_INST(*ip, 73)) { 413 add_inst(b, "m*"); 414 ip += 1; 415 goto _endif_; 416 } 417 if (VM_IS_INST(*ip, 74)) { 418 add_inst(b, "um*"); 419 ip += 1; 420 goto _endif_; 421 } 422 if (VM_IS_INST(*ip, 75)) { 423 add_inst(b, "um/mod"); 424 ip += 1; 425 goto _endif_; 426 } 427 if (VM_IS_INST(*ip, 76)) { 428 add_inst(b, "m+"); 429 ip += 1; 430 goto _endif_; 431 } 432 if (VM_IS_INST(*ip, 77)) { 433 add_inst(b, "d+"); 434 ip += 1; 435 goto _endif_; 436 } 437 if (VM_IS_INST(*ip, 78)) { 438 add_inst(b, "d-"); 439 ip += 1; 440 goto _endif_; 441 } 442 if (VM_IS_INST(*ip, 79)) { 443 add_inst(b, "dnegate"); 444 ip += 1; 445 goto _endif_; 446 } 447 if (VM_IS_INST(*ip, 80)) { 448 add_inst(b, "d2*"); 449 ip += 1; 450 goto _endif_; 451 } 452 if (VM_IS_INST(*ip, 81)) { 453 add_inst(b, "d2/"); 454 ip += 1; 455 goto _endif_; 456 } 457 if (VM_IS_INST(*ip, 82)) { 458 add_inst(b, "and"); 459 ip += 1; 460 goto _endif_; 461 } 462 if (VM_IS_INST(*ip, 83)) { 463 add_inst(b, "or"); 464 ip += 1; 465 goto _endif_; 466 } 467 if (VM_IS_INST(*ip, 84)) { 468 add_inst(b, "xor"); 469 ip += 1; 470 goto _endif_; 471 } 472 if (VM_IS_INST(*ip, 85)) { 473 add_inst(b, "invert"); 474 ip += 1; 475 goto _endif_; 476 } 477 if (VM_IS_INST(*ip, 86)) { 478 add_inst(b, "rshift"); 479 ip += 1; 480 goto _endif_; 481 } 482 if (VM_IS_INST(*ip, 87)) { 483 add_inst(b, "lshift"); 484 ip += 1; 485 goto _endif_; 486 } 487 GROUPADD(36) 488 GROUP( compare, 88) 489 if (VM_IS_INST(*ip, 88)) { 490 add_inst(b, "0="); 491 ip += 1; 492 goto _endif_; 493 } 494 if (VM_IS_INST(*ip, 89)) { 495 add_inst(b, "0<>"); 496 ip += 1; 497 goto _endif_; 498 } 499 if (VM_IS_INST(*ip, 90)) { 500 add_inst(b, "0<"); 501 ip += 1; 502 goto _endif_; 503 } 504 if (VM_IS_INST(*ip, 91)) { 505 add_inst(b, "0>"); 506 ip += 1; 507 goto _endif_; 508 } 509 if (VM_IS_INST(*ip, 92)) { 510 add_inst(b, "0<="); 511 ip += 1; 512 goto _endif_; 513 } 514 if (VM_IS_INST(*ip, 93)) { 515 add_inst(b, "0>="); 516 ip += 1; 517 goto _endif_; 518 } 519 if (VM_IS_INST(*ip, 94)) { 520 add_inst(b, "="); 521 ip += 1; 522 goto _endif_; 523 } 524 if (VM_IS_INST(*ip, 95)) { 525 add_inst(b, "<>"); 526 ip += 1; 527 goto _endif_; 528 } 529 if (VM_IS_INST(*ip, 96)) { 530 add_inst(b, "<"); 531 ip += 1; 532 goto _endif_; 533 } 534 if (VM_IS_INST(*ip, 97)) { 535 add_inst(b, ">"); 536 ip += 1; 537 goto _endif_; 538 } 539 if (VM_IS_INST(*ip, 98)) { 540 add_inst(b, "<="); 541 ip += 1; 542 goto _endif_; 543 } 544 if (VM_IS_INST(*ip, 99)) { 545 add_inst(b, ">="); 546 ip += 1; 547 goto _endif_; 548 } 549 if (VM_IS_INST(*ip, 100)) { 550 add_inst(b, "u="); 551 ip += 1; 552 goto _endif_; 553 } 554 if (VM_IS_INST(*ip, 101)) { 555 add_inst(b, "u<>"); 556 ip += 1; 557 goto _endif_; 558 } 559 if (VM_IS_INST(*ip, 102)) { 560 add_inst(b, "u<"); 561 ip += 1; 562 goto _endif_; 563 } 564 if (VM_IS_INST(*ip, 103)) { 565 add_inst(b, "u>"); 566 ip += 1; 567 goto _endif_; 568 } 569 if (VM_IS_INST(*ip, 104)) { 570 add_inst(b, "u<="); 571 ip += 1; 572 goto _endif_; 573 } 574 if (VM_IS_INST(*ip, 105)) { 575 add_inst(b, "u>="); 576 ip += 1; 577 goto _endif_; 578 } 579 GROUPADD(18) 580 #ifdef HAS_DCOMPS 581 if (VM_IS_INST(*ip, 106)) { 582 add_inst(b, "d="); 583 ip += 1; 584 goto _endif_; 585 } 586 if (VM_IS_INST(*ip, 107)) { 587 add_inst(b, "d<>"); 588 ip += 1; 589 goto _endif_; 590 } 591 if (VM_IS_INST(*ip, 108)) { 592 add_inst(b, "d<"); 593 ip += 1; 594 goto _endif_; 595 } 596 if (VM_IS_INST(*ip, 109)) { 597 add_inst(b, "d>"); 598 ip += 1; 599 goto _endif_; 600 } 601 if (VM_IS_INST(*ip, 110)) { 602 add_inst(b, "d<="); 603 ip += 1; 604 goto _endif_; 605 } 606 if (VM_IS_INST(*ip, 111)) { 607 add_inst(b, "d>="); 608 ip += 1; 609 goto _endif_; 610 } 611 if (VM_IS_INST(*ip, 112)) { 612 add_inst(b, "d0="); 613 ip += 1; 614 goto _endif_; 615 } 616 if (VM_IS_INST(*ip, 113)) { 617 add_inst(b, "d0<>"); 618 ip += 1; 619 goto _endif_; 620 } 621 if (VM_IS_INST(*ip, 114)) { 622 add_inst(b, "d0<"); 623 ip += 1; 624 goto _endif_; 625 } 626 if (VM_IS_INST(*ip, 115)) { 627 add_inst(b, "d0>"); 628 ip += 1; 629 goto _endif_; 630 } 631 if (VM_IS_INST(*ip, 116)) { 632 add_inst(b, "d0<="); 633 ip += 1; 634 goto _endif_; 635 } 636 if (VM_IS_INST(*ip, 117)) { 637 add_inst(b, "d0>="); 638 ip += 1; 639 goto _endif_; 640 } 641 if (VM_IS_INST(*ip, 118)) { 642 add_inst(b, "du="); 643 ip += 1; 644 goto _endif_; 645 } 646 if (VM_IS_INST(*ip, 119)) { 647 add_inst(b, "du<>"); 648 ip += 1; 649 goto _endif_; 650 } 651 if (VM_IS_INST(*ip, 120)) { 652 add_inst(b, "du<"); 653 ip += 1; 654 goto _endif_; 655 } 656 if (VM_IS_INST(*ip, 121)) { 657 add_inst(b, "du>"); 658 ip += 1; 659 goto _endif_; 660 } 661 if (VM_IS_INST(*ip, 122)) { 662 add_inst(b, "du<="); 663 ip += 1; 664 goto _endif_; 665 } 666 if (VM_IS_INST(*ip, 123)) { 667 add_inst(b, "du>="); 668 ip += 1; 669 goto _endif_; 670 } 671 GROUPADD(18) 672 #endif 673 if (VM_IS_INST(*ip, 124)) { 674 add_inst(b, "within"); 675 ip += 1; 676 goto _endif_; 677 } 678 GROUPADD(1) 679 GROUP( stack, 125) 680 if (VM_IS_INST(*ip, 125)) { 681 add_inst(b, "useraddr"); 682 ip += 2; 683 goto _endif_; 684 } 685 if (VM_IS_INST(*ip, 126)) { 686 add_inst(b, "up!"); 687 ip += 1; 688 goto _endif_; 689 } 690 if (VM_IS_INST(*ip, 127)) { 691 add_inst(b, "sp@"); 692 ip += 1; 693 goto _endif_; 694 } 695 if (VM_IS_INST(*ip, 128)) { 696 add_inst(b, "sp!"); 697 ip += 1; 698 goto _endif_; 699 } 700 if (VM_IS_INST(*ip, 129)) { 701 add_inst(b, "rp@"); 702 ip += 1; 703 goto _endif_; 704 } 705 if (VM_IS_INST(*ip, 130)) { 706 add_inst(b, "rp!"); 707 ip += 1; 708 goto _endif_; 709 } 710 GROUPADD(6) 711 #ifdef HAS_FLOATING 712 if (VM_IS_INST(*ip, 131)) { 713 add_inst(b, "fp@"); 714 ip += 1; 715 goto _endif_; 716 } 717 if (VM_IS_INST(*ip, 132)) { 718 add_inst(b, "fp!"); 719 ip += 1; 720 goto _endif_; 721 } 722 GROUPADD(2) 723 #endif 724 if (VM_IS_INST(*ip, 133)) { 725 add_inst(b, ">r"); 726 ip += 1; 727 goto _endif_; 728 } 729 if (VM_IS_INST(*ip, 134)) { 730 add_inst(b, "r>"); 731 ip += 1; 732 goto _endif_; 733 } 734 if (VM_IS_INST(*ip, 135)) { 735 add_inst(b, "rdrop"); 736 ip += 1; 737 goto _endif_; 738 } 739 if (VM_IS_INST(*ip, 136)) { 740 add_inst(b, "2>r"); 741 ip += 1; 742 goto _endif_; 743 } 744 if (VM_IS_INST(*ip, 137)) { 745 add_inst(b, "2r>"); 746 ip += 1; 747 goto _endif_; 748 } 749 if (VM_IS_INST(*ip, 138)) { 750 add_inst(b, "2r@"); 751 ip += 1; 752 goto _endif_; 753 } 754 if (VM_IS_INST(*ip, 139)) { 755 add_inst(b, "2rdrop"); 756 ip += 1; 757 goto _endif_; 758 } 759 if (VM_IS_INST(*ip, 140)) { 760 add_inst(b, "over"); 761 ip += 1; 762 goto _endif_; 763 } 764 if (VM_IS_INST(*ip, 141)) { 765 add_inst(b, "drop"); 766 ip += 1; 767 goto _endif_; 768 } 769 if (VM_IS_INST(*ip, 142)) { 770 add_inst(b, "swap"); 771 ip += 1; 772 goto _endif_; 773 } 774 if (VM_IS_INST(*ip, 143)) { 775 add_inst(b, "dup"); 776 ip += 1; 777 goto _endif_; 778 } 779 if (VM_IS_INST(*ip, 144)) { 780 add_inst(b, "rot"); 781 ip += 1; 782 goto _endif_; 783 } 784 if (VM_IS_INST(*ip, 145)) { 785 add_inst(b, "-rot"); 786 ip += 1; 787 goto _endif_; 788 } 789 if (VM_IS_INST(*ip, 146)) { 790 add_inst(b, "nip"); 791 ip += 1; 792 goto _endif_; 793 } 794 if (VM_IS_INST(*ip, 147)) { 795 add_inst(b, "tuck"); 796 ip += 1; 797 goto _endif_; 798 } 799 if (VM_IS_INST(*ip, 148)) { 800 add_inst(b, "?dup"); 801 ip += 1; 802 goto _endif_; 803 } 804 if (VM_IS_INST(*ip, 149)) { 805 add_inst(b, "pick"); 806 ip += 1; 807 goto _endif_; 808 } 809 if (VM_IS_INST(*ip, 150)) { 810 add_inst(b, "2drop"); 811 ip += 1; 812 goto _endif_; 813 } 814 if (VM_IS_INST(*ip, 151)) { 815 add_inst(b, "2dup"); 816 ip += 1; 817 goto _endif_; 818 } 819 if (VM_IS_INST(*ip, 152)) { 820 add_inst(b, "2over"); 821 ip += 1; 822 goto _endif_; 823 } 824 if (VM_IS_INST(*ip, 153)) { 825 add_inst(b, "2swap"); 826 ip += 1; 827 goto _endif_; 828 } 829 if (VM_IS_INST(*ip, 154)) { 830 add_inst(b, "2rot"); 831 ip += 1; 832 goto _endif_; 833 } 834 if (VM_IS_INST(*ip, 155)) { 835 add_inst(b, "2nip"); 836 ip += 1; 837 goto _endif_; 838 } 839 if (VM_IS_INST(*ip, 156)) { 840 add_inst(b, "2tuck"); 841 ip += 1; 842 goto _endif_; 843 } 844 GROUPADD(24) 845 GROUP( memory, 157) 846 if (VM_IS_INST(*ip, 157)) { 847 add_inst(b, "@"); 848 ip += 1; 849 goto _endif_; 850 } 851 if (VM_IS_INST(*ip, 158)) { 852 add_inst(b, "lit@"); 853 ip += 2; 854 goto _endif_; 855 } 856 if (VM_IS_INST(*ip, 159)) { 857 add_inst(b, "!"); 858 ip += 1; 859 goto _endif_; 860 } 861 if (VM_IS_INST(*ip, 160)) { 862 add_inst(b, "+!"); 863 ip += 1; 864 goto _endif_; 865 } 866 if (VM_IS_INST(*ip, 161)) { 867 add_inst(b, "c@"); 868 ip += 1; 869 goto _endif_; 870 } 871 if (VM_IS_INST(*ip, 162)) { 872 add_inst(b, "c!"); 873 ip += 1; 874 goto _endif_; 875 } 876 if (VM_IS_INST(*ip, 163)) { 877 add_inst(b, "2!"); 878 ip += 1; 879 goto _endif_; 880 } 881 if (VM_IS_INST(*ip, 164)) { 882 add_inst(b, "2@"); 883 ip += 1; 884 goto _endif_; 885 } 886 if (VM_IS_INST(*ip, 165)) { 887 add_inst(b, "cell+"); 888 ip += 1; 889 goto _endif_; 890 } 891 if (VM_IS_INST(*ip, 166)) { 892 add_inst(b, "cells"); 893 ip += 1; 894 goto _endif_; 895 } 896 if (VM_IS_INST(*ip, 167)) { 897 add_inst(b, "char+"); 898 ip += 1; 899 goto _endif_; 900 } 901 if (VM_IS_INST(*ip, 168)) { 902 add_inst(b, "(chars)"); 903 ip += 1; 904 goto _endif_; 905 } 906 if (VM_IS_INST(*ip, 169)) { 907 add_inst(b, "count"); 908 ip += 1; 909 goto _endif_; 910 } 911 GROUPADD(13) 912 GROUP( compiler, 170) 913 GROUPADD(0) 914 #ifdef HAS_F83HEADERSTRING 915 if (VM_IS_INST(*ip, 170)) { 916 add_inst(b, "(f83find)"); 917 ip += 1; 918 goto _endif_; 919 } 920 GROUPADD(1) 921 #else /* 171 */ 922 if (VM_IS_INST(*ip, 171)) { 923 add_inst(b, "(listlfind)"); 924 ip += 1; 925 goto _endif_; 926 } 927 GROUPADD(1) 928 #ifdef HAS_HASH 929 if (VM_IS_INST(*ip, 172)) { 930 add_inst(b, "(hashlfind)"); 931 ip += 1; 932 goto _endif_; 933 } 934 if (VM_IS_INST(*ip, 173)) { 935 add_inst(b, "(tablelfind)"); 936 ip += 1; 937 goto _endif_; 938 } 939 if (VM_IS_INST(*ip, 174)) { 940 add_inst(b, "(hashkey1)"); 941 ip += 1; 942 goto _endif_; 943 } 944 GROUPADD(3) 945 #endif 946 GROUPADD(0) 947 #endif 948 if (VM_IS_INST(*ip, 175)) { 949 add_inst(b, "(parse-white)"); 950 ip += 1; 951 goto _endif_; 952 } 953 if (VM_IS_INST(*ip, 176)) { 954 add_inst(b, "aligned"); 955 ip += 1; 956 goto _endif_; 957 } 958 if (VM_IS_INST(*ip, 177)) { 959 add_inst(b, "faligned"); 960 ip += 1; 961 goto _endif_; 962 } 963 if (VM_IS_INST(*ip, 178)) { 964 add_inst(b, "threading-method"); 965 ip += 1; 966 goto _endif_; 967 } 968 GROUPADD(4) 969 GROUP( hostos, 179) 970 if (VM_IS_INST(*ip, 179)) { 971 add_inst(b, "key-file"); 972 ip += 1; 973 goto _endif_; 974 } 975 if (VM_IS_INST(*ip, 180)) { 976 add_inst(b, "key?-file"); 977 ip += 1; 978 goto _endif_; 979 } 980 if (VM_IS_INST(*ip, 181)) { 981 add_inst(b, "stdin"); 982 ip += 1; 983 goto _endif_; 984 } 985 if (VM_IS_INST(*ip, 182)) { 986 add_inst(b, "stdout"); 987 ip += 1; 988 goto _endif_; 989 } 990 if (VM_IS_INST(*ip, 183)) { 991 add_inst(b, "stderr"); 992 ip += 1; 993 goto _endif_; 994 } 995 GROUPADD(5) 996 #ifdef HAS_OS 997 if (VM_IS_INST(*ip, 184)) { 998 add_inst(b, "form"); 999 ip += 1; 1000 goto _endif_; 1001 } 1002 if (VM_IS_INST(*ip, 185)) { 1003 add_inst(b, "wcwidth"); 1004 ip += 1; 1005 goto _endif_; 1006 } 1007 if (VM_IS_INST(*ip, 186)) { 1008 add_inst(b, "flush-icache"); 1009 ip += 1; 1010 goto _endif_; 1011 } 1012 if (VM_IS_INST(*ip, 187)) { 1013 add_inst(b, "(bye)"); 1014 ip += 1; 1015 return; 1016 } 1017 if (VM_IS_INST(*ip, 188)) { 1018 add_inst(b, "(system)"); 1019 ip += 1; 1020 goto _endif_; 1021 } 1022 if (VM_IS_INST(*ip, 189)) { 1023 add_inst(b, "getenv"); 1024 ip += 1; 1025 goto _endif_; 1026 } 1027 if (VM_IS_INST(*ip, 190)) { 1028 add_inst(b, "open-pipe"); 1029 ip += 1; 1030 goto _endif_; 1031 } 1032 if (VM_IS_INST(*ip, 191)) { 1033 add_inst(b, "close-pipe"); 1034 ip += 1; 1035 goto _endif_; 1036 } 1037 if (VM_IS_INST(*ip, 192)) { 1038 add_inst(b, "time&date"); 1039 ip += 1; 1040 goto _endif_; 1041 } 1042 if (VM_IS_INST(*ip, 193)) { 1043 add_inst(b, "ms"); 1044 ip += 1; 1045 goto _endif_; 1046 } 1047 if (VM_IS_INST(*ip, 194)) { 1048 add_inst(b, "allocate"); 1049 ip += 1; 1050 goto _endif_; 1051 } 1052 if (VM_IS_INST(*ip, 195)) { 1053 add_inst(b, "free"); 1054 ip += 1; 1055 goto _endif_; 1056 } 1057 if (VM_IS_INST(*ip, 196)) { 1058 add_inst(b, "resize"); 1059 ip += 1; 1060 goto _endif_; 1061 } 1062 if (VM_IS_INST(*ip, 197)) { 1063 add_inst(b, "strerror"); 1064 ip += 1; 1065 goto _endif_; 1066 } 1067 if (VM_IS_INST(*ip, 198)) { 1068 add_inst(b, "strsignal"); 1069 ip += 1; 1070 goto _endif_; 1071 } 1072 if (VM_IS_INST(*ip, 199)) { 1073 add_inst(b, "call-c"); 1074 ip += 1; 1075 goto _endif_; 1076 } 1077 GROUPADD(16) 1078 #endif 1079 GROUPADD(0) 1080 #ifdef HAS_FILE 1081 if (VM_IS_INST(*ip, 200)) { 1082 add_inst(b, "close-file"); 1083 ip += 1; 1084 goto _endif_; 1085 } 1086 if (VM_IS_INST(*ip, 201)) { 1087 add_inst(b, "open-file"); 1088 ip += 1; 1089 goto _endif_; 1090 } 1091 if (VM_IS_INST(*ip, 202)) { 1092 add_inst(b, "create-file"); 1093 ip += 1; 1094 goto _endif_; 1095 } 1096 if (VM_IS_INST(*ip, 203)) { 1097 add_inst(b, "delete-file"); 1098 ip += 1; 1099 goto _endif_; 1100 } 1101 if (VM_IS_INST(*ip, 204)) { 1102 add_inst(b, "rename-file"); 1103 ip += 1; 1104 goto _endif_; 1105 } 1106 if (VM_IS_INST(*ip, 205)) { 1107 add_inst(b, "file-position"); 1108 ip += 1; 1109 goto _endif_; 1110 } 1111 if (VM_IS_INST(*ip, 206)) { 1112 add_inst(b, "reposition-file"); 1113 ip += 1; 1114 goto _endif_; 1115 } 1116 if (VM_IS_INST(*ip, 207)) { 1117 add_inst(b, "file-size"); 1118 ip += 1; 1119 goto _endif_; 1120 } 1121 if (VM_IS_INST(*ip, 208)) { 1122 add_inst(b, "resize-file"); 1123 ip += 1; 1124 goto _endif_; 1125 } 1126 if (VM_IS_INST(*ip, 209)) { 1127 add_inst(b, "read-file"); 1128 ip += 1; 1129 goto _endif_; 1130 } 1131 if (VM_IS_INST(*ip, 210)) { 1132 add_inst(b, "(read-line)"); 1133 ip += 1; 1134 goto _endif_; 1135 } 1136 GROUPADD(11) 1137 #endif 1138 if (VM_IS_INST(*ip, 211)) { 1139 add_inst(b, "write-file"); 1140 ip += 1; 1141 goto _endif_; 1142 } 1143 if (VM_IS_INST(*ip, 212)) { 1144 add_inst(b, "emit-file"); 1145 ip += 1; 1146 goto _endif_; 1147 } 1148 GROUPADD(2) 1149 #ifdef HAS_FILE 1150 if (VM_IS_INST(*ip, 213)) { 1151 add_inst(b, "flush-file"); 1152 ip += 1; 1153 goto _endif_; 1154 } 1155 if (VM_IS_INST(*ip, 214)) { 1156 add_inst(b, "file-status"); 1157 ip += 1; 1158 goto _endif_; 1159 } 1160 if (VM_IS_INST(*ip, 215)) { 1161 add_inst(b, "file-eof?"); 1162 ip += 1; 1163 goto _endif_; 1164 } 1165 if (VM_IS_INST(*ip, 216)) { 1166 add_inst(b, "open-dir"); 1167 ip += 1; 1168 goto _endif_; 1169 } 1170 if (VM_IS_INST(*ip, 217)) { 1171 add_inst(b, "read-dir"); 1172 ip += 1; 1173 goto _endif_; 1174 } 1175 if (VM_IS_INST(*ip, 218)) { 1176 add_inst(b, "close-dir"); 1177 ip += 1; 1178 goto _endif_; 1179 } 1180 if (VM_IS_INST(*ip, 219)) { 1181 add_inst(b, "filename-match"); 1182 ip += 1; 1183 goto _endif_; 1184 } 1185 if (VM_IS_INST(*ip, 220)) { 1186 add_inst(b, "set-dir"); 1187 ip += 1; 1188 goto _endif_; 1189 } 1190 if (VM_IS_INST(*ip, 221)) { 1191 add_inst(b, "get-dir"); 1192 ip += 1; 1193 goto _endif_; 1194 } 1195 if (VM_IS_INST(*ip, 222)) { 1196 add_inst(b, "=mkdir"); 1197 ip += 1; 1198 goto _endif_; 1199 } 1200 GROUPADD(10) 1201 #endif 1202 if (VM_IS_INST(*ip, 223)) { 1203 add_inst(b, "newline"); 1204 ip += 1; 1205 goto _endif_; 1206 } 1207 GROUPADD(1) 1208 #ifdef HAS_OS 1209 if (VM_IS_INST(*ip, 224)) { 1210 add_inst(b, "utime"); 1211 ip += 1; 1212 goto _endif_; 1213 } 1214 if (VM_IS_INST(*ip, 225)) { 1215 add_inst(b, "cputime"); 1216 ip += 1; 1217 goto _endif_; 1218 } 1219 GROUPADD(2) 1220 #endif 1221 GROUPADD(0) 1222 #ifdef HAS_FLOATING 1223 GROUPADD(0) 1224 GROUP( floating, 226) 1225 if (VM_IS_INST(*ip, 226)) { 1226 add_inst(b, "f="); 1227 ip += 1; 1228 goto _endif_; 1229 } 1230 if (VM_IS_INST(*ip, 227)) { 1231 add_inst(b, "f<>"); 1232 ip += 1; 1233 goto _endif_; 1234 } 1235 if (VM_IS_INST(*ip, 228)) { 1236 add_inst(b, "f<"); 1237 ip += 1; 1238 goto _endif_; 1239 } 1240 if (VM_IS_INST(*ip, 229)) { 1241 add_inst(b, "f>"); 1242 ip += 1; 1243 goto _endif_; 1244 } 1245 if (VM_IS_INST(*ip, 230)) { 1246 add_inst(b, "f<="); 1247 ip += 1; 1248 goto _endif_; 1249 } 1250 if (VM_IS_INST(*ip, 231)) { 1251 add_inst(b, "f>="); 1252 ip += 1; 1253 goto _endif_; 1254 } 1255 if (VM_IS_INST(*ip, 232)) { 1256 add_inst(b, "f0="); 1257 ip += 1; 1258 goto _endif_; 1259 } 1260 if (VM_IS_INST(*ip, 233)) { 1261 add_inst(b, "f0<>"); 1262 ip += 1; 1263 goto _endif_; 1264 } 1265 if (VM_IS_INST(*ip, 234)) { 1266 add_inst(b, "f0<"); 1267 ip += 1; 1268 goto _endif_; 1269 } 1270 if (VM_IS_INST(*ip, 235)) { 1271 add_inst(b, "f0>"); 1272 ip += 1; 1273 goto _endif_; 1274 } 1275 if (VM_IS_INST(*ip, 236)) { 1276 add_inst(b, "f0<="); 1277 ip += 1; 1278 goto _endif_; 1279 } 1280 if (VM_IS_INST(*ip, 237)) { 1281 add_inst(b, "f0>="); 1282 ip += 1; 1283 goto _endif_; 1284 } 1285 if (VM_IS_INST(*ip, 238)) { 1286 add_inst(b, "s>f"); 1287 ip += 1; 1288 goto _endif_; 1289 } 1290 if (VM_IS_INST(*ip, 239)) { 1291 add_inst(b, "d>f"); 1292 ip += 1; 1293 goto _endif_; 1294 } 1295 if (VM_IS_INST(*ip, 240)) { 1296 add_inst(b, "f>d"); 1297 ip += 1; 1298 goto _endif_; 1299 } 1300 if (VM_IS_INST(*ip, 241)) { 1301 add_inst(b, "f>s"); 1302 ip += 1; 1303 goto _endif_; 1304 } 1305 if (VM_IS_INST(*ip, 242)) { 1306 add_inst(b, "f!"); 1307 ip += 1; 1308 goto _endif_; 1309 } 1310 if (VM_IS_INST(*ip, 243)) { 1311 add_inst(b, "f@"); 1312 ip += 1; 1313 goto _endif_; 1314 } 1315 if (VM_IS_INST(*ip, 244)) { 1316 add_inst(b, "df@"); 1317 ip += 1; 1318 goto _endif_; 1319 } 1320 if (VM_IS_INST(*ip, 245)) { 1321 add_inst(b, "df!"); 1322 ip += 1; 1323 goto _endif_; 1324 } 1325 if (VM_IS_INST(*ip, 246)) { 1326 add_inst(b, "sf@"); 1327 ip += 1; 1328 goto _endif_; 1329 } 1330 if (VM_IS_INST(*ip, 247)) { 1331 add_inst(b, "sf!"); 1332 ip += 1; 1333 goto _endif_; 1334 } 1335 if (VM_IS_INST(*ip, 248)) { 1336 add_inst(b, "f+"); 1337 ip += 1; 1338 goto _endif_; 1339 } 1340 if (VM_IS_INST(*ip, 249)) { 1341 add_inst(b, "f-"); 1342 ip += 1; 1343 goto _endif_; 1344 } 1345 if (VM_IS_INST(*ip, 250)) { 1346 add_inst(b, "f*"); 1347 ip += 1; 1348 goto _endif_; 1349 } 1350 if (VM_IS_INST(*ip, 251)) { 1351 add_inst(b, "f/"); 1352 ip += 1; 1353 goto _endif_; 1354 } 1355 if (VM_IS_INST(*ip, 252)) { 1356 add_inst(b, "f**"); 1357 ip += 1; 1358 goto _endif_; 1359 } 1360 if (VM_IS_INST(*ip, 253)) { 1361 add_inst(b, "fm*"); 1362 ip += 1; 1363 goto _endif_; 1364 } 1365 if (VM_IS_INST(*ip, 254)) { 1366 add_inst(b, "fm/"); 1367 ip += 1; 1368 goto _endif_; 1369 } 1370 if (VM_IS_INST(*ip, 255)) { 1371 add_inst(b, "fm*/"); 1372 ip += 1; 1373 goto _endif_; 1374 } 1375 if (VM_IS_INST(*ip, 256)) { 1376 add_inst(b, "f**2"); 1377 ip += 1; 1378 goto _endif_; 1379 } 1380 if (VM_IS_INST(*ip, 257)) { 1381 add_inst(b, "fnegate"); 1382 ip += 1; 1383 goto _endif_; 1384 } 1385 if (VM_IS_INST(*ip, 258)) { 1386 add_inst(b, "fdrop"); 1387 ip += 1; 1388 goto _endif_; 1389 } 1390 if (VM_IS_INST(*ip, 259)) { 1391 add_inst(b, "fdup"); 1392 ip += 1; 1393 goto _endif_; 1394 } 1395 if (VM_IS_INST(*ip, 260)) { 1396 add_inst(b, "fswap"); 1397 ip += 1; 1398 goto _endif_; 1399 } 1400 if (VM_IS_INST(*ip, 261)) { 1401 add_inst(b, "fover"); 1402 ip += 1; 1403 goto _endif_; 1404 } 1405 if (VM_IS_INST(*ip, 262)) { 1406 add_inst(b, "frot"); 1407 ip += 1; 1408 goto _endif_; 1409 } 1410 if (VM_IS_INST(*ip, 263)) { 1411 add_inst(b, "fnip"); 1412 ip += 1; 1413 goto _endif_; 1414 } 1415 if (VM_IS_INST(*ip, 264)) { 1416 add_inst(b, "ftuck"); 1417 ip += 1; 1418 goto _endif_; 1419 } 1420 if (VM_IS_INST(*ip, 265)) { 1421 add_inst(b, "float+"); 1422 ip += 1; 1423 goto _endif_; 1424 } 1425 if (VM_IS_INST(*ip, 266)) { 1426 add_inst(b, "floats"); 1427 ip += 1; 1428 goto _endif_; 1429 } 1430 if (VM_IS_INST(*ip, 267)) { 1431 add_inst(b, "floor"); 1432 ip += 1; 1433 goto _endif_; 1434 } 1435 if (VM_IS_INST(*ip, 268)) { 1436 add_inst(b, "fround"); 1437 ip += 1; 1438 goto _endif_; 1439 } 1440 if (VM_IS_INST(*ip, 269)) { 1441 add_inst(b, "fmax"); 1442 ip += 1; 1443 goto _endif_; 1444 } 1445 if (VM_IS_INST(*ip, 270)) { 1446 add_inst(b, "fmin"); 1447 ip += 1; 1448 goto _endif_; 1449 } 1450 if (VM_IS_INST(*ip, 271)) { 1451 add_inst(b, "represent"); 1452 ip += 1; 1453 goto _endif_; 1454 } 1455 if (VM_IS_INST(*ip, 272)) { 1456 add_inst(b, ">float"); 1457 ip += 1; 1458 goto _endif_; 1459 } 1460 if (VM_IS_INST(*ip, 273)) { 1461 add_inst(b, "fabs"); 1462 ip += 1; 1463 goto _endif_; 1464 } 1465 if (VM_IS_INST(*ip, 274)) { 1466 add_inst(b, "facos"); 1467 ip += 1; 1468 goto _endif_; 1469 } 1470 if (VM_IS_INST(*ip, 275)) { 1471 add_inst(b, "fasin"); 1472 ip += 1; 1473 goto _endif_; 1474 } 1475 if (VM_IS_INST(*ip, 276)) { 1476 add_inst(b, "fatan"); 1477 ip += 1; 1478 goto _endif_; 1479 } 1480 if (VM_IS_INST(*ip, 277)) { 1481 add_inst(b, "fatan2"); 1482 ip += 1; 1483 goto _endif_; 1484 } 1485 if (VM_IS_INST(*ip, 278)) { 1486 add_inst(b, "fcos"); 1487 ip += 1; 1488 goto _endif_; 1489 } 1490 if (VM_IS_INST(*ip, 279)) { 1491 add_inst(b, "fexp"); 1492 ip += 1; 1493 goto _endif_; 1494 } 1495 if (VM_IS_INST(*ip, 280)) { 1496 add_inst(b, "fexpm1"); 1497 ip += 1; 1498 goto _endif_; 1499 } 1500 if (VM_IS_INST(*ip, 281)) { 1501 add_inst(b, "fln"); 1502 ip += 1; 1503 goto _endif_; 1504 } 1505 if (VM_IS_INST(*ip, 282)) { 1506 add_inst(b, "flnp1"); 1507 ip += 1; 1508 goto _endif_; 1509 } 1510 if (VM_IS_INST(*ip, 283)) { 1511 add_inst(b, "flog"); 1512 ip += 1; 1513 goto _endif_; 1514 } 1515 if (VM_IS_INST(*ip, 284)) { 1516 add_inst(b, "falog"); 1517 ip += 1; 1518 goto _endif_; 1519 } 1520 if (VM_IS_INST(*ip, 285)) { 1521 add_inst(b, "fsin"); 1522 ip += 1; 1523 goto _endif_; 1524 } 1525 if (VM_IS_INST(*ip, 286)) { 1526 add_inst(b, "fsincos"); 1527 ip += 1; 1528 goto _endif_; 1529 } 1530 if (VM_IS_INST(*ip, 287)) { 1531 add_inst(b, "fsqrt"); 1532 ip += 1; 1533 goto _endif_; 1534 } 1535 if (VM_IS_INST(*ip, 288)) { 1536 add_inst(b, "ftan"); 1537 ip += 1; 1538 goto _endif_; 1539 } 1540 if (VM_IS_INST(*ip, 289)) { 1541 add_inst(b, "fsinh"); 1542 ip += 1; 1543 goto _endif_; 1544 } 1545 if (VM_IS_INST(*ip, 290)) { 1546 add_inst(b, "fcosh"); 1547 ip += 1; 1548 goto _endif_; 1549 } 1550 if (VM_IS_INST(*ip, 291)) { 1551 add_inst(b, "ftanh"); 1552 ip += 1; 1553 goto _endif_; 1554 } 1555 if (VM_IS_INST(*ip, 292)) { 1556 add_inst(b, "fasinh"); 1557 ip += 1; 1558 goto _endif_; 1559 } 1560 if (VM_IS_INST(*ip, 293)) { 1561 add_inst(b, "facosh"); 1562 ip += 1; 1563 goto _endif_; 1564 } 1565 if (VM_IS_INST(*ip, 294)) { 1566 add_inst(b, "fatanh"); 1567 ip += 1; 1568 goto _endif_; 1569 } 1570 if (VM_IS_INST(*ip, 295)) { 1571 add_inst(b, "sfloats"); 1572 ip += 1; 1573 goto _endif_; 1574 } 1575 if (VM_IS_INST(*ip, 296)) { 1576 add_inst(b, "dfloats"); 1577 ip += 1; 1578 goto _endif_; 1579 } 1580 if (VM_IS_INST(*ip, 297)) { 1581 add_inst(b, "sfaligned"); 1582 ip += 1; 1583 goto _endif_; 1584 } 1585 if (VM_IS_INST(*ip, 298)) { 1586 add_inst(b, "dfaligned"); 1587 ip += 1; 1588 goto _endif_; 1589 } 1590 if (VM_IS_INST(*ip, 299)) { 1591 add_inst(b, "v*"); 1592 ip += 1; 1593 goto _endif_; 1594 } 1595 if (VM_IS_INST(*ip, 300)) { 1596 add_inst(b, "faxpy"); 1597 ip += 1; 1598 goto _endif_; 1599 } 1600 GROUPADD(75) 1601 #endif 1602 GROUPADD(0) 1603 #ifdef HAS_GLOCALS 1604 GROUPADD(0) 1605 GROUP( locals, 301) 1606 if (VM_IS_INST(*ip, 301)) { 1607 add_inst(b, "@local#"); 1608 ip += 2; 1609 goto _endif_; 1610 } 1611 if (VM_IS_INST(*ip, 302)) { 1612 add_inst(b, "@local0"); 1613 ip += 1; 1614 goto _endif_; 1615 } 1616 if (VM_IS_INST(*ip, 303)) { 1617 add_inst(b, "@local1"); 1618 ip += 1; 1619 goto _endif_; 1620 } 1621 if (VM_IS_INST(*ip, 304)) { 1622 add_inst(b, "@local2"); 1623 ip += 1; 1624 goto _endif_; 1625 } 1626 if (VM_IS_INST(*ip, 305)) { 1627 add_inst(b, "@local3"); 1628 ip += 1; 1629 goto _endif_; 1630 } 1631 GROUPADD(5) 1632 #ifdef HAS_FLOATING 1633 if (VM_IS_INST(*ip, 306)) { 1634 add_inst(b, "f@local#"); 1635 ip += 2; 1636 goto _endif_; 1637 } 1638 if (VM_IS_INST(*ip, 307)) { 1639 add_inst(b, "f@local0"); 1640 ip += 1; 1641 goto _endif_; 1642 } 1643 if (VM_IS_INST(*ip, 308)) { 1644 add_inst(b, "f@local1"); 1645 ip += 1; 1646 goto _endif_; 1647 } 1648 GROUPADD(3) 1649 #endif 1650 if (VM_IS_INST(*ip, 309)) { 1651 add_inst(b, "laddr#"); 1652 ip += 2; 1653 goto _endif_; 1654 } 1655 if (VM_IS_INST(*ip, 310)) { 1656 add_inst(b, "lp+!#"); 1657 ip += 2; 1658 goto _endif_; 1659 } 1660 if (VM_IS_INST(*ip, 311)) { 1661 add_inst(b, "lp-"); 1662 ip += 1; 1663 goto _endif_; 1664 } 1665 if (VM_IS_INST(*ip, 312)) { 1666 add_inst(b, "lp+"); 1667 ip += 1; 1668 goto _endif_; 1669 } 1670 if (VM_IS_INST(*ip, 313)) { 1671 add_inst(b, "lp+2"); 1672 ip += 1; 1673 goto _endif_; 1674 } 1675 if (VM_IS_INST(*ip, 314)) { 1676 add_inst(b, "lp!"); 1677 ip += 1; 1678 goto _endif_; 1679 } 1680 if (VM_IS_INST(*ip, 315)) { 1681 add_inst(b, ">l"); 1682 ip += 1; 1683 goto _endif_; 1684 } 1685 GROUPADD(7) 1686 #ifdef HAS_FLOATING 1687 if (VM_IS_INST(*ip, 316)) { 1688 add_inst(b, "f>l"); 1689 ip += 1; 1690 goto _endif_; 1691 } 1692 if (VM_IS_INST(*ip, 317)) { 1693 add_inst(b, "fpick"); 1694 ip += 1; 1695 goto _endif_; 1696 } 1697 GROUPADD(2) 1698 #endif 1699 GROUPADD(0) 1700 #endif 1701 GROUPADD(0) 1702 #ifdef HAS_OS 1703 GROUPADD(0) 1704 GROUP( syslib, 318) 1705 if (VM_IS_INST(*ip, 318)) { 1706 add_inst(b, "open-lib"); 1707 ip += 1; 1708 goto _endif_; 1709 } 1710 if (VM_IS_INST(*ip, 319)) { 1711 add_inst(b, "lib-sym"); 1712 ip += 1; 1713 goto _endif_; 1714 } 1715 if (VM_IS_INST(*ip, 320)) { 1716 add_inst(b, "wcall"); 1717 ip += 1; 1718 goto _endif_; 1719 } 1720 if (VM_IS_INST(*ip, 321)) { 1721 add_inst(b, "uw@"); 1722 ip += 1; 1723 goto _endif_; 1724 } 1725 if (VM_IS_INST(*ip, 322)) { 1726 add_inst(b, "sw@"); 1727 ip += 1; 1728 goto _endif_; 1729 } 1730 if (VM_IS_INST(*ip, 323)) { 1731 add_inst(b, "w!"); 1732 ip += 1; 1733 goto _endif_; 1734 } 1735 if (VM_IS_INST(*ip, 324)) { 1736 add_inst(b, "ul@"); 1737 ip += 1; 1738 goto _endif_; 1739 } 1740 if (VM_IS_INST(*ip, 325)) { 1741 add_inst(b, "sl@"); 1742 ip += 1; 1743 goto _endif_; 1744 } 1745 if (VM_IS_INST(*ip, 326)) { 1746 add_inst(b, "l!"); 1747 ip += 1; 1748 goto _endif_; 1749 } 1750 if (VM_IS_INST(*ip, 327)) { 1751 add_inst(b, "lib-error"); 1752 ip += 1; 1753 goto _endif_; 1754 } 1755 GROUPADD(10) 1756 #endif 1757 GROUPADD(0) 1758 GROUP( peephole, 328) 1759 GROUPADD(0) 1760 #ifdef HAS_PEEPHOLE 1761 if (VM_IS_INST(*ip, 328)) { 1762 add_inst(b, "compile-prim1"); 1763 ip += 1; 1764 goto _endif_; 1765 } 1766 if (VM_IS_INST(*ip, 329)) { 1767 add_inst(b, "finish-code"); 1768 ip += 1; 1769 goto _endif_; 1770 } 1771 if (VM_IS_INST(*ip, 330)) { 1772 add_inst(b, "forget-dyncode"); 1773 ip += 1; 1774 goto _endif_; 1775 } 1776 if (VM_IS_INST(*ip, 331)) { 1777 add_inst(b, "decompile-prim"); 1778 ip += 1; 1779 goto _endif_; 1780 } 1781 if (VM_IS_INST(*ip, 332)) { 1782 add_inst(b, "set-next-code"); 1783 ip += 2; 1784 goto _endif_; 1785 } 1786 if (VM_IS_INST(*ip, 333)) { 1787 add_inst(b, "call2"); 1788 ip += 3; 1789 goto _endif_; 1790 } 1791 if (VM_IS_INST(*ip, 334)) { 1792 add_inst(b, "tag-offsets"); 1793 ip += 1; 1794 goto _endif_; 1795 } 1796 GROUPADD(7) 1797 #endif 1798 GROUPADD(0) 1799 GROUP( static_super, 335) 1800 GROUPADD(0) 1801 GROUP( end, 335) 1802