|
|
1.1 ! root 1: #ifndef lint ! 2: static char *sccsid ="@(#)table.c 1.33 (Berkeley) 5/11/88"; ! 3: #endif lint ! 4: ! 5: # include "pass2.h" ! 6: ! 7: # define WPTR TPTRTO|TINT|TLONG|TFLOAT|TDOUBLE|TPOINT|TUNSIGNED|TULONG ! 8: # define AWD SNAME|SOREG|SCON|STARNM|STARREG ! 9: /* tbl */ ! 10: # define ANYSIGNED TPOINT|TINT|TLONG|TSHORT|TCHAR ! 11: # define ANYUSIGNED TUNSIGNED|TULONG|TUSHORT|TUCHAR ! 12: # define ANYFIXED ANYSIGNED|ANYUSIGNED ! 13: # define TWORD TINT|TUNSIGNED|TPOINT|TLONG|TULONG ! 14: # define NIAWD SNAME|SCON|STARNM ! 15: /* tbl */ ! 16: ! 17: struct optab table[] = { ! 18: ! 19: /* the following entry is to fix a problem with ! 20: the manner that the first pass handles the ! 21: type of a shift expression */ ! 22: PCONV, INAREG|INTAREG, ! 23: SAREG|AWD, TINT|TUNSIGNED, ! 24: SANY, TPOINT, ! 25: NAREG|NASL, RLEFT, ! 26: "", ! 27: ! 28: #if defined(FORT) || defined(SPRECC) ! 29: SCONV, INTAREG|FORCC, ! 30: SAREG|AWD, TDOUBLE, ! 31: SANY, TFLOAT, ! 32: NAREG|NASL, RESC1|RESCC, ! 33: " cvtdf AL,A1\n", ! 34: ! 35: SCONV, INTAREG|FORCC, ! 36: SAREG|AWD, ANYSIGNED, ! 37: SANY, TFLOAT, ! 38: NAREG|NASL, RESC1|RESCC, ! 39: " cvtZLf AL,TA1\n", ! 40: #endif ! 41: ! 42: /* take care of redundant conversions introduced by reclaim() */ ! 43: SCONV, INTAREG, ! 44: STAREG, TWORD, ! 45: SANY, TWORD, ! 46: 0, RLEFT, ! 47: "", ! 48: ! 49: SCONV, INTAREG, ! 50: STAREG, TDOUBLE, ! 51: SANY, TDOUBLE, ! 52: 0, RLEFT, ! 53: "", ! 54: ! 55: SCONV, INTAREG|FORCC, ! 56: SAREG|AWD, TANY, ! 57: SANY, TANY, ! 58: NAREG|NASL, RESC1|RESCC, ! 59: " ZA\n", ! 60: ! 61: SCONV, FORARG, ! 62: SAREG|AWD, TANY, ! 63: SANY, TANY, ! 64: NAREG|NASL, RNULL, ! 65: " ZV\n", ! 66: ! 67: INIT, FOREFF, ! 68: SCON, TANY, ! 69: SANY, TWORD, ! 70: 0, RNOP, ! 71: " .long CL\n", ! 72: ! 73: INIT, FOREFF, ! 74: SCON, TANY, ! 75: SANY, TSHORT|TUSHORT, ! 76: 0, RNOP, ! 77: " .word CL\n", ! 78: ! 79: INIT, FOREFF, ! 80: SCON, TANY, ! 81: SANY, TCHAR|TUCHAR, ! 82: 0, RNOP, ! 83: " .byte CL\n", ! 84: ! 85: #ifdef FORT ! 86: /* for the use of fortran only */ ! 87: ! 88: GOTO, FOREFF, ! 89: SCON, TANY, ! 90: SANY, TANY, ! 91: 0, RNOP, ! 92: " jbr CL\n", ! 93: #endif ! 94: ! 95: GOTO, FOREFF, ! 96: SNAME|SOREG, TANY, ! 97: SANY, TANY, ! 98: 0, RNOP, ! 99: " jmp *AL\n", ! 100: ! 101: GOTO, FOREFF, ! 102: SAREG, TANY, ! 103: SANY, TANY, ! 104: 0, RNOP, ! 105: " jmp (AL)\n", ! 106: ! 107: STARG, FORARG, ! 108: SCON|SOREG, TANY, ! 109: SANY, TANY, ! 110: 0, RNULL, ! 111: " subl2 ZT,sp\nZS", ! 112: ! 113: STASG, FOREFF, ! 114: SNAME|SOREG, TANY, ! 115: SCON|SAREG, TANY, ! 116: 0, RNOP, ! 117: "ZS", ! 118: ! 119: STASG, INAREG, ! 120: SNAME|SOREG, TANY, ! 121: SCON, TANY, ! 122: NAREG, RESC1, ! 123: "ZS movl AR,A1\n", ! 124: ! 125: STASG, INAREG, ! 126: SNAME|SOREG, TANY, ! 127: SAREG, TANY, ! 128: 0, RRIGHT, ! 129: " pushl AR\nZS movl (sp)+,AR\n", ! 130: ! 131: FLD, INAREG|INTAREG, ! 132: SANY, TANY, ! 133: SFLD, ANYSIGNED, ! 134: NAREG|NASR, RESC1, ! 135: " extv $H,$S,AR,A1\n", ! 136: ! 137: FLD, INAREG|INTAREG, ! 138: SANY, TANY, ! 139: SFLD, ANYUSIGNED, ! 140: NAREG|NASR, RESC1, ! 141: " extzv $H,$S,AR,A1\n", ! 142: ! 143: FLD, FORARG, ! 144: SANY, TANY, ! 145: SFLD, ANYSIGNED, ! 146: 0, RNULL, ! 147: " extv $H,$S,AR,-(sp)\n", ! 148: ! 149: FLD, FORARG, ! 150: SANY, TANY, ! 151: SFLD, ANYUSIGNED, ! 152: 0, RNULL, ! 153: " extzv $H,$S,AR,-(sp)\n", ! 154: ! 155: OPLOG, FORCC, ! 156: SAREG|AWD, TWORD, ! 157: SAREG|AWD, TWORD, ! 158: 0, RESCC, ! 159: " cmpl AL,AR\nZP", ! 160: ! 161: OPLOG, FORCC, ! 162: SAREG|AWD, TSHORT, ! 163: SAREG|AWD, TSHORT, ! 164: 0, RESCC, ! 165: " cmpw AL,AR\nZP", ! 166: ! 167: OPLOG, FORCC, ! 168: SAREG|AWD, TUSHORT, ! 169: SAREG|AWD, TUSHORT, ! 170: 0, RESCC, ! 171: " cmpw AL,AR\nZP", ! 172: ! 173: OPLOG, FORCC, ! 174: SAREG|AWD, TCHAR, ! 175: SAREG|AWD, TCHAR, ! 176: 0, RESCC, ! 177: " cmpb AL,AR\nZP", ! 178: ! 179: OPLOG, FORCC, ! 180: SAREG|AWD, TUCHAR, ! 181: SAREG|AWD, TUCHAR, ! 182: 0, RESCC, ! 183: " cmpb AL,AR\nZP", ! 184: ! 185: /* optim2() handles degenerate comparisons with constants */ ! 186: OPLOG, FORCC, ! 187: SAREG|AWD, TCHAR|TUCHAR|TSHORT|TUSHORT, ! 188: SCON, ANYFIXED, ! 189: 0, RESCC, ! 190: " cmpZL AL,AR\nZP", ! 191: ! 192: OPLOG, FORCC, ! 193: SAREG|AWD, TDOUBLE, ! 194: SAREG|AWD, TDOUBLE, ! 195: 0, RESCC, ! 196: " cmpd AL,AR\nZP", ! 197: ! 198: OPLOG, FORCC, ! 199: SAREG|AWD, TFLOAT, ! 200: SAREG|AWD, TFLOAT, ! 201: 0, RESCC, ! 202: " cmpf AL,AR\nZP", ! 203: ! 204: #ifdef FORT ! 205: /* this really ought to be taken care of farther upstream... XXX */ ! 206: OPLOG, FORCC, ! 207: SAREG|AWD, TFLOAT, ! 208: SAREG|AWD, TDOUBLE, ! 209: NAREG|NASL, RESCC, ! 210: " cvtfd AL,A1\n cmpd A1,AR\nZP", ! 211: ! 212: OPLOG, FORCC, ! 213: SAREG|AWD, TDOUBLE, ! 214: SAREG|AWD, TFLOAT, ! 215: NAREG|NASR, RESCC, ! 216: " cvtfd AR,A1\n cmpd AL,A1\nZP", ! 217: #endif ! 218: ! 219: CCODES, INAREG|INTAREG, ! 220: SANY, TANY, ! 221: SANY, TANY, ! 222: NAREG, RESC1, ! 223: " movl $1,A1\nZN", ! 224: ! 225: UNARY CALL, INTAREG, ! 226: SCON, TANY, ! 227: SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, ! 228: NAREG|NASL, RESC1, ! 229: " calls ZC,CL\n", ! 230: ! 231: UNARY CALL, INTAREG, ! 232: SAREG, TANY, ! 233: SANY, TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT|TFLOAT|TDOUBLE, ! 234: NAREG|NASL, RESC1, /* should be 0 */ ! 235: " calls ZC,(AL)\n", ! 236: ! 237: UNARY CALL, INAREG|INTAREG, ! 238: SNAME, TANY, ! 239: SANY, TANY, ! 240: NAREG|NASL, RESC1, /* really reg 0 */ ! 241: " calls ZC,*AL\n", ! 242: ! 243: UNARY CALL, INAREG|INTAREG, ! 244: SSOREG, TANY, ! 245: SANY, TANY, ! 246: NAREG|NASL, RESC1, /* really reg 0 */ ! 247: " calls ZC,*AL\n", ! 248: ! 249: ASG RS, INAREG|FOREFF|FORCC, ! 250: SAREG, TWORD, ! 251: SCON, TINT|TUNSIGNED, ! 252: 0, RLEFT|RESCC, ! 253: " extzv AR,ZU,AL,AL\n", ! 254: ! 255: ASG RS, INAREG|FOREFF|FORCC, ! 256: SAREG, TWORD, ! 257: SAREG, ANYFIXED, ! 258: NAREG, RLEFT|RESCC, ! 259: " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", ! 260: ! 261: ASG RS, INAREG|FOREFF|FORCC, ! 262: SAREG, TWORD, ! 263: SAREG|AWD, TWORD, ! 264: NAREG, RLEFT|RESCC, ! 265: " subl3 AR,$32,A1\n extzv AR,A1,AL,AL\n", ! 266: ! 267: RS, INAREG|INTAREG|FORCC, ! 268: SAREG, TWORD, ! 269: SCON, TINT|TUNSIGNED, ! 270: NAREG|NASL, RESC1|RESCC, ! 271: " extzv AR,ZU,AL,A1\n", ! 272: ! 273: ASG LS, INAREG|FOREFF|FORCC, ! 274: SAREG|AWD, TWORD, ! 275: SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, ! 276: 0, RLEFT|RESCC, ! 277: " ashl AR,AL,AL\n", ! 278: ! 279: ASG LS, INAREG|FOREFF|FORCC, ! 280: SAREG|AWD, TWORD, ! 281: SSOREG, ANYSIGNED|ANYUSIGNED, ! 282: 0, RLEFT|RESCC, ! 283: " ashl AR,AL,AL\n", ! 284: ! 285: ASG LS, INAREG|FOREFF|FORCC, ! 286: SAREG|AWD, TWORD, ! 287: SOREG, ANYSIGNED|ANYUSIGNED, ! 288: NAREG, RLEFT|RESCC, ! 289: " ZB AR,A1\n ashl A1,AL,AL\n", ! 290: ! 291: LS, INAREG|INTAREG|FORCC, ! 292: SAREG|AWD, TWORD, ! 293: SAREG|NIAWD, ANYSIGNED|ANYUSIGNED, ! 294: NAREG|NASL|NASR, RESC1|RESCC, ! 295: " ashl AR,AL,A1\n", ! 296: ! 297: LS, INAREG|INTAREG|FORCC, ! 298: SAREG|AWD, TWORD, ! 299: SSOREG, ANYSIGNED|ANYUSIGNED, ! 300: NAREG|NASL|NASR, RESC1|RESCC, ! 301: " ashl AR,AL,A1\n", ! 302: ! 303: LS, INAREG|INTAREG|FORCC, ! 304: SAREG|AWD, TWORD, ! 305: SOREG, ANYSIGNED|ANYUSIGNED, ! 306: NAREG|NASR, RESC1|RESCC, ! 307: " ZB AR,A1\n ashl A1,AL,A1\n", ! 308: ! 309: INCR, FOREFF, ! 310: SAREG|AWD, TANY, ! 311: SCON|SNAME, TANY, ! 312: 0, RLEFT, ! 313: " ZE\n", ! 314: ! 315: DECR, FOREFF, ! 316: SAREG|AWD, TANY, ! 317: SCON|SNAME, TANY, ! 318: 0, RLEFT, ! 319: " ZE\n", ! 320: ! 321: INCR, INAREG|INTAREG, ! 322: SAREG|AWD, TANY, ! 323: SCON|SNAME, TANY, ! 324: NAREG, RESC1, ! 325: " ZD\n", ! 326: ! 327: DECR, INAREG|INTAREG, ! 328: SAREG|AWD, TANY, ! 329: SCON|SNAME, TANY, ! 330: NAREG, RESC1, ! 331: " ZD\n", ! 332: ! 333: ASSIGN, INAREG|FOREFF|FORCC, ! 334: SAREG|AWD, TFLOAT|TDOUBLE, ! 335: SAREG|AWD, TUCHAR|TUSHORT, ! 336: NAREG|NASR, RLEFT|RESCC, ! 337: " ZA\n", ! 338: ! 339: ASSIGN, INAREG|FOREFF|FORCC, ! 340: SAREG|AWD, TANY, ! 341: SAREG|AWD, TANY, ! 342: 0, RLEFT|RESCC, ! 343: " ZA\n", ! 344: ! 345: ASSIGN, FOREFF, ! 346: SFLD, TANY, ! 347: SAREG|AWD, TWORD, ! 348: 0, RNOP, ! 349: " insv AR,$H,$S,AL\n", ! 350: ! 351: ASSIGN, INAREG, ! 352: SFLD, ANYSIGNED, ! 353: SAREG|AWD, TWORD, ! 354: NAREG, RESC1, ! 355: " insv AR,$H,$S,AL\n extv $H,$S,AL,A1\n", ! 356: ! 357: ASSIGN, INAREG, ! 358: SFLD, ANYUSIGNED, ! 359: SAREG|AWD, TWORD, ! 360: NAREG, RESC1, ! 361: " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n", ! 362: ! 363: ASSIGN, INAREG|FOREFF|FORCC, ! 364: SAREG|AWD, TWORD, ! 365: SFLD, ANYSIGNED, ! 366: 0, RLEFT|RESCC, ! 367: " extv $H,$S,AR,AL\n", ! 368: ! 369: ASSIGN, INAREG|FOREFF|FORCC, ! 370: SAREG|AWD, TWORD, ! 371: SFLD, ANYUSIGNED, ! 372: 0, RLEFT|RESCC, ! 373: " extzv $H,$S,AR,AL\n", ! 374: ! 375: /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */ ! 376: UNARY MUL, FOREFF, ! 377: SCC, TANY, ! 378: SCC, TANY, ! 379: 0, RNULL, ! 380: " HELP HELP HELP\n", ! 381: ! 382: OREG, INTEMP, ! 383: SANY, TANY, ! 384: SOREG, TDOUBLE, ! 385: 2*NTEMP, RESC1, ! 386: " movq AR,A1\n", ! 387: ! 388: OREG, INTEMP, ! 389: SANY, TANY, ! 390: SOREG, TANY, ! 391: NTEMP, RESC1, ! 392: " movZR AR,A1\n", ! 393: ! 394: REG, INTEMP, ! 395: SANY, TANY, ! 396: SAREG, TDOUBLE, ! 397: 2*NTEMP, RESC1, ! 398: " movq AR,A1\n", ! 399: ! 400: REG, INTEMP, ! 401: SANY, TANY, ! 402: SAREG, TANY, ! 403: NTEMP, RESC1, ! 404: " movZF AR,A1\n", ! 405: ! 406: #if defined(FORT) || defined(SPRECC) ! 407: REG, FORARG, ! 408: SANY, TANY, ! 409: SAREG, TFLOAT, ! 410: 0, RNULL, ! 411: " cvtfd AR,-(sp)\n", ! 412: ! 413: REG, FORARG, ! 414: SANY, TANY, ! 415: SAREG, TDOUBLE, ! 416: 0, RNULL, ! 417: " movq AR,-(sp)\n", ! 418: #endif ! 419: ! 420: OPLEAF, FOREFF, ! 421: SANY, TANY, ! 422: SAREG|AWD, TANY, ! 423: 0, RLEFT, ! 424: "", ! 425: ! 426: OPLTYPE, INAREG|INTAREG, ! 427: SANY, TANY, ! 428: SANY, TANY, ! 429: NAREG|NASR, RESC1, ! 430: " ZA\n", ! 431: ! 432: OPLTYPE, FORCC, ! 433: SANY, TANY, ! 434: SANY, TANY, ! 435: 0, RESCC, ! 436: " tstZR AR\n", ! 437: ! 438: OPLTYPE, FORARG, ! 439: SANY, TANY, ! 440: SANY, TANY, ! 441: 0, RNULL, ! 442: " ZV\n", ! 443: ! 444: #if defined(FORT) || defined(SPRECC) ! 445: UNARY MINUS, INTAREG|FORCC, ! 446: SAREG|AWD, TFLOAT, ! 447: SANY, TANY, ! 448: NAREG|NASL, RESC1|RESCC, ! 449: " mnegZL TAL,A1\n", ! 450: ! 451: #endif ! 452: ! 453: UNARY MINUS, INTAREG|FORCC, ! 454: SAREG|AWD, TWORD|TDOUBLE, ! 455: SANY, TANY, ! 456: NAREG|NASL, RESC1|RESCC, ! 457: " mnegZL AL,A1\n", ! 458: ! 459: COMPL, INTAREG|FORCC, ! 460: SAREG|AWD, TWORD, ! 461: SANY, TANY, ! 462: NAREG|NASL, RESC1|RESCC, ! 463: " mcomZL AL,A1\n", ! 464: ! 465: AND, FORCC, ! 466: SAREG|AWD, TCHAR|TSHORT, ! 467: SCON, ANYFIXED, ! 468: NAREG|NASL, RESCC, ! 469: " ZZ\n", ! 470: ! 471: AND, FORCC, ! 472: SAREG|AWD, TWORD|ANYUSIGNED, ! 473: SCON, ANYFIXED, ! 474: 0, RESCC, ! 475: " ZZ\n", ! 476: ! 477: ASG AND, INAREG|FOREFF|FORCC, ! 478: SAREG, TWORD, ! 479: SCON, TWORD, ! 480: 0, RLEFT|RESCC, ! 481: " bicl2 AR,AL\n", ! 482: ! 483: /* General cases for DIV and ASG DIV are handled below with OPMUL */ ! 484: /* Some special cases are handled in optim2() */ ! 485: ! 486: DIV, INAREG|FOREFF|FORCC, ! 487: SAREG|AWD, TUNSIGNED|TULONG, ! 488: SCON, ANYUSIGNED, ! 489: NAREG|NEVEN, RESC1|RESCC, ! 490: " movl AL,A1\n clrl U1\n ediv AR,A1,A1,U1\n", ! 491: ! 492: ASG DIV, INAREG|FOREFF|FORCC, ! 493: SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, ! 494: SMCON, ANYUSIGNED, ! 495: 0, RLEFT|RESCC, ! 496: " ZJ\n", ! 497: ! 498: ASG DIV, INAREG|FOREFF|FORCC, ! 499: SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, ! 500: SCON, ANYUSIGNED, ! 501: NAREG|NEVEN, RLEFT|RESCC, ! 502: " movl AL,A1\n clrl U1\n ediv AR,A1,AL,U1\n", ! 503: ! 504: MOD, INAREG|INTAREG, ! 505: SAREG|AWD, TINT|TLONG, ! 506: SAREG|AWD, TINT|TLONG, ! 507: NAREG, RESC1, ! 508: " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n", ! 509: ! 510: MOD, INAREG|FOREFF, ! 511: SAREG|AWD, TUNSIGNED|TULONG, ! 512: SMCON, ANYUSIGNED, ! 513: NAREG|NASL, RLEFT|RESC1, ! 514: " ZJ\n", ! 515: ! 516: MOD, INAREG|FOREFF, ! 517: SAREG|AWD, TUNSIGNED|TULONG, ! 518: SCON, ANYUSIGNED, ! 519: NAREG|NEVEN, RESC1, ! 520: " movl AL,A1\n clrl U1\n ediv AR,A1,U1,A1\n", ! 521: ! 522: /* should only see UNSIGNED lhs here if converted from UCHAR/USHORT lhs */ ! 523: ASG MOD, INAREG|FOREFF|FORCC, ! 524: SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, ! 525: SAREG|AWD, TINT|TLONG, ! 526: NAREG, RLEFT|RESCC, ! 527: " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n", ! 528: ! 529: ASG MOD, INAREG|FOREFF, ! 530: SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, ! 531: SMCON, ANYUSIGNED, ! 532: 0, RLEFT, ! 533: " ZJ\n", ! 534: ! 535: ASG MOD, INAREG|FOREFF, ! 536: SAREG|AWD, TINT|TLONG|TUNSIGNED|TULONG, ! 537: SCON, ANYUSIGNED, ! 538: NAREG|NEVEN, RLEFT, ! 539: " movl AL,A1\n clrl U1\n ediv AR,A1,A1,AL\n", ! 540: ! 541: ASG OPMUL, INAREG|FOREFF|FORCC, ! 542: SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, ! 543: SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, ! 544: 0, RLEFT|RESCC, ! 545: " OL2 AR,AL\n", ! 546: ! 547: OPMUL, INAREG|INTAREG|FORCC, ! 548: STAREG, TINT|TUNSIGNED|TLONG|TULONG, ! 549: SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, ! 550: 0, RLEFT|RESCC, ! 551: " OL2 AR,AL\n", ! 552: ! 553: OPMUL, INAREG|INTAREG|FORCC, ! 554: SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, ! 555: SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, ! 556: NAREG|NASL|NASR, RESC1|RESCC, ! 557: " OL3 AR,AL,A1\n", ! 558: ! 559: ASG PLUS, INAREG|FOREFF|FORCC, ! 560: SAREG|AWD, ANYFIXED, ! 561: SONE, TANY, ! 562: 0, RLEFT|RESCC, ! 563: " incZL AL\n", ! 564: ! 565: ASG MINUS, INAREG|FOREFF|FORCC, ! 566: SAREG|AWD, ANYFIXED, ! 567: SONE, TANY, ! 568: 0, RLEFT|RESCC, ! 569: " decZL AL\n", ! 570: ! 571: PLUS, INAREG|INTAREG|FORCC, ! 572: STAREG, TWORD, ! 573: SONE, TWORD, ! 574: 0, RLEFT|RESCC, ! 575: " incZL AL\n", ! 576: ! 577: MINUS, INAREG|INTAREG|FORCC, ! 578: STAREG, TWORD, ! 579: SONE, TWORD, ! 580: 0, RLEFT|RESCC, ! 581: " decZL AL\n", ! 582: ! 583: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 584: SAREG|AWD, TWORD, ! 585: SAREG|AWD, TWORD, ! 586: 0, RLEFT|RESCC, ! 587: " OL2 AR,AL\n", ! 588: ! 589: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 590: AWD, TSHORT|TUSHORT, ! 591: SAREG|SNAME|STARNM, TSHORT|TUSHORT|TINT|TUNSIGNED|TLONG|TULONG, ! 592: 0, RLEFT|RESCC, ! 593: " OW2 AR,AL\n", ! 594: ! 595: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 596: AWD, TSHORT|TUSHORT, ! 597: SSOREG, TSHORT|TUSHORT|TINT|TUNSIGNED|TLONG|TULONG, ! 598: 0, RLEFT|RESCC, ! 599: " OW2 AR,AL\n", ! 600: ! 601: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 602: AWD, TSHORT|TUSHORT, ! 603: SSCON, ANYFIXED, ! 604: 0, RLEFT|RESCC, ! 605: " OW2 AR,AL\n", ! 606: ! 607: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 608: AWD, TSHORT|TUSHORT, ! 609: AWD, TSHORT|TUSHORT, ! 610: 0, RLEFT|RESCC, ! 611: " OW2 AR,AL\n", ! 612: ! 613: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 614: AWD, TCHAR|TUCHAR, ! 615: SSOREG, ANYFIXED, ! 616: 0, RLEFT|RESCC, ! 617: " OB2 AR,AL\n", ! 618: ! 619: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 620: AWD, TCHAR|TUCHAR, ! 621: SAREG|SNAME|STARNM, ANYFIXED, ! 622: 0, RLEFT|RESCC, ! 623: " OB2 AR,AL\n", ! 624: ! 625: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 626: AWD, TCHAR|TUCHAR, ! 627: SCCON, ANYFIXED, ! 628: 0, RLEFT|RESCC, ! 629: " OB2 AR,AL\n", ! 630: ! 631: ASG OPSIMP, INAREG|FOREFF|FORCC, ! 632: AWD, TCHAR|TUCHAR, ! 633: AWD, TCHAR|TUCHAR, ! 634: 0, RLEFT|RESCC, ! 635: " OB2 AR,AL\n", ! 636: ! 637: OPSIMP, INAREG|INTAREG|FORCC, ! 638: STAREG, ANYFIXED, ! 639: SAREG|AWD, TWORD, ! 640: 0, RLEFT|RESCC, ! 641: " OL2 AR,AL\n", ! 642: ! 643: OPSIMP, INAREG|INTAREG|FORCC, ! 644: SAREG|AWD, TWORD, ! 645: SAREG|AWD, TWORD, ! 646: NAREG|NASL|NASR, RESC1|RESCC, ! 647: " OL3 AR,AL,A1\n", ! 648: ! 649: ASG OPFLOAT, INAREG|FOREFF|FORCC, ! 650: SAREG|AWD, TDOUBLE, ! 651: SAREG|AWD, TDOUBLE, ! 652: 0, RLEFT|RESCC, ! 653: " OD2 AR,AL\n", ! 654: ! 655: ASG OPFLOAT, INAREG|FOREFF|FORCC, ! 656: SAREG|AWD, TFLOAT, ! 657: SAREG|AWD, TFLOAT, ! 658: 0, RLEFT|RESCC, ! 659: #if defined(FORT) || defined(SPRECC) ! 660: " OF2 AR,TAL\n", ! 661: #else ! 662: " OF2 AR,AL\n", ! 663: #endif ! 664: ! 665: ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, ! 666: SAREG|AWD, TFLOAT, ! 667: SAREG|AWD, TDOUBLE, ! 668: NAREG, RLEFT|RESC1|RESCC, ! 669: " cvtfd AL,A1\n OD2 AR,A1\n cvtdf A1,AL\n", ! 670: ! 671: ASG OPFLOAT, INAREG|FOREFF|FORCC, ! 672: SAREG|AWD, ANYFIXED, ! 673: #ifndef SPRECC ! 674: SAREG|AWD, TDOUBLE, /* force FLOAT to register */ ! 675: #else ! 676: SAREG|AWD, TFLOAT|TDOUBLE, ! 677: #endif ! 678: NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ ! 679: " ZG\n", ! 680: ! 681: OPFLOAT, INAREG|INTAREG|FORCC, ! 682: STAREG, TDOUBLE, ! 683: SAREG|AWD, TDOUBLE, ! 684: 0, RLEFT|RESCC, ! 685: " OD2 AR,AL\n", ! 686: ! 687: OPFLOAT, INAREG|INTAREG|FORCC, ! 688: SAREG|AWD, TDOUBLE, ! 689: SAREG|AWD, TDOUBLE, ! 690: NAREG|NASL|NASR, RESC1|RESCC, ! 691: " OD3 AR,AL,A1\n", ! 692: ! 693: #if defined(FORT) || defined(SPRECC) ! 694: OPFLOAT, INAREG|INTAREG|FORCC, ! 695: STAREG, TFLOAT, ! 696: SAREG|AWD, TFLOAT, ! 697: 0, RLEFT|RESCC, ! 698: " OF2 AR,TAL\n", ! 699: ! 700: OPFLOAT, INAREG|INTAREG|FORCC, ! 701: SAREG|AWD, TFLOAT, ! 702: SAREG|AWD, TFLOAT, ! 703: NAREG|NASL|NASR, RESC1|RESCC, ! 704: " OF3 AR,AL,TA1\n", ! 705: #endif ! 706: ! 707: #ifdef FORT ! 708: /* perform some implicit conversions XXX SHOULD FIX f77 FRONT END */ ! 709: OPFLOAT, INAREG|INTAREG|FORCC, ! 710: SAREG|AWD, TFLOAT, ! 711: SAREG|AWD, TDOUBLE, ! 712: NAREG|NASL, RESC1|RESCC, ! 713: " cvtfd AL,A1\n OD2 AR,A1\n", ! 714: ! 715: OPFLOAT, INAREG|INTAREG|FORCC, ! 716: SAREG|AWD, TDOUBLE, ! 717: SAREG|AWD, TFLOAT, ! 718: NAREG|NASR, RESC1|RESCC, ! 719: " cvtfd AR,A1\n OD3 A1,AL,A1\n", ! 720: #endif ! 721: ! 722: /* Default actions for hard trees ... */ ! 723: ! 724: # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,"" ! 725: ! 726: UNARY MUL, DF( UNARY MUL ), ! 727: ! 728: INCR, DF(INCR), ! 729: ! 730: DECR, DF(INCR), ! 731: ! 732: ASSIGN, DF(ASSIGN), ! 733: ! 734: STASG, DF(STASG), ! 735: ! 736: FLD, DF(FLD), ! 737: ! 738: OPLEAF, DF(NAME), ! 739: ! 740: OPLOG, FORCC, ! 741: SANY, TANY, ! 742: SANY, TANY, ! 743: REWRITE, BITYPE, ! 744: "", ! 745: ! 746: OPLOG, DF(NOT), ! 747: ! 748: COMOP, DF(COMOP), ! 749: ! 750: INIT, DF(INIT), ! 751: ! 752: OPUNARY, DF(UNARY MINUS), ! 753: ! 754: ASG OPANY, DF(ASG PLUS), ! 755: ! 756: OPANY, DF(BITYPE), ! 757: ! 758: FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.