Annotation of 43BSDTahoe/lib/pcc/pcc.vax/table.c, revision 1.1

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" };

unix.superglobalmegacorp.com

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