1: /
   2: / c code tables-- compile to register
   3: /
   4: 
   5: .globl  _regtab
   6: 
   7: .data
   8: _regtab=.
   9:         106.;   cr106
  10:         30.;    cr70
  11:         31.;    cr70
  12:         32.;    cr32
  13:         33.;    cr32
  14:         37.;    cr37
  15:         38.;    cr37
  16:         98.;    cr100
  17:         99.;    cr100
  18:         80.;    cr80
  19:         40.;    cr40
  20:         41.;    cr40    / - like +
  21:         42.;    cr42
  22:         43.;    cr43
  23:         44.;    cr43
  24:         45.;    cr45
  25:         46.;    cr40
  26:         55.;    cr40
  27:         48.;    cr40
  28:         49.;    cr49
  29:         70.;    cr70
  30:         71.;    cr70
  31:         72.;    cr72
  32:         73.;    cr73
  33:         74.;    cr74
  34:         75.;    cr75
  35:         76.;    cr72
  36:         78.;    cr70
  37:         85.;    cr70
  38:         79.;    cr79
  39:         102.;   cr102
  40:         51.;    cr51
  41:         52.;    cr52
  42:         56.;    cr56
  43:         57.;    cr57
  44:         58.;    cr58
  45:         59.;    cr59
  46:         91.;    cr91
  47:         82.;    cr82
  48:         83.;    cr82
  49:         84.;    cr82
  50:         86.;    cr86
  51:         87.;    cr86
  52:         88.;    cr86
  53:         0
  54: .text
  55: 
  56: / goto
  57: cr102:
  58: %a,n
  59:         jmp     A1
  60: 
  61: %n*,n
  62:         F*
  63:         jmp     #1(R)
  64: 
  65: / call
  66: cr100:
  67: %a,n
  68:         jsr     pc,IA1
  69: 
  70: %n*,n
  71:         F*
  72:         jsr     pc,#1(R)
  73: 
  74: %n,n
  75:         F
  76:         jsr     pc,(R)
  77: 
  78: / addressible
  79: cr106:
  80: %z,n
  81:         clr     R
  82: 
  83: %zf,n
  84:         clrf    R
  85: 
  86: %a,n
  87: %ad,n
  88:         movB1   A1,R
  89: 
  90: %af,n
  91:         movof   A1,R
  92: 
  93: %n*,n
  94: %nd*,n
  95:         F*
  96:         movB1   #1(R),R
  97: 
  98: %nf*,n
  99:         F*
 100:         movof   #1(R),R
 101: 
 102: %al,n
 103:         mov     A1+,R+
 104:         mov     A1,R
 105: 
 106: %nl*,n
 107:         F*
 108:         mov     #1+2(R),R+
 109:         mov     #1(R),R
 110: 
 111: / ++,-- postfix
 112: cr32:
 113: %a,1
 114:         movB1   A1',R
 115:         I'B1    A1
 116: 
 117: %aw,n
 118:         mov     A1',R
 119:         I       A2,A1
 120: 
 121: %e*,1
 122:         F1*
 123:         movB1   #1(R1),R
 124:         I'B1    #1(R1)
 125: 
 126: %n*,1
 127:         F*
 128:         movB1   #1(R),-(sp)
 129:         I'B1    #1(R)
 130:         movB1   (sp)+,R
 131: 
 132: %ew*,n
 133:         F1*
 134:         mov     #1(R1),R
 135:         I       A2,#1(R1)
 136: 
 137: %nw*,n
 138:         F*
 139:         mov     #1(R),-(sp)
 140:         I       A2,#1(R)
 141:         mov     (sp)+,R
 142: 
 143: %al,1
 144:         F
 145:         I       $1,A1+
 146:         V       A1
 147: 
 148: %el*,1
 149:         F1*
 150:         mov     #1+2(R1),R+
 151:         mov     #1(R1),R
 152:         I       $1,#1+2(R1)
 153:         V       #1(R1)
 154: 
 155: %nl*,1
 156:         F*
 157:         mov     #1+2(R),-(sp)
 158:         mov     #1(R),-(sp)
 159:         add     $1,#1+2(R)
 160:         V       #1(R)
 161:         mov     (sp)+,R
 162:         mov     (sp)+,R+
 163: 
 164: / - unary, ~
 165: cr37:
 166: %n,n
 167: %nf,n
 168:         F
 169:         IBF     R
 170: 
 171: %nl,n
 172:         F
 173:         I       R
 174:         I       R+
 175:         V       R
 176: 
 177: / =
 178: cr80:
 179: %a,n
 180: %ad,nf
 181:         S
 182:         movB1   R,A1
 183: 
 184: %af,nf
 185:         S
 186:         movfo   R,A1
 187: 
 188: %nd*,af
 189:         F*
 190:         S
 191:         movf    R,#1(R)
 192: 
 193: %n*,a
 194:         F*
 195:         movB1   A2,#1(R)
 196:         movB1   #1(R),R
 197: 
 198: %nf*,af
 199:         F*
 200:         S
 201:         movfo   R,#1(R)
 202: 
 203: %n*,e
 204:         F*
 205:         S1
 206:         movB1   R1,#1(R)
 207:         movB1   R1,R
 208: 
 209: %ed*,nf
 210:         S
 211:         F1*
 212:         movf    R,#1(R1)
 213: 
 214: %ef*,nf
 215:         S
 216:         F1*
 217:         movfo   R,#1(R1)
 218: 
 219: %n*,n
 220: %nd*,nf
 221:         FS*
 222:         S
 223:         movB1   R,*(sp)+
 224: 
 225: %nf*,nf
 226:         FS*
 227:         S
 228:         movfo   R,*(sp)+
 229: 
 230: / +, -, |, &~, <<
 231: cr40:
 232: %n,z
 233:         F
 234: 
 235: %n,1
 236:         F
 237:         I'	R
 238: 
 239: %[add1:]
 240: %n,aw
 241: %nf,ad
 242:         F
 243:         IB2     A2,R
 244: 
 245: %[add2:]
 246: %n,ew*
 247: %nf,ed*
 248:         F
 249:         S1*
 250:         IB2     #2(R1),R
 251: 
 252: %[add3:]
 253: %n,e
 254: %nf,ef
 255:         F
 256:         S1
 257:         IBF     R1,R
 258: 
 259: %[add4:]
 260: %n,nw*
 261: %nf,nd*
 262:         SS*
 263:         F
 264:         IB2     *(sp)+,R
 265: 
 266: %[add5:]
 267: %n,n
 268: %nf,nf
 269:         SS
 270:         F
 271:         IBF     (sp)+,R
 272: 
 273: %nl,c
 274:         F
 275:         I       A2,R+
 276:         V       R
 277: 
 278: %nl,al
 279:         F
 280:         I       A2,R
 281:         I       A2+,R+
 282:         V       R
 283: 
 284: %nl,el
 285:         F
 286:         S1
 287:         I       R1+,R+
 288:         V       R
 289:         I       R1,R
 290: 
 291: %nl,nl
 292:         SS
 293:         F
 294:         I       (sp)+,R
 295:         I       (sp)+,R+
 296:         V       R
 297: 
 298: / ^ -- xor
 299: cr49:
 300: %n,e
 301: %       [add3]
 302: 
 303: %n,n
 304:         FS
 305:         S
 306:         xor     R,(sp)
 307:         mov     (sp)+,R
 308: 
 309: / >> (all complicated cases taken care of by << -)
 310: cr45:
 311: %n,1
 312:         F
 313:         asr     R
 314: 
 315: / * -- R must be odd on integers
 316: cr42:
 317: %n,aw
 318: %nf,ad
 319: %       [add1]
 320: 
 321: %n,ew*
 322: %nf,ed*
 323: %       [add2]
 324: 
 325: %n,e
 326: %nf,ef
 327: %       [add3]
 328: 
 329: %n,n
 330: %nf,nf
 331: %       [add5]
 332: 
 333: / / R must be odd on integers
 334: cr43:
 335: %n,aw
 336:         F
 337:         T
 338:         sxt     R-
 339:         div     A2,R-
 340: 
 341: %n,ew*
 342:         F
 343:         T
 344:         sxt     R-
 345:         S1*
 346:         div     #2(R1),R-
 347: 
 348: %n,e
 349:         F
 350:         T
 351:         sxt     R-
 352:         S1
 353:         div     R1,R-
 354: 
 355: %n,n
 356:         SS
 357:         F
 358:         T
 359:         sxt     R-
 360:         div     (sp)+,R-
 361: 
 362: %nf,ad
 363: %       [add1]
 364: 
 365: %nf,ed*
 366: %       [add2]
 367: 
 368: %nf,ef
 369: %       [add3]
 370: 
 371: %nf,nf
 372: %       [add5]
 373: 
 374: / =+, =-, =|, =&~
 375: cr70:
 376: %[addq1:]
 377: %aw,aw
 378:         I       A2,A1'
 379:         mov     A1,R
 380: 
 381: %[addq1a:]
 382: %a,aw
 383: %ad,ad
 384:         movB1   A1',R
 385:         IBF     A2,R
 386:         movB1   R,A1
 387: 
 388: %[addq2:]
 389: %aw,nw*
 390:         S*
 391:         I       #2(R),A1'
 392:         mov     A1,R
 393: 
 394: %[addq3:]
 395: %aw,n
 396:         S
 397:         I       R,A1'
 398:         mov     A1,R
 399: 
 400: %[addq4:]
 401: %ew*,nw*
 402:         S*
 403:         F1*
 404:         I       #2(R),#1(R1)
 405:         mov     #1(R1),R
 406: 
 407: %[addq4a:]
 408: %ad,ef
 409:         movf    A1',R
 410:         S1
 411:         IBF     R1,R
 412:         movf    R,A1
 413: 
 414: %[addq5:]
 415: %a,n
 416: %ad,nf
 417:         SS
 418:         movB1   A1',R
 419:         IBF     (sp)+,R
 420:         movB1   R,A1
 421: 
 422: %[addq6:]
 423: %af,nf
 424:         SS
 425:         movof   A1',R
 426:         IBF     (sp)+,R
 427:         movfo   R,A1
 428: 
 429: %[addq7:]
 430: %ew*,n
 431:         S
 432:         F1*
 433:         I       R,#1(R1)
 434:         mov     #1(R1),R
 435: 
 436: %[addq8:]
 437: %nw*,n
 438:         SS
 439:         F*
 440:         I       (sp)+,#1(R)
 441:         mov     #1(R),R
 442: 
 443: %[addq9:]
 444: %n*,n
 445:         FS*
 446:         SS
 447:         movB1   *2(sp),R
 448:         IBF     (sp)+,R
 449:         movB1   R,*(sp)+
 450: 
 451: %[addq9a:]
 452: %nd*,nf
 453:         SS
 454:         F*
 455:         movB1   #1(R),R
 456:         IBF     (sp)+,R
 457:         movB1   R,#1(R)
 458: 
 459: %[addq10:]
 460: %nf*,nf
 461:         SS
 462:         F*
 463:         movof   #1(R),R1
 464:         IBF     (sp)+,R1
 465:         movfo   R1,#1(R)
 466:         movf    R1,R
 467: 
 468: / =*, =<< (for integer multiply, R must be odd)
 469: cr72:
 470: %a,aw
 471: %ad,ad
 472: %       [addq1a]
 473: 
 474: %af,nf
 475: %       [addq6]
 476: 
 477: %ad,ef
 478: %       [addq4a]
 479: 
 480: %a,n
 481: %ad,nf
 482: %       [addq5]
 483: 
 484: %n*,n
 485: %       [addq9]
 486: 
 487: %nd*,nf
 488: %       [addq9a]
 489: 
 490: %nf*,nf
 491: %       [addq10]
 492: 
 493: / =/ ;  R must be odd on integers
 494: cr73:
 495: %a,aw
 496:         movB1   A1',R
 497:         sxt     R-
 498:         divBF   A2,R-
 499:         movB1   R-,A1
 500: 
 501: %a,n
 502:         SS
 503:         movB1   A1',R
 504:         sxt     R-
 505:         div     (sp)+,R-
 506:         movB1   R-,A1
 507: 
 508: %e*,n
 509:         SS
 510:         F1*
 511:         movB1   #1(R1),R
 512:         sxt     R-
 513:         div     (sp)+,R-
 514:         movB1   R-,#1(R1)
 515: 
 516: %n*,n
 517:         FS*
 518:         SS
 519:         movB1   *2(sp),R
 520:         sxt     R-
 521:         div     (sp)+,R-
 522:         movB1   R-,*(sp)+
 523: 
 524: %ad,ad
 525: %       [addq1a]
 526: 
 527: %ad,ef
 528: %       [addq4a]
 529: 
 530: %ad,nf
 531: %       [addq5]
 532: 
 533: %af,nf
 534: %       [addq6]
 535: 
 536: %nd*,nf
 537: %       [addq9a]
 538: 
 539: %nf*,nf
 540: %       [addq10]
 541: 
 542: / =mod; R must be odd on integers
 543: cr74:
 544: %a,aw
 545:         movB1   A1',R
 546:         sxt     R-
 547:         div     A2,R-
 548:         movB1   R,A1
 549: 
 550: %a,n
 551:         SS
 552:         movB1   A1',R
 553:         sxt     R-
 554:         div     (sp)+,R-
 555:         movB1   R,A1
 556: 
 557: %e*,n
 558:         SS
 559:         F1*
 560:         movB1   #1(R1),R
 561:         sxt     R-
 562:         div     (sp)+,R-
 563:         movB1   R,#1(R1)
 564: 
 565: %n*,n
 566:         FS*
 567:         SS
 568:         movB1   *2(sp),R
 569:         sxt     R-
 570:         div     (sp)+,R-
 571:         mov     R,*(sp)+
 572: 
 573: / =^ -- =xor
 574: cr79:
 575: %aw,n
 576: %       [addq3]
 577: 
 578: %ab,n
 579:         SS
 580:         movb    A1',R
 581:         xor     R,(sp)
 582:         mov     (sp)+,R
 583:         movb    R,A1
 584: 
 585: %n*,n
 586:         FS*
 587:         movB1   *(sp),-(sp)
 588:         S
 589:         xor     R,(sp)
 590:         movB1   (sp)+,R
 591:         movB1   R,*(sp)+
 592: 
 593: / =>> (all complicated cases done by =<< -)
 594: cr75:
 595: %a,1
 596:         asrB1   A1'
 597:         movB1   A1,R
 598: 
 599: %n*,1
 600:         F*
 601:         asrB1   #1(R)
 602:         movB1   #1(R),R
 603: 
 604: / << for longs
 605: cr91:
 606: %nl,aw
 607: %       [add1]
 608: 
 609: %nl,ew*
 610: %       [add2]
 611: 
 612: %nl,e
 613: %       [add3]
 614: 
 615: %nl,nw*
 616: %       [add4]
 617: 
 618: %nl,n
 619: %       [add5]
 620: 
 621: / int -> float
 622: cr51:
 623: %aw,n
 624:         movif   A1,R
 625: 
 626: %nw*,n
 627:         F*
 628:         movif   #1(R),R
 629: 
 630: %n,n
 631:         F
 632:         movif   R,R
 633: 
 634: / float, double -> int
 635: cr52:
 636: %nf,n
 637:         F
 638:         movfi   R,R
 639: 
 640: / double (float) to long
 641: cr56:
 642: %nf,n
 643:         F
 644:         setl
 645:         movfi   R,-(sp)
 646:         mov     (sp)+,R
 647:         mov     (sp)+,R+
 648:         seti
 649: 
 650: / long to double
 651: cr57:
 652: %al,n
 653:         setl
 654:         movif   A1,R
 655:         seti
 656: 
 657: %nl*,n
 658:         F*
 659:         setl
 660:         movif   #1(R),R
 661:         seti
 662: 
 663: %nl,n
 664:         FS
 665:         setl
 666:         movif   (sp)+,R
 667:         seti
 668: 
 669: / integer to long
 670: cr58:
 671: %n,n
 672:         F1!
 673:         sxt     R
 674: 
 675: / long to integer
 676: cr59:
 677: %al,n
 678:         mov     A1+,R
 679: 
 680: %nl*,n
 681:         F*
 682:         mov     #1+2(R),R
 683: 
 684: %nl,n
 685:         F
 686:         mov     R+,R
 687: 
 688: / *, /, remainder for longs.
 689: cr82:
 690: %nl,nl
 691:         SS
 692:         FS
 693:         jsr     pc,I
 694:         add     $10,sp
 695: 
 696: / =*, =/, =rem for longs
 697: / Operands of the form &x op y, so stack space is known.
 698: cr86:
 699: %n,nl
 700:         SS
 701:         FS
 702:         jsr     pc,I
 703:         add     $6,sp
 704: 
 705: /
 706: / c code tables -- compile for side effects.
 707: / Also set condition codes properly (except for ++, --)
 708: /
 709: 
 710: .globl  _efftab
 711: 
 712: .data
 713: _efftab=.
 714:         30.;    ci70
 715:         31.;    ci70
 716:         32.;    ci70
 717:         33.;    ci70
 718:         80.;    ci80
 719:         70.;    ci70
 720:         71.;    ci70    / - like +
 721:         78.;    ci78
 722:         85.;    ci78
 723:         75.;    ci75
 724:         76.;    ci76
 725:         92.;    ci92
 726:         0
 727: .text
 728: 
 729: / =
 730: ci80:
 731: %[move1:]
 732: %a,z
 733: %ad,zf
 734:         I'B1    A1
 735: 
 736: %[move2:]
 737: %n*,z
 738: %nd*,zf
 739:         F*
 740:         I'B1    #1(R)
 741: 
 742: %[move3:]
 743: %a,aw
 744: %ab,a
 745:         IBE     A2,A1
 746: 
 747: %[move4:]
 748: %ab,n*
 749: %a,nw*
 750:         S*
 751:         IBE     #2(R),A1
 752: 
 753: %[move5:]
 754: %a,n
 755:         S
 756:         IB1     R,A1
 757: 
 758: %[move6:]
 759: %n*,aw
 760: %nb*,a
 761:         F*
 762:         IBE     A2,#1(R)
 763: 
 764: %[move7:]
 765: %n*,ew*
 766: %nb*,e*
 767:         F*
 768:         S1*
 769:         IBE     #2(R1),#1(R)
 770: 
 771: %[move8:]
 772: %n*,e
 773:         F*
 774:         S1
 775:         IB1     R1,#1(R)
 776: 
 777: %[move9:]
 778: %e*,nw*
 779: %eb*,n*
 780:         S*
 781:         F1*
 782:         IBE     #2(R),#1(R1)
 783: 
 784: %[move10:]
 785: %e*,n
 786:         S
 787:         F1*
 788:         IB1     R,#1(R1)
 789: 
 790: %[move11:]
 791: %n*,nw*
 792: %nb*,n*
 793:         FS*
 794:         S*
 795:         IBE     #2(R),*(sp)+
 796: 
 797: %[move12:]
 798: %n*,n
 799:         FS*
 800:         S
 801:         IB1     R,*(sp)+
 802: 
 803: %al,z
 804:         clr     A1
 805:         clr     A1+
 806: 
 807: %al,aw
 808:         mov     A2,A1+
 809:         sxt     A1
 810: 
 811: %al,nw*
 812:         mov     #2(R),A1+
 813:         sxt     A1
 814: 
 815: %al,n
 816:         S
 817:         mov     R,A1+
 818:         sxt     A1
 819: 
 820: %al,nf
 821:         S
 822:         setl
 823:         movfi   R,A1
 824:         seti
 825: 
 826: %el*,nf
 827:         S
 828:         F1*
 829:         setl
 830:         movfi   R,#1(R1)
 831:         seti
 832: 
 833: %[move13a:]
 834: %al,c
 835:         I       A2,A1+
 836:         V       A1
 837: 
 838: %[move13:]
 839: %al,al
 840:         I       A2,A1
 841:         I       A2+,A1+
 842:         V       A1
 843: 
 844: %[move14:]
 845: %al,nl*
 846:         S*
 847:         I       #2(R),A1
 848:         I       #2+2(R),A1+
 849:         V       A1
 850: 
 851: %[move14a:]
 852: %nl*,c
 853:         F*
 854:         I       A2,2+#1(R)
 855:         V       #1(R)
 856: 
 857: %[move15:]
 858: %al,nl
 859:         S
 860:         I       R,A1
 861:         I       R+,A1+
 862:         V       A1
 863: 
 864: %nl*,aw
 865:         F*
 866:         mov     A2,#1+2(R)
 867:         sxt     #1(R)
 868: 
 869: %[move16:]
 870: %el*,nl
 871:         S
 872:         F1*
 873:         I       R+,#1+2(R1)
 874:         V       #1(R1)
 875:         I       R,#1(R1)
 876: 
 877: %nl*,n
 878:         SS
 879:         F*
 880:         mov     (sp)+,#1+2(R)
 881:         sxt     #1(R)
 882: 
 883: %[move17:]
 884: %nl*,nl
 885:         SS
 886:         F*
 887:         I       (sp)+,#1(R)
 888:         I       (sp)+,#1+2(R)
 889:         V       #1(R)
 890: 
 891: / =| and =& ~
 892: ci78:
 893: %a,a
 894: %       [move3]
 895: 
 896: %a,n
 897: %       [move5]
 898: 
 899: %n*,a
 900: %       [move6]
 901: 
 902: %n*,e*
 903: %       [move7]
 904: 
 905: %n*,e
 906: %       [move8]
 907: 
 908: %e*,n*
 909: %       [move9]
 910: 
 911: %e*,n
 912: %       [move10]
 913: 
 914: %n*,n*
 915: %       [move11]
 916: 
 917: %n*,n
 918: %       [move12]
 919: 
 920: %al,c
 921: %       [move13a]
 922: 
 923: %al,al
 924: %       [move13]
 925: 
 926: %al,nl*
 927: %       [move14]
 928: 
 929: %al,nl
 930: %       [move15]
 931: 
 932: %nl*,c
 933: %       [move14a]
 934: 
 935: %el*,nl
 936: %       [move16]
 937: 
 938: %nl*,nl
 939: %       [move17]
 940: 
 941: / =+
 942: ci70:
 943: %n*,z
 944: %a,z
 945: 
 946: %a,1
 947:         I'B1    A1
 948: 
 949: %aw,aw
 950: %       [move3]
 951: 
 952: %aw,nw*
 953: %       [move4]
 954: 
 955: %aw,n
 956: %       [move5]
 957: 
 958: %n*,1
 959: %       [move2]
 960: 
 961: %ew*,nw*
 962: %       [move9]
 963: 
 964: %a,nw*
 965:         S*
 966:         movB1   A1',R1
 967:         I       #2(R),R1
 968:         movB1   R1,A1
 969: 
 970: %a,n
 971:         S
 972:         movB1   A1',R1
 973:         I       R,R1
 974:         movB1   R1,A1
 975: 
 976: %ew*,n
 977: %       [move10]
 978: 
 979: %nw*,n
 980: %       [move12]
 981: 
 982: %n*,n
 983:         SS
 984:         F*
 985:         movB1   #1(R),R1
 986:         I       (sp)+,R1
 987:         movB1   R1,#1(R)
 988: 
 989: %al,c
 990: %       [move13a]
 991: 
 992: %al,al
 993: %       [move13]
 994: 
 995: %al,nl*
 996: %       [move14]
 997: 
 998: %al,nl
 999: %       [move15]
