Annotation of 43BSD/lib/pcc/table.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.