1000: 
1001: %nl*,c
1002: %       [move14a]
1003: 
1004: %el*,nl
1005: %       [move16]
1006: 
1007: %nl*,nl
1008: %       [move17]
1009: 
1010: / =>> (all harder cases handled by =<< -)
1011: ci75:
1012: %a,1
1013:         asrB1   A1
1014: 
1015: %n*,1
1016:         F*
1017:         asrB1   #1(R)
1018: 
1019: / =<<
1020: ci76:
1021: %a,1
1022:         aslB1   A1
1023: 
1024: %n*,1
1025:         F*
1026:         aslB1   #1(R)
1027: 
1028: %r,aw
1029:         ash     A2,A1
1030: 
1031: %r,nw*
1032:         S*
1033:         ash     #2(R),A1
1034: 
1035: %r,n
1036:         S
1037:         ash     R,A1
1038: 
1039: / =<< for longs
1040: ci92:
1041: %al,aw
1042:         F
1043:         ashc    A2,R
1044:         mov     R,A1
1045:         mov     R+,A1+
1046: 
1047: %al,n
1048:         SS
1049:         F
1050:         ashc    (sp)+,R
1051:         mov     R,A1
1052:         mov     R+,A1+
1053: 
1054: %nl*,n
1055:         FS*
1056:         SS
1057:         mov     2(sp),R
1058:         mov     2(R),R+
1059:         mov     (R),R
1060:         ashc    (sp)+,R
1061:         mov     R,*(sp)
1062:         mov     (sp)+,R
1063:         mov     R+,2(R)
1064: 
1065: /
1066: / c code tables-- set condition codes
1067: /
1068: 
1069: .globl  _cctab
1070: 
1071: .data
1072: _cctab=.
1073:         106.;   cc60
1074:         28.;    rest
1075:         55.;    rest
1076:         34.;    rest
1077:         35.;    rest
1078:         36.;    rest
1079:         37.;    rest
1080:         40.;    rest
1081:         41.;    rest
1082:         42.;    rest
1083:         43.;    rest
1084:         45.;    rest
1085:         46.;    rest
1086:         81.;    cc81    / & as in "if ((a&b)==0)"
1087:         48.;    rest
1088:         60.;    cc60
1089:         61.;    cc60
1090:         62.;    cc60
1091:         63.;    cc60
1092:         64.;    cc60
1093:         65.;    cc60
1094:         66.;    cc60
1095:         67.;    cc60
1096:         68.;    cc60
1097:         69.;    cc60
1098:         72.;    rest
1099:         73.;    rest
1100:         79.;    rest
1101:         0
1102: .text
1103: 
1104: / relationals
1105: cc60:
1106: %a,z
1107: %ad,zf
1108: %       [move1]
1109: 
1110: %af,z
1111:         movof   A1,R
1112: 
1113: %n*,z
1114: %nd*,zf
1115: %       [move2]
1116: 
1117: %nf*,z
1118:         F*
1119:         movof   #1(R),R
1120: 
1121: %n,z
1122: %nf,zf
1123:         FC
1124: 
1125: %aw,aw
1126: %ab,ab
1127: %       [move3]
1128: 
1129: %nw*,aw
1130: %nb*,ab
1131: %       [move6]
1132: 
1133: %n,aw
1134: %nf,ad
1135: %       [add1]
1136: 
1137: %nw*,ew*
1138: %nb*,eb*
1139: %       [move7]
1140: 
1141: %nw*,e
1142: %       [move8]
1143: 
1144: %n,ew*
1145: %nf,ed*
1146: %       [add2]
1147: 
1148: %n,e
1149: %nf,ef
1150: %       [add3]
1151: 
1152: %nw*,nw*
1153: %nb*,nb*
1154: %       [move11]
1155: 
1156: %nw*,n
1157: %       [move12]
1158: 
1159: %n,n
1160: %nf,nf
1161: %       [add5]
1162: 
1163: / & as in "if ((a&b) ==0)"
1164: cc81:
1165: %a,a
1166: %       [move3]
1167: 
1168: %n*,a
1169: %       [move6]
1170: 
1171: %n,a
1172: %       [add1]
1173: 
1174: %n,e
1175: %       [add3]
1176: 
1177: %n,n
1178: %       [add5]
1179: 
1180: / set codes right
1181: rest:
1182: %n,n
1183: %nf,nf
1184:         H
1185: 
1186: /
1187: / c code tables-- expression to -(sp)
1188: /
1189: 
1190: .globl  _sptab
1191: 
1192: .data
1193: _sptab=.
1194:         106.;   cs106
1195:         40.;    cs40
1196:         41.;    cs40
1197:         55.;    cs40
1198:         48.;    cs40
1199:         58.;    cs58
1200:         56.;    cs56
1201:         0
1202: .text
1203: 
1204: 
1205: / name
1206: cs106:
1207: %z,n
1208: %zf,n
1209:         clrB1   -(sp)
1210: 
1211: %aw,n
1212:         mov     A1,-(sp)
1213: 
1214: %nw*,n
1215:         F*
1216:         mov     #1(R),-(sp)
1217: 
1218: %al,n
1219:         mov     A1+,-(sp)
1220:         mov     A1,-(sp)
1221: 
1222: / +, -, |, &~
1223: cs40:
1224: %n,1
1225:         FS
1226:         I'	(sp)
1227: 
1228: %n,aw
1229:         FS
1230:         I       A2,(sp)
1231: 
1232: %n,nw*
1233:         FS
1234:         S*
1235:         I       #2(R),(sp)
1236: 
1237: %n,n
1238:         FS
1239:         S
1240:         I       R,(sp)
1241: 
1242: / integer to long
1243: cs58:
1244: %n,n
1245:         FS
1246:         sxt     -(sp)
1247: 
1248: / float to long
1249: cs56:
1250: %nf,n
1251:         F
1252:         setl
1253:         movfi   R,-(sp)
1254:         seti

Defined functions

add1 defined in line 239; used 5 times
add2 defined in line 245; used 4 times
add3 defined in line 252; used 6 times
add4 defined in line 259; used 1 times
add5 defined in line 266; used 5 times
addq1 defined in line 376; never used
addq10 defined in line 459; used 2 times
addq1a defined in line 381; used 2 times
addq2 defined in line 388; never used
addq3 defined in line 394; used 1 times
addq4 defined in line 400; never used
addq4a defined in line 407; used 2 times
addq5 defined in line 414; used 2 times
addq6 defined in line 422; used 2 times
addq7 defined in line 429; never used
addq8 defined in line 436; never used
addq9 defined in line 443; used 1 times
addq9a defined in line 451; used 2 times
cc60 defined in line 1105; used 11 times
cc81 defined in line 1164; used 1 times
ci70 defined in line 942; used 6 times
ci75 defined in line 1011; used 1 times
ci76 defined in line 1020; used 1 times
ci78 defined in line 892; used 2 times
ci80 defined in line 730; used 1 times
ci92 defined in line 1040; used 1 times
cr100 defined in line 66; used 2 times
cr102 defined in line 57; used 1 times
  • in line 39
cr106 defined in line 79; used 1 times
  • in line 9
cr32 defined in line 112; used 2 times
cr37 defined in line 165; used 2 times
cr40 defined in line 231; used 5 times
cr42 defined in line 316; used 1 times
  • in line 21
cr43 defined in line 334; used 2 times
cr45 defined in line 310; used 1 times
  • in line 24
cr49 defined in line 299; used 1 times
  • in line 28
cr51 defined in line 622; used 1 times
  • in line 40
cr52 defined in line 635; used 1 times
  • in line 41
cr56 defined in line 641; used 1 times
  • in line 42
cr57 defined in line 651; used 1 times
  • in line 43
cr58 defined in line 670; used 1 times
  • in line 44
cr59 defined in line 676; used 1 times
  • in line 45
cr70 defined in line 375; used 6 times
cr72 defined in line 469; used 2 times
cr73 defined in line 494; used 1 times
  • in line 32
cr74 defined in line 543; used 1 times
  • in line 33
cr75 defined in line 594; used 1 times
  • in line 34
cr79 defined in line 574; used 1 times
  • in line 38
cr80 defined in line 178; used 1 times
  • in line 18
cr82 defined in line 689; used 3 times
cr86 defined in line 698; used 3 times
cr91 defined in line 605; used 1 times
  • in line 46
cs106 defined in line 1206; used 1 times
cs40 defined in line 1223; used 4 times
cs56 defined in line 1249; used 1 times
cs58 defined in line 1243; used 1 times
move1 defined in line 731; used 1 times
move10 defined in line 784; used 2 times
move11 defined in line 790; used 2 times
move12 defined in line 797; used 3 times
move13 defined in line 838; used 2 times
move13a defined in line 833; used 2 times
move14 defined in line 844; used 2 times
move14a defined in line 851; used 2 times
move15 defined in line 857; used 2 times
move16 defined in line 869; used 2 times
move17 defined in line 883; used 2 times
move2 defined in line 736; used 2 times
move3 defined in line 742; used 4 times
move4 defined in line 747; used 1 times
move5 defined in line 753; used 2 times
move6 defined in line 758; used 3 times
move7 defined in line 764; used 2 times
move8 defined in line 771; used 2 times
move9 defined in line 777; used 2 times
rest defined in line 1181; used 16 times

Defined variables

_cctab declared in line 1069; defined in line 1072; used 1 times
_efftab declared in line 710; defined in line 713; used 1 times
_regtab declared in line 5; defined in line 8; used 1 times
  • in line 5
_sptab declared in line 1190; defined in line 1193; used 1 times
Last modified: 1975-07-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 384
Valid CSS Valid XHTML 1.0 Strict