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

1.1     ! root        1: #ifndef lint
        !             2: static char sccsid[] = "@(#)table.c    1.24 (Berkeley) 7/14/88";
        !             3: #endif
        !             4: 
        !             5: # include "pass2.h"
        !             6: /* special shapes (SSOREG,SZERO etc.) shouldn't be or-ed */
        !             7: # define AWD SNAME|SOREG|SCON|STARNM|STARREG
        !             8: /* tbl */
        !             9: # define ANYSIGNED TPOINT|TINT|TSHORT|TCHAR
        !            10: # define ANYUSIGNED TUNSIGNED|TUSHORT|TUCHAR
        !            11: # define ANYFIXED ANYSIGNED|ANYUSIGNED
        !            12: # define TWORD TINT|TUNSIGNED|TPOINT
        !            13: /* tbl */
        !            14: 
        !            15: struct optab  table[] = {
        !            16: 
        !            17: #ifdef REG_CHAR
        !            18: PCONV, INAREG|INTAREG,
        !            19:        SAREG|AWD,      TCHAR|TSHORT,
        !            20:        SANY,   TPOINT,
        !            21:                NAREG|NASL,     RESC1,
        !            22:                "       cvtZLl  AL,A1\n",
        !            23: 
        !            24: PCONV, INAREG|INTAREG,
        !            25:        SAREG|AWD,      TUCHAR|TUSHORT,
        !            26:        SANY,   TPOINT,
        !            27:                NAREG|NASL,     RESC1,
        !            28:                "       movzZLl AL,A1\n",
        !            29: #endif
        !            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: /* take care of redundant conversions introduced by reclaim() */
        !            41: SCONV, INAREG|INTAREG,
        !            42:        STAREG, TWORD,
        !            43:        SANY,   TWORD,
        !            44:                0,      RLEFT,
        !            45:                "",
        !            46: 
        !            47: SCONV, INAREG|INTAREG,
        !            48:        SAREG|AWD,      ANYFIXED,
        !            49:        SANY,   ANYFIXED,
        !            50:                NAREG|NASL,     RESC1,
        !            51:                "       ZU\n",
        !            52: 
        !            53: SCONV, FORCC,
        !            54:        SAREG|AWD,      ANYFIXED,
        !            55:        SANY,   ANYFIXED,
        !            56:                NAREG|NASL,     RESCC,
        !            57:                "       ZV\n",
        !            58: 
        !            59: SCONV, INAREG|INTAREG|FORCC,
        !            60:        SAREG|AWD,      TDOUBLE,
        !            61:        SANY,   TFLOAT,
        !            62:                NAREG|NASL,     RESC1|RESCC,
        !            63:                "       ldd     AL\n    cvdf\n  stf     TA1\n",
        !            64: 
        !            65: SCONV, INAREG|INTAREG|FORCC,
        !            66:        SAREG|AWD,      TFLOAT,
        !            67:        SANY,   TDOUBLE,
        !            68:                NAREG|NASL,     RESC1|RESCC,
        !            69:                "       ldfd    AL\n    std     A1\n",
        !            70: 
        !            71: SCONV, INAREG|INTAREG|FORCC,
        !            72:        SAREG|AWD,      TINT,
        !            73:        SANY,   TFLOAT|TDOUBLE,
        !            74:                NAREG|NASL,     RESC1|RESCC,
        !            75:                "       cvlZR   AL\n    stZR    TA1\n",
        !            76: 
        !            77: /* the hard stuff */
        !            78: /* XXX how about TUCHAR|TUSHORT to TFLOAT|TDOUBLE? */
        !            79: SCONV, INAREG|INTAREG|FORCC,
        !            80:        SAREG|AWD,      TUNSIGNED,
        !            81:        SANY,   TFLOAT|TDOUBLE,
        !            82:                NAREG|NASL,     RESC1|RESCC,
        !            83:                "       ZY\n",
        !            84: 
        !            85: SCONV, INAREG|INTAREG|FORCC,
        !            86:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !            87:        SANY,   ANYUSIGNED,
        !            88:                NAREG|NASL,     RESC1|RESCC,
        !            89:                "       ZW\n",
        !            90: 
        !            91: /* XXX need to trim significance here? */
        !            92: SCONV, INAREG|INTAREG|FORCC,
        !            93:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !            94:        SANY,   ANYSIGNED,
        !            95:                NAREG|NASL,     RESC1|RESCC,
        !            96:                "       ldZL    AL\n    cvZLl   A1\n",
        !            97: 
        !            98: INIT,  FOREFF,
        !            99:        SCON,   TANY,
        !           100:        SANY,   TWORD,
        !           101:                0,      RNOP,
        !           102:                "       .long   CL\n",
        !           103: 
        !           104: INIT,  FOREFF,
        !           105:        SCON,   TANY,
        !           106:        SANY,   TSHORT|TUSHORT,
        !           107:                0,      RNOP,
        !           108:                "       .word   CL\n",
        !           109: 
        !           110: INIT,  FOREFF,
        !           111:        SCON,   TANY,
        !           112:        SANY,   TCHAR|TUCHAR,
        !           113:                0,      RNOP,
        !           114:                "       .byte   CL\n",
        !           115: 
        !           116: #ifdef FORT
        !           117:        /* for the use of fortran only */
        !           118: 
        !           119: GOTO,  FOREFF,
        !           120:        SCON,   TANY,
        !           121:        SANY,   TANY,
        !           122:                0,      RNOP,
        !           123:                "       jbr     CL\n",
        !           124: #endif
        !           125: 
        !           126: GOTO,  FOREFF,
        !           127:        AWD,    TANY,
        !           128:        SANY,   TANY,
        !           129:                0,      RNOP,
        !           130:                "       jmp     *AL\n",
        !           131: 
        !           132: GOTO,  FOREFF,
        !           133:        SAREG,  TANY,
        !           134:        SANY,   TANY,
        !           135:                0,      RNOP,
        !           136:                "       jmp     (AL)\n",
        !           137: 
        !           138: STARG, FORARG,
        !           139:        SCON|SOREG,     TANY,
        !           140:        SANY,   TANY,
        !           141:                NTEMP+2*NAREG,  RESC3,
        !           142:                "ZS",
        !           143: 
        !           144: STASG, FORARG,
        !           145:        SNAME|SOREG,    TANY,
        !           146:        SCON|SAREG,     TANY,
        !           147:                0,      RNULL,
        !           148:                "       ZT\nZS",
        !           149: 
        !           150: STASG, FOREFF,
        !           151:        SNAME|SOREG,    TANY,
        !           152:        SCON|SAREG,     TANY,
        !           153:                0,      RNOP,
        !           154:                "ZS",
        !           155: 
        !           156: STASG, INAREG,
        !           157:        SNAME|SOREG,    TANY,
        !           158:        SCON,   TANY,
        !           159:                NAREG,  RESC1,
        !           160:                "ZS     movl    AR,A1\n",
        !           161: 
        !           162: STASG, INAREG,
        !           163:        SNAME|SOREG,    TANY,
        !           164:        SAREG,  TANY,
        !           165:                0,      RRIGHT,
        !           166:                "       pushl   AR\nZS  movl    (sp)+,AR\n",
        !           167: 
        !           168: OPLOG, FORCC,
        !           169:        SAREG|AWD,      TWORD,
        !           170:        SAREG|AWD,      TWORD,
        !           171:                0,      RESCC,
        !           172:                "       cmpl    AL,AR\nZP",
        !           173: 
        !           174: /* more grot: constants in unsigned char/short comparisons sign-extend */
        !           175: /* optim2() ensures that SCCON/SSCON iff high bit is not set */
        !           176: OPLOG, FORCC,
        !           177:        SAREG|AWD,      TUCHAR,
        !           178:        SCCON,  TANY,
        !           179:                0,      RESCC,
        !           180:                "       cmpZL   AL,AR\nZP",
        !           181: 
        !           182: OPLOG, FORCC,
        !           183:        AWD,            TUCHAR,
        !           184:        SCON,   TANY,
        !           185:                NAREG,  RESCC,
        !           186:                "       movzZLl AL,A1\n cmpl    A1,AR\nZP",
        !           187: 
        !           188: OPLOG, FORCC,
        !           189:        SAREG|AWD,      TUSHORT,
        !           190:        SSCON,  TANY,
        !           191:                0,      RESCC,
        !           192:                "       cmpZL   AL,AR\nZP",
        !           193: 
        !           194: OPLOG, FORCC,
        !           195:        AWD,            TUSHORT,
        !           196:        SCON,   TANY,
        !           197:                NAREG,  RESCC,
        !           198:                "       movzZLl AL,A1\n cmpl    A1,AR\nZP",
        !           199: 
        !           200: /* optim2() handles degenerate comparisons with constants */
        !           201: OPLOG, FORCC,
        !           202:        SAREG|AWD,      TCHAR|TSHORT,
        !           203:        SCON,   TANY,
        !           204:                0,      RESCC,
        !           205:                "       cmpZL   AL,AR\nZP",
        !           206: 
        !           207: OPLOG, FORCC,
        !           208:        SAREG|AWD,      TSHORT,
        !           209:        SAREG|AWD,      TSHORT,
        !           210:                0,      RESCC,
        !           211:                "       cmpw    AL,AR\nZP",
        !           212: 
        !           213: OPLOG, FORCC,
        !           214:        SAREG|AWD,      TUSHORT,
        !           215:        SAREG|AWD,      TUSHORT,
        !           216:                0,      RESCC,
        !           217:                "       cmpw    AL,AR\nZP",
        !           218: 
        !           219: OPLOG, FORCC,
        !           220:        SAREG|AWD,      TCHAR,
        !           221:        SAREG|AWD,      TCHAR,
        !           222:                0,      RESCC,
        !           223:                "       cmpb    AL,AR\nZP",
        !           224: 
        !           225: OPLOG, FORCC,
        !           226:        SAREG|AWD,      TUCHAR,
        !           227:        SAREG|AWD,      TUCHAR,
        !           228:                0,      RESCC,
        !           229:                "       cmpb    AL,AR\nZP",
        !           230: 
        !           231: OPLOG, FORCC,
        !           232:        SAREG|AWD,      TFLOAT,
        !           233:        SAREG|AWD,      TFLOAT,
        !           234:                0,      RESCC,
        !           235:                "       cmpZL2  AL,AR\nZP",
        !           236: 
        !           237: OPLOG, FORCC,
        !           238:        SZERO,          TDOUBLE,
        !           239:        SAREG|AWD,      TDOUBLE,
        !           240:                0,      RESCC,
        !           241:                "       cmpf2   AL,AR\nZP",
        !           242: 
        !           243: OPLOG, FORCC,
        !           244:        SAREG|AWD,      TDOUBLE,
        !           245:        SAREG|AWD,      TDOUBLE,
        !           246:                0,      RESCC,
        !           247:                "       cmpZL2  AL,AR\nZP",
        !           248: 
        !           249: #ifdef FORT
        !           250: /* some implicit conversions made explicit to help f77 out (sigh) */
        !           251: OPLOG, FORCC,
        !           252:        SAREG|AWD,      TFLOAT,
        !           253:        SAREG|AWD,      TDOUBLE,
        !           254:                0,      RESCC,
        !           255:                "       ldfd    AL\n    cmpd    AR\nZP",
        !           256: 
        !           257: /* ought to flip this comparison, save an instruction */
        !           258: OPLOG, FORCC,
        !           259:        SAREG|AWD,      TDOUBLE,
        !           260:        SAREG|AWD,      TFLOAT,
        !           261:                NAREG|NEVEN|NASR,       RESCC,
        !           262:                "       ldfd    AR\n    std     A1\n    cmpd2   AL,A1\nZP",
        !           263: #endif
        !           264: 
        !           265: CCODES,        INAREG|INTAREG,
        !           266:        SANY,   TANY,
        !           267:        SANY,   TANY,
        !           268:                NAREG,  RESC1,
        !           269:                "       movl    $1,A1\nZN",
        !           270: 
        !           271: UNARY CALL,    INAREG|INTAREG,
        !           272:        SCON,   TANY,
        !           273:        SANY,   TANY,
        !           274:                NAREG|NASL,     RESC1, /* should be register 0 */
        !           275:                "       ZC,CL\n",
        !           276: 
        !           277: UNARY CALL,    INAREG|INTAREG,
        !           278:        SAREG,  TANY,
        !           279:        SANY,   TANY,
        !           280:                NAREG|NASL,     RESC1,  /* should be 0 */
        !           281:                "       ZC,(AL)\n",
        !           282: 
        !           283: UNARY CALL,    INAREG|INTAREG,
        !           284:        SNAME,  TANY,
        !           285:        SANY,   TANY,
        !           286:                NAREG|NASL,     RESC1,  /* really reg 0 */
        !           287:                "       ZC,*AL\n",
        !           288: 
        !           289: UNARY CALL,    INAREG|INTAREG,
        !           290:        SSOREG, TANY,
        !           291:        SANY,   TANY,
        !           292:                NAREG|NASL,     RESC1,  /* really reg 0 */
        !           293:                "       ZC,*AL\n",
        !           294: 
        !           295: FORTCALL,      INAREG|INTAREG,
        !           296:        SCON,   TANY,
        !           297:        SAREG|AWD,      TFLOAT,
        !           298:                NAREG|NASL|NASR,        RESC1,
        !           299:                "       ldf     AR\n    CLf\n   stf     TA1\n",
        !           300: 
        !           301: ASG OPSHFT,    INAREG|FOREFF|FORCC,
        !           302:        SAREG|AWD,      TWORD,
        !           303:        SAREG|SCON,     ANYFIXED,
        !           304:                0,      RLEFT|RESCC,
        !           305:                "       ZH      AR,AL,AL\n",
        !           306: 
        !           307: ASG OPSHFT,    INAREG|FOREFF|FORCC,
        !           308:        SAREG|AWD,      TWORD,
        !           309:        AWD,    TCHAR|TUCHAR,
        !           310:                0,      RLEFT|RESCC,
        !           311:                "       ZH      AR,AL,AL\n",
        !           312: 
        !           313: ASG OPSHFT,    INAREG|FOREFF|FORCC,
        !           314:        SAREG|AWD,      TWORD,
        !           315:        AWD,    ANYFIXED,
        !           316:                NAREG,  RLEFT|RESCC,
        !           317:                "       ZB      AR,A1\n ZH      A1,AL,AL\n",
        !           318: 
        !           319: OPSHFT,        INAREG|INTAREG|FORCC,
        !           320:        SAREG|AWD,      TWORD,
        !           321:        SAREG|SCON,     ANYFIXED,
        !           322:                NAREG|NASL|NASR,        RESC1|RESCC,
        !           323:                "       ZH      AR,AL,A1\n",
        !           324: 
        !           325: OPSHFT,        INAREG|INTAREG|FORCC,
        !           326:        SAREG|AWD,      TWORD,
        !           327:        AWD,    TCHAR|TUCHAR,
        !           328:                NAREG|NASL|NASR,        RESC1|RESCC,
        !           329:                "       ZH      AR,AL,A1\n",
        !           330: 
        !           331: OPSHFT,        INAREG|INTAREG|FORCC,
        !           332:        SAREG|AWD,      TWORD,
        !           333:        AWD,    ANYFIXED,
        !           334:                NAREG|NASR,     RESC1|RESCC,
        !           335:                "       ZB      AR,A1\n ZH      A1,AL,A1\n",
        !           336: 
        !           337: INCR,  FOREFF,
        !           338:        SAREG|AWD,      TANY,
        !           339:        SCON|SNAME,     TANY,
        !           340:                0,      RLEFT,
        !           341:                "       ZE\n",
        !           342: 
        !           343: DECR,  FOREFF,
        !           344:        SAREG|AWD,      TANY,
        !           345:        SCON|SNAME,     TANY,
        !           346:                0,      RLEFT,
        !           347:                "       ZE\n",
        !           348: 
        !           349: INCR,  INAREG|INTAREG,
        !           350:        SAREG|AWD,      TANY,
        !           351:        SCON|SNAME,     TANY,
        !           352:                NAREG,  RESC1,
        !           353:                "       ZD\n",
        !           354: 
        !           355: DECR,  INAREG|INTAREG,
        !           356:        SAREG|AWD,      TANY,
        !           357:        SCON|SNAME,     TANY,
        !           358:                NAREG,  RESC1,
        !           359:                "       ZD\n",
        !           360: 
        !           361: ASSIGN,        INAREG|FOREFF,
        !           362:        SAREG|AWD,      ANYFIXED,
        !           363:        SAREG|AWD,      ANYFIXED,
        !           364:                0,      RLEFT,
        !           365:                "       ZU\n",
        !           366: 
        !           367: ASSIGN,        FORCC,
        !           368:        SAREG|AWD,      ANYFIXED,
        !           369:        SAREG|AWD,      ANYFIXED,
        !           370:                0,      RESCC,
        !           371:                "       ZV\n",
        !           372: 
        !           373: ASSIGN,        INAREG|FOREFF|FORCC,
        !           374:        SIREG,  TDOUBLE,
        !           375:        SZERO,  TANY,
        !           376:                0,      RLEFT|RESCC,
        !           377:                "       cvld    $0\n    std     AL\n",
        !           378: 
        !           379: ASSIGN,        INAREG|FOREFF|FORCC,
        !           380:        SAREG|SNAME|SOREG,      TDOUBLE,
        !           381:        SZERO,  TANY,
        !           382:                0,      RLEFT|RESCC,
        !           383:                "       clrl    UL\n    clrl    AL\n",
        !           384: 
        !           385: ASSIGN,        INAREG|FOREFF|FORCC,
        !           386:        SAREG|AWD,      TDOUBLE,
        !           387:        SIREG,  TDOUBLE,
        !           388:                0,      RLEFT|RRIGHT|RESCC,
        !           389:                "       ldd     AR\n    std     AL\n",
        !           390: 
        !           391: ASSIGN,        INAREG|FOREFF|FORCC,
        !           392:        SIREG,  TDOUBLE,
        !           393:        SAREG|AWD,      TDOUBLE,
        !           394:                0,      RLEFT|RRIGHT|RESCC,
        !           395:                "       ldd     AR\n    std     AL\n",
        !           396: 
        !           397: ASSIGN,        INAREG|FOREFF|FORCC,
        !           398:        SAREG|SNAME|SOREG,      TDOUBLE,
        !           399:        SAREG|SNAME|SOREG,      TDOUBLE,
        !           400:                0,      RLEFT|RRIGHT|RESCC,
        !           401:                "       movl    UR,UL\n movl    AR,AL\n",
        !           402: 
        !           403: ASSIGN,        INAREG|FOREFF|FORCC,
        !           404:        SAREG|AWD,      TDOUBLE,
        !           405:        STARNM, TDOUBLE,
        !           406:                0,      RLEFT|RRIGHT|RESCC,
        !           407:                "       ldd     AR\n    std     AL\n",
        !           408: 
        !           409: ASSIGN,        INAREG|FOREFF|FORCC,
        !           410:        STARNM, TDOUBLE,
        !           411:        SAREG|AWD,      TDOUBLE,
        !           412:                0,      RLEFT|RRIGHT|RESCC,
        !           413:                "       ldd     AR\n    std     AL\n",
        !           414: 
        !           415: ASSIGN,        INAREG|FOREFF|FORCC,
        !           416:        SAREG|AWD,      TFLOAT,
        !           417:        SZERO,  TANY,
        !           418:                0,      RLEFT|RESCC,
        !           419:                "       clrl    TAL\n",
        !           420: 
        !           421: ASSIGN,        INAREG|FOREFF|FORCC,
        !           422:        SAREG|AWD,      TFLOAT,
        !           423:        SAREG|AWD,      TFLOAT,
        !           424:                0,      RLEFT|RRIGHT|RESCC,
        !           425:                "       movl    AR,TAL\n",
        !           426: 
        !           427: ASSIGN,        INAREG|FOREFF|FORCC,
        !           428:        SAREG|AWD,      TFLOAT,
        !           429:        SAREG|AWD,      TDOUBLE,
        !           430:                0,      RLEFT|RESCC,
        !           431:                "       ldd     AR\n    cvdf\n  stf     AL\n",
        !           432: 
        !           433: ASSIGN,        INAREG|FOREFF|FORCC,
        !           434:        SAREG|AWD,      TDOUBLE,
        !           435:        SAREG|AWD,      TFLOAT,
        !           436:                0,      RLEFT|RESCC,
        !           437:                "       ldfd    AR\n    std     AL\n",
        !           438: 
        !           439: ASSIGN,        INAREG|FOREFF|FORCC,
        !           440:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           441:        SAREG|AWD,      TINT,
        !           442:                0,      RLEFT|RESCC,
        !           443:                "       cvlZL   AR\n    stZL    AL\n",
        !           444: 
        !           445: /* XXX need to trim significance here? */
        !           446: ASSIGN,        INAREG|FOREFF|FORCC,
        !           447:        SAREG|AWD,      TINT,
        !           448:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           449:                0,      RLEFT|RESCC,
        !           450:                "       ldZR    AR\n    cvZRl   AL\n",
        !           451: 
        !           452: /* unfortunately assignments are exempt from type balancing */
        !           453: ASSIGN,        INAREG|FOREFF|FORCC,
        !           454:        SAREG|AWD,      TCHAR|TUCHAR|TSHORT|TUSHORT,
        !           455:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           456:                NAREG|NASR,     RLEFT|RESCC,
        !           457:                "       ldZR    AR\n    cvZRl   A1\n    cvtlZL  A1,AL\n",
        !           458: 
        !           459: ASSIGN,        INAREG|FOREFF|FORCC,
        !           460:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           461:        SAREG|AWD,      TCHAR|TSHORT,
        !           462:                NAREG|NASR,     RLEFT|RESCC,
        !           463:                "       cvtZRl  AR,A1\n cvlZL   A1\n    stZL    AL\n",
        !           464: 
        !           465: ASSIGN,        INAREG|FOREFF|FORCC,
        !           466:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           467:        SAREG|AWD,      TUCHAR|TUSHORT,
        !           468:                NAREG|NASR,     RLEFT|RESCC,
        !           469:                "       movzZRl AR,A1\n cvlZL   A1\n    stZL    AL\n",
        !           470: 
        !           471: ASSIGN, INAREG|FOREFF|FORCC,
        !           472:        SAREG|AWD,      TUNSIGNED,
        !           473:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           474:                0,      RLEFT|RESCC,
        !           475:                "       ZW\n",
        !           476: 
        !           477: ASSIGN, INAREG|FOREFF|FORCC,
        !           478:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           479:        SAREG|AWD,      TUNSIGNED,
        !           480:                0,      RLEFT|RESCC,
        !           481:                "       ZY\n",
        !           482: 
        !           483: ASSIGN,        INAREG|FOREFF,
        !           484:        SFLD,   TANY,
        !           485:        SZERO,  TANY,
        !           486:                0,      RRIGHT,
        !           487:                "       andl2   N,AL\n",
        !           488: 
        !           489: ASSIGN,        FOREFF,
        !           490:        SFLD,   TANY,
        !           491:        SCON,   TANY,
        !           492:                0,      RNOP,
        !           493:                "       andl2   N,AL\n  orl2    ZF,AL\n",
        !           494: 
        !           495: ASSIGN,        INAREG,
        !           496:        SFLD,   TANY,
        !           497:        SCON,   TANY,
        !           498:                NAREG,  RESC1,
        !           499:                "       andl2   N,AL\n  orl2    ZF,AL\n ZI\n",
        !           500: 
        !           501: ASSIGN,        FOREFF,
        !           502:        SFLD,   TANY,
        !           503:        SAREG|AWD,      TWORD,
        !           504:                NAREG|NASR,     RNOP,
        !           505:                "       shll    $H,AR,A1\n      andl2   M,A1\n  andl2   N,AL\n\
        !           506:        orl2    A1,AL\n",
        !           507: 
        !           508: ASSIGN,        INAREG,
        !           509:        SFLD,   TANY,
        !           510:        SAREG|AWD,      TWORD,
        !           511:                NAREG,  RESC1,
        !           512:                "       shll    $H,AR,A1\n      andl2   M,A1\n  andl2   N,AL\n\
        !           513:        orl2    A1,AL\n ZI\n",
        !           514: 
        !           515: /* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */
        !           516: UNARY MUL,     FOREFF,
        !           517:        SCC,    TANY,
        !           518:        SCC,    TANY,
        !           519:                0,      RNULL,
        !           520:                "       help help help\n",
        !           521: 
        !           522: REG,   INTEMP,
        !           523:        SANY,   TANY,
        !           524:        SAREG,  TDOUBLE,
        !           525:                2*NTEMP,        RESC1,
        !           526:                "       movl    UR,U1\n movl    AR,A1\n",
        !           527: 
        !           528: REG,   INTEMP,
        !           529:        SANY,   TANY,
        !           530:        SAREG,  TANY,
        !           531:                NTEMP,  RESC1,
        !           532:                "       movl    AR,A1\n",
        !           533: 
        !           534: REG,   FORARG,
        !           535:        SANY,   TANY,
        !           536:        SAREG,  TFLOAT,
        !           537:                0,      RNULL,
        !           538:                "       pushl   $0\n    pushl   AR\n",
        !           539: 
        !           540: REG,   FORARG,
        !           541:        SANY,   TANY,
        !           542:        SAREG,  TDOUBLE,
        !           543:                0,      RNULL,
        !           544:                "       pushl   UR\n    pushl   AR\n",
        !           545: 
        !           546: OREG,  INTEMP,
        !           547:        SANY,   TANY,
        !           548:        SOREG,  TWORD|TFLOAT,
        !           549:                NTEMP,  RESC1,
        !           550:                "       movl    AR,A1\n",
        !           551: 
        !           552: OREG,  INTEMP,
        !           553:        SANY,   TANY,
        !           554:        SIREG,  TDOUBLE,
        !           555:                2*NTEMP,        RESC1,
        !           556:                "       ldd     UR\n    std     A1\n",
        !           557: 
        !           558: OREG,  INTEMP,
        !           559:        SANY,   TANY,
        !           560:        SOREG,  TDOUBLE,
        !           561:                2*NTEMP,        RESC1,
        !           562:                "       movl    UR,U1\n movl    AR,A1\n",
        !           563: 
        !           564: OREG,  INTEMP,
        !           565:        SANY,   TANY,
        !           566:        SOREG,  TANY,
        !           567:                NTEMP,  RESC1,
        !           568:                "       movZR   AR,A1\n",
        !           569: 
        !           570: OPLEAF,        FOREFF,
        !           571:        SANY,   TANY,
        !           572:        SAREG|AWD,      TANY,
        !           573:                0,      RLEFT,
        !           574:                "",
        !           575: 
        !           576: OPLTYPE,       INAREG|INTAREG,
        !           577:        SANY,   TANY,
        !           578:        SZERO,  TDOUBLE,
        !           579:                NAREG|NASR,     RESC1,
        !           580:                "       clrl    U1\n    clrl    A1\n",
        !           581: 
        !           582: OPLTYPE,       INAREG|INTAREG,
        !           583:        SANY,   TANY,
        !           584:        SIREG,  TDOUBLE,
        !           585:                NAREG|NASR,     RESC1,
        !           586:                "       ldd     AR\n    std     A1\n",
        !           587: 
        !           588: OPLTYPE,       INAREG|INTAREG,
        !           589:        SANY,   TANY,
        !           590:        SAREG|SNAME|SOREG|SCON, TDOUBLE,
        !           591:                NAREG,          RESC1,
        !           592:                "       movl    AR,A1\n movl    UR,U1\n",
        !           593: 
        !           594: OPLTYPE,       INAREG|INTAREG,
        !           595:        SANY,   TANY,
        !           596:        STARNM, TDOUBLE,
        !           597:                NAREG|NASR,     RESC1,
        !           598:                "       ldd     AR\n    std     A1\n",
        !           599: 
        !           600: OPLTYPE,       INAREG|INTAREG,
        !           601:        SANY,   TANY,
        !           602:        SZERO,  TANY,
        !           603:                NAREG|NASR,     RESC1,
        !           604:                "       clrl    TA1\n",
        !           605: 
        !           606: OPLTYPE,       INAREG|INTAREG,
        !           607:        SANY,   TANY,
        !           608:        SAREG|AWD,      TFLOAT,
        !           609:                NAREG|NASR,     RESC1,
        !           610:                "       movl    AR,TA1\n",
        !           611: 
        !           612: OPLTYPE,       INAREG|INTAREG,
        !           613:        SANY,   TANY,
        !           614:        SANY,   ANYFIXED,
        !           615:                NAREG|NASR,     RESC1,
        !           616:                "       ZU\n",
        !           617: 
        !           618: OPLTYPE,       FORCC,
        !           619:        SANY,   TANY,
        !           620:        SAREG|AWD,      TFLOAT,
        !           621:                0,      RESCC,
        !           622:                "       ldf     AR\n    tstf\n",
        !           623: 
        !           624: OPLTYPE,       FORCC,
        !           625:        SANY,   TANY,
        !           626:        SAREG|AWD,      TDOUBLE,
        !           627:                0,      RESCC,
        !           628:                "       ldd     AR\n    tstd\n",
        !           629: 
        !           630: OPLTYPE,       FORCC,
        !           631:        SANY,   TANY,
        !           632:        SANY,   ANYFIXED,
        !           633:                0,      RESCC,
        !           634:                "       tstZR   AR\n",
        !           635: 
        !           636: OPLTYPE,       FORARG,
        !           637:        SANY,   TANY,
        !           638:        SANY,   TWORD,
        !           639:                0,      RNULL,
        !           640:                "       pushl   AR\n",
        !           641: 
        !           642: OPLTYPE,       FORARG,
        !           643:        SANY,   TANY,
        !           644:        SANY,   TCHAR|TSHORT,
        !           645:                0,      RNULL,
        !           646:                "       pushZR  AR\n",
        !           647: 
        !           648: OPLTYPE,       FORARG,
        !           649:        SANY,   TANY,
        !           650:        SANY,   TUCHAR|TUSHORT,
        !           651:                0,      RNULL,
        !           652:                "       movzZRl AR,-(sp)\n",
        !           653: 
        !           654: OPLTYPE,       FORARG,
        !           655:        SANY,   TANY,
        !           656:        SZERO,  TFLOAT|TDOUBLE,
        !           657:                0,      RNULL,
        !           658:                "       pushl   $0\n    pushl   $0\n",
        !           659: 
        !           660: OPLTYPE,       FORARG,
        !           661:        SANY,   TANY,
        !           662:        SIREG,  TDOUBLE,
        !           663:                0,      RNULL,
        !           664:                "       ldd     AR\n    pushd\n",
        !           665: 
        !           666: OPLTYPE,       FORARG,
        !           667:        SANY,   TANY,
        !           668:        SAREG|SNAME|SOREG,      TDOUBLE,
        !           669:                0,      RNULL,
        !           670:                "       pushl   UR\n    pushl   AR\n",
        !           671: 
        !           672: OPLTYPE,       FORARG,
        !           673:        SANY,   TANY,
        !           674:        STARNM, TDOUBLE,
        !           675:                0,      RNULL,
        !           676:                "       ldd     AR\n    pushd\n",
        !           677: 
        !           678: OPLTYPE,       FORARG,
        !           679:        SANY,   TANY,
        !           680:        SAREG|AWD,      TFLOAT,
        !           681:                0,      RNULL,
        !           682:                "       pushl   $0\n    pushl   AR\n",
        !           683: 
        !           684: UNARY MINUS,   INAREG|INTAREG|FORCC,
        !           685:        SAREG|AWD,      ANYSIGNED|TUNSIGNED,
        !           686:        SANY,   TANY,
        !           687:                NAREG|NASL,     RESC1|RESCC,
        !           688:                "       mnegZL  AL,A1\n",
        !           689: 
        !           690: UNARY MINUS,   INAREG|INTAREG|FORCC,
        !           691:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           692:        SANY,   TANY,
        !           693:                NAREG|NASL,     RESC1|RESCC,
        !           694:                "       lnZL    AL\n    stZL    TA1\n",
        !           695: 
        !           696: COMPL, INAREG|INTAREG|FORCC,
        !           697:        SAREG|AWD,      ANYSIGNED|TUNSIGNED,
        !           698:        SANY,   TANY,
        !           699:                NAREG|NASL,     RESC1|RESCC,
        !           700:                "       mcomZL  AL,A1\n",
        !           701: 
        !           702: COMPL, INAREG|INTAREG|FORCC,
        !           703:        SAREG|AWD,      ANYFIXED,
        !           704:        SANY,   TANY,
        !           705:                NAREG|NASL,     RESC1|RESCC,
        !           706:                "       movzZLl AL,A1\n mcoml   A1,A1\n",
        !           707: 
        !           708: AND,   FORCC,
        !           709:        SAREG|AWD,      TWORD,
        !           710:        SAREG|AWD,      TWORD,
        !           711:                0,      RESCC,
        !           712:                "       bitl    AR,AL\n",
        !           713: 
        !           714: AND,   FORCC,
        !           715:        SAREG|AWD,      TSHORT|TUSHORT,
        !           716:        SSCON,  TWORD,
        !           717:                0,      RESCC,
        !           718:                "       bitw    AR,AL\n",
        !           719: 
        !           720: AND,   FORCC,
        !           721:        SAREG|AWD,      TSHORT|TUSHORT,
        !           722:        SAREG|AWD,      TSHORT|TUSHORT,
        !           723:                0,      RESCC,
        !           724:                "       bitw    AR,AL\n",
        !           725: 
        !           726: AND,   FORCC,
        !           727:        SAREG|AWD,      TCHAR|TUCHAR,
        !           728:        SCCON,  TWORD,
        !           729:                0,      RESCC,
        !           730:                "       bitb    AR,AL\n",
        !           731: 
        !           732: AND,   FORCC,
        !           733:        SAREG|AWD,      TCHAR|TUCHAR,
        !           734:        SAREG|AWD,      TCHAR|TUCHAR,
        !           735:                0,      RESCC,
        !           736:                "       bitb    AR,AL\n",
        !           737: 
        !           738: /* General cases for DIV and ASG DIV are handled below with OPMUL */
        !           739: /* Some special cases are handled in optim2() */
        !           740: 
        !           741: DIV,   INAREG|FOREFF|FORCC,
        !           742:        SAREG|AWD,      TUNSIGNED|TULONG,
        !           743:        SCON,   ANYUSIGNED,
        !           744:                NAREG|NEVEN,    RESC1|RESCC,
        !           745:                "       movl    AL,U1\n clrl    A1\n    ediv    AR,A1,A1,U1\n",
        !           746: 
        !           747: ASG DIV,       INAREG|FOREFF|FORCC,
        !           748:        SAREG|AWD,      TINT|TLONG|TUNSIGNED|TULONG,
        !           749:        SMCON,  ANYUSIGNED,
        !           750:                0,      RLEFT|RESCC,
        !           751:                "       ZJ\n",
        !           752: 
        !           753: ASG DIV,       INAREG|FOREFF|FORCC,
        !           754:        SAREG|AWD,      TINT|TLONG|TUNSIGNED|TULONG,
        !           755:        SCON,   ANYUSIGNED,
        !           756:                NAREG|NEVEN,    RLEFT|RESCC,
        !           757:                "       movl    AL,U1\n clrl    A1\n    ediv    AR,A1,AL,U1\n",
        !           758: 
        !           759: MOD,   INAREG|INTAREG,
        !           760:        SAREG|AWD,      TINT|TLONG,
        !           761:        SAREG|AWD,      TINT|TLONG,
        !           762:                NAREG|NEVEN,    RESC1,
        !           763:                "       ZM      ediv    AR,A1,U1,A1\n",
        !           764: 
        !           765: MOD,   INAREG|FOREFF,
        !           766:        SAREG|AWD,      TUNSIGNED|TULONG,
        !           767:        SMCON,  ANYUSIGNED,
        !           768:                NAREG|NASL,     RLEFT|RESC1,
        !           769:                "       ZJ\n",
        !           770: 
        !           771: MOD,   INAREG|FOREFF,
        !           772:        SAREG|AWD,      TUNSIGNED|TULONG,
        !           773:        SCON,   ANYUSIGNED,
        !           774:                NAREG|NEVEN,    RESC1,
        !           775:                "       movl    AL,U1\n clrl    A1\n    ediv    AR,A1,U1,A1\n",
        !           776: 
        !           777: /* should only see UNSIGNED lhs here if converted from UCHAR/USHORT lhs */
        !           778: /* beware -- the ediv remainder operand must be a register */
        !           779: ASG MOD,       INAREG|FOREFF|FORCC,
        !           780:        SAREG|AWD,      TINT|TLONG|TUNSIGNED|TULONG,
        !           781:        SAREG|AWD,      TINT|TLONG,
        !           782:                NAREG|NEVEN,    RLEFT|RESCC,
        !           783:                "       ZM      ediv    AR,A1,U1,A1\n   movl    A1,AL\n",
        !           784: 
        !           785: ASG MOD,       INAREG|FOREFF,
        !           786:        SAREG|AWD,      TINT|TLONG|TUNSIGNED|TULONG,
        !           787:        SMCON,  ANYUSIGNED,
        !           788:                0,      RLEFT,
        !           789:                "       ZJ\n",
        !           790: 
        !           791: ASG MOD,       INAREG|FOREFF,
        !           792:        SAREG|AWD,      TINT|TLONG|TUNSIGNED|TULONG,
        !           793:        SCON,   ANYUSIGNED,
        !           794:                NAREG|NEVEN,    RLEFT,
        !           795:                "       movl    AL,U1\n clrl    A1\n    ediv    AR,A1,U1,A1\n   movl    A1,AL\n",
        !           796: 
        !           797: /* XXX is this supposed to help on overflow? */
        !           798: ASG MUL,       INAREG|FOREFF|FORCC,
        !           799:        SAREG|AWD,      TUNSIGNED,
        !           800:        SAREG|AWD,      TUNSIGNED|TINT,
        !           801:                NAREG|NEVEN,    RLEFT|RESCC,
        !           802:                "       emul    AR,AL,$0,A1\n   movl    U1,AL\n",
        !           803: 
        !           804: ASG MUL,       INAREG|FOREFF|FORCC,
        !           805:        SAREG|AWD,      TUNSIGNED|TINT,
        !           806:        SAREG|AWD,      TUNSIGNED,
        !           807:                NAREG|NEVEN,    RLEFT|RESCC,
        !           808:                "       emul    AR,AL,$0,A1\n   movl    U1,AL\n",
        !           809: 
        !           810: ASG OPMUL,     INAREG|FOREFF|FORCC,
        !           811:        SAREG|AWD,      TWORD,
        !           812:        SAREG|AWD,      TWORD,
        !           813:                0,      RLEFT|RESCC,
        !           814:                "       OL2     AR,AL\n",
        !           815: 
        !           816: MUL,   INAREG|INTAREG|FORCC,
        !           817:        STAREG,         TUNSIGNED,
        !           818:        SAREG|AWD,      TUNSIGNED,
        !           819:                NAREG|NEVEN,    RLEFT|RESCC,
        !           820:                "       emul    AR,AL,$0,A1\n   movl    U1,AL\n",
        !           821: 
        !           822: OPMUL, INAREG|INTAREG|FORCC,
        !           823:        STAREG,         TWORD,
        !           824:        SAREG|AWD,      TWORD,
        !           825:                0,      RLEFT|RESCC,
        !           826:                "       OL2     AR,AL\n",
        !           827: 
        !           828: MUL,   INAREG|INTAREG|FORCC,
        !           829:        SAREG|AWD,      TUNSIGNED,
        !           830:        SAREG|AWD,      TUNSIGNED,
        !           831:                NAREG|NEVEN,    RESC1|RESCC,
        !           832:                "       emul    AR,AL,$0,A1\n   movl    U1,A1\n",
        !           833: 
        !           834: OPMUL, INAREG|INTAREG|FORCC,
        !           835:        SAREG|AWD,      TWORD,
        !           836:        SAREG|AWD,      TWORD,
        !           837:                NAREG|NASL|NASR,        RESC1|RESCC,
        !           838:                "       OL3     AR,AL,A1\n",
        !           839: 
        !           840: #ifdef REG_CHAR
        !           841: ASG PLUS,      INAREG|FOREFF|FORCC,
        !           842:        SAREG,  TWORD,
        !           843:        SONE,   TINT,
        !           844:                0,      RLEFT|RESCC,
        !           845:                "       incZL   AL\n",
        !           846: 
        !           847: ASG PLUS,      INAREG|FOREFF|FORCC,
        !           848:        AWD,    ANYFIXED,
        !           849:        SONE,   TINT,
        !           850:                0,      RLEFT|RESCC,
        !           851:                "       incZL   AL\n",
        !           852: 
        !           853: ASG MINUS,     INAREG|FOREFF|FORCC,
        !           854:        SAREG,  TWORD,
        !           855:        SONE,   TINT,
        !           856:                0,      RLEFT|RESCC,
        !           857:                "       decZL   AL\n",
        !           858: 
        !           859: ASG MINUS,     INAREG|FOREFF|FORCC,
        !           860:        AWD,    ANYFIXED,
        !           861:        SONE,   TINT,
        !           862:                0,      RLEFT|RESCC,
        !           863:                "       decZL   AL\n",
        !           864: #else
        !           865: ASG PLUS,       INAREG|FOREFF|FORCC,
        !           866:        SAREG|AWD,      ANYFIXED,
        !           867:        SONE,   TANY,
        !           868:                0,      RLEFT|RESCC,
        !           869:                "       incZL   AL\n",
        !           870: 
        !           871: ASG MINUS,       INAREG|FOREFF|FORCC,
        !           872:        SAREG|AWD,      ANYFIXED,
        !           873:        SONE,   TANY,
        !           874:                0,      RLEFT|RESCC,
        !           875:                "       decZL   AL\n",
        !           876: #endif
        !           877: 
        !           878: PLUS,  INAREG|INTAREG|FORCC,
        !           879:        STAREG, TWORD,
        !           880:        SONE,   TWORD,
        !           881:                0,      RLEFT|RESCC,
        !           882:                "       incZL   AL\n",
        !           883: 
        !           884: MINUS, INAREG|INTAREG|FORCC,
        !           885:        STAREG, TWORD,
        !           886:        SONE,   TWORD,
        !           887:                0,      RLEFT|RESCC,
        !           888:                "       decZL   AL\n",
        !           889: 
        !           890: ASG OPSIMP,    INAREG|FOREFF|FORCC,
        !           891:        SAREG|AWD,      TWORD,
        !           892:        SAREG|AWD,      TWORD,
        !           893:                0,      RLEFT|RESCC,
        !           894:                "       OL2     AR,AL\n",
        !           895: 
        !           896: ASG OPSIMP,    INAREG|FOREFF|FORCC,
        !           897:        SAREG,  TWORD,
        !           898:        SAREG,  TSHORT|TUSHORT|TCHAR|TUCHAR,
        !           899:                0,      RLEFT|RESCC,
        !           900:                "       OL2     AR,AL\n",
        !           901: 
        !           902: ASG OPSIMP,    INAREG|FOREFF|FORCC,
        !           903:        AWD,    TSHORT|TUSHORT,
        !           904:        SAREG|AWD,      TSHORT|TUSHORT,
        !           905:                0,      RLEFT|RESCC,
        !           906:                "       OW2     AR,AL\n",
        !           907: 
        !           908: ASG OPSIMP,    INAREG|FOREFF|FORCC,
        !           909:        AWD,    TSHORT|TUSHORT,
        !           910:        SSCON,  TWORD,
        !           911:                0,      RLEFT|RESCC,
        !           912:                "       OW2     AR,AL\n",
        !           913: 
        !           914: ASG OPSIMP,    INAREG|FOREFF|FORCC,
        !           915:        AWD,    TCHAR|TUCHAR,
        !           916:        SAREG|AWD,      TCHAR|TUCHAR,
        !           917:                0,      RLEFT|RESCC,
        !           918:                "       OB2     AR,AL\n",
        !           919: 
        !           920: ASG OPSIMP,    INAREG|FOREFF|FORCC,
        !           921:        AWD,    TCHAR|TUCHAR,
        !           922:        SCCON,  TWORD,
        !           923:                0,      RLEFT|RESCC,
        !           924:                "       OB2     AR,AL\n",
        !           925: 
        !           926: OPSIMP,        INAREG|INTAREG|FORCC,
        !           927:        STAREG, ANYFIXED,
        !           928:        SAREG|AWD,      TWORD,
        !           929:                0,      RLEFT|RESCC,
        !           930:                "       OL2     AR,AL\n",
        !           931: 
        !           932: OPSIMP,        INAREG|INTAREG|FORCC,
        !           933:        SAREG|AWD,      TWORD,
        !           934:        SAREG|AWD,      TWORD,
        !           935:                NAREG|NASL|NASR,        RESC1|RESCC,
        !           936:                "       OL3     AR,AL,A1\n",
        !           937: 
        !           938: ASG OPSIMP,    INAREG|FOREFF,
        !           939:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !           940:        SZERO,  TANY,
        !           941:                0,      RLEFT,
        !           942:                "",
        !           943: 
        !           944: ASG MUL,       INAREG|FOREFF|FORCC,
        !           945:        SIREG,  TDOUBLE,
        !           946:        SZERO,  TANY,
        !           947:                0,      RLEFT|RESCC,
        !           948:                "       cvld    $0\n    std     AL\n",
        !           949: 
        !           950: ASG MUL,       INAREG|FOREFF|FORCC,
        !           951:        SAREG|SNAME|SOREG,      TDOUBLE,
        !           952:        SZERO,  TANY,
        !           953:                0,      RLEFT|RESCC,
        !           954:                "       clrl    UL\n    clrl    AL\n",
        !           955: 
        !           956: ASG MUL,       INAREG|FOREFF|FORCC,
        !           957:        SAREG|AWD,      TFLOAT,
        !           958:        SZERO,  TANY,
        !           959:                0,      RLEFT|RESCC,
        !           960:                "       clrl    TAL\n",
        !           961: 
        !           962: ASG OPFLOAT,   INAREG|FOREFF|FORCC,
        !           963:        SAREG|AWD,      TFLOAT,
        !           964:        SAREG|AWD,      TFLOAT,
        !           965:                0,      RLEFT|RESCC,
        !           966:                "       ldf     AL\n    OF      AR\n    stf     TAL\n",
        !           967: 
        !           968: ASG OPFLOAT,   INAREG|FOREFF|FORCC,
        !           969:        SAREG|AWD,      TDOUBLE,
        !           970:        SAREG|AWD,      TDOUBLE,
        !           971:                0,      RLEFT|RESCC,
        !           972:                "       ldd     AL\n    OD      AR\n    std     AL\n",
        !           973: 
        !           974: ASG PLUS,      INAREG|FOREFF|FORCC,
        !           975:        SAREG|AWD,      TDOUBLE,
        !           976:        SAREG|AWD,      TFLOAT,
        !           977:                NAREG|NASL,     RLEFT|RESCC,
        !           978:                "       ldfd    AR\n    OD      AL\n    std     AL\n",
        !           979: 
        !           980: ASG MUL,       INAREG|FOREFF|FORCC,
        !           981:        SAREG|AWD,      TDOUBLE,
        !           982:        SAREG|AWD,      TFLOAT,
        !           983:                NAREG|NASL,     RLEFT|RESCC,
        !           984:                "       ldfd    AR\n    OD      AL\n    std     AL\n",
        !           985: 
        !           986: ASG OPFLOAT,   INAREG|FOREFF|FORCC,
        !           987:        SAREG|AWD,      TDOUBLE,
        !           988:        SAREG|AWD,      TFLOAT,
        !           989:                NAREG|NASL,     RLEFT|RESCC,
        !           990:                "       ldfd    AR\n    std     A1\n    ldd     AL\n    OD      A1\n    std     AL\n",
        !           991: 
        !           992: ASG OPFLOAT,   INAREG|FOREFF|FORCC,
        !           993:        SAREG|AWD,      TFLOAT,
        !           994:        SAREG|AWD,      TDOUBLE,
        !           995:                0,      RLEFT|RESCC,
        !           996:                "       ldfd    AL\n    OD      AR\n    cvdf\n  stf     TAL\n",
        !           997: 
        !           998: ASG OPFLOAT,   INAREG|FOREFF|FORCC,
        !           999:        SAREG|AWD,      ANYFIXED,
        !          1000:        SAREG|AWD,      TFLOAT|TDOUBLE,
        !          1001:                NAREG,  RLEFT|RESCC,    /* usable() knows we may need a reg pair */
        !          1002:                "       ZG\n",
        !          1003: 
        !          1004: OPSIMP,        INAREG|INTAREG,
        !          1005:        SAREG,  TFLOAT|TDOUBLE,
        !          1006:        SZERO,  TANY,
        !          1007:                0,      RLEFT,
        !          1008: #if defined(FORT) || defined(SPRECC)
        !          1009:                "T",
        !          1010: #else
        !          1011:                "",
        !          1012: #endif
        !          1013: 
        !          1014: OPSIMP,        INAREG|INTAREG|FORCC,
        !          1015:        AWD,    TFLOAT,
        !          1016:        SZERO,  TANY,
        !          1017:                NAREG,  RESC1|RESCC,
        !          1018:                "       movl    AL,A1\n",
        !          1019: 
        !          1020: OPSIMP,        INAREG|INTAREG|FORCC,
        !          1021:        SIREG,  TDOUBLE,
        !          1022:        SZERO,  TANY,
        !          1023:                NAREG,  RESC1|RESCC,
        !          1024:                "       ldd     AL\n    std     A1\n",
        !          1025: 
        !          1026: OPSIMP,        INAREG|INTAREG|FORCC,
        !          1027:        SAREG|SNAME|SOREG,      TDOUBLE,
        !          1028:        SZERO,  TANY,
        !          1029:                NAREG,  RESC1|RESCC,
        !          1030:                "       movl    UL,U1\n movl    AL,A1\n",
        !          1031: 
        !          1032: MUL,   INAREG|INTAREG|FORCC,
        !          1033:        SIREG,  TDOUBLE,
        !          1034:        SZERO,  TANY,
        !          1035:                NAREG|NASR,     RESC1|RESCC,
        !          1036:                "       cvld    $0\n    std     A1\n",
        !          1037: 
        !          1038: MUL,   INAREG|INTAREG|FORCC,
        !          1039:        SAREG|SNAME|SOREG,      TDOUBLE,
        !          1040:        SZERO,  TANY,
        !          1041:                NAREG|NASR,     RESC1|RESCC,
        !          1042:                "       clrl    U1\n    clrl    A1\n",
        !          1043: 
        !          1044: MUL,   INAREG|INTAREG|FORCC,
        !          1045:        SAREG|AWD,      TFLOAT,
        !          1046:        SZERO,  TANY,
        !          1047:                NAREG|NASR,     RESC1|RESCC,
        !          1048:                "       clrl    TA1\n",
        !          1049: 
        !          1050: OPFLOAT,       INAREG|INTAREG|FORCC,
        !          1051:        SAREG|AWD,      TFLOAT,
        !          1052:        SAREG|AWD,      TFLOAT,
        !          1053:                NAREG|NASL|NASR,        RESC1|RESCC,
        !          1054:                "       ldf     AL\n    OF      AR\n    stf     TA1\n",
        !          1055: 
        !          1056: OPFLOAT,       INAREG|INTAREG|FORCC,
        !          1057:        SZERO,          TANY,
        !          1058:        SAREG|AWD,      TDOUBLE,
        !          1059:                NAREG,  RESC1|RESCC,
        !          1060:                "\tclrl\tA1\n\tclrl\tU1\n\tldd\tA1\n\tOD\tAR\n\tstd\tA1\n",
        !          1061: 
        !          1062: OPFLOAT,       INAREG|INTAREG|FORCC,
        !          1063:        SAREG|AWD,      TDOUBLE,
        !          1064:        SAREG|AWD,      TDOUBLE,
        !          1065:                NAREG|NASL|NASR,        RESC1|RESCC,
        !          1066:                "       ldd     AL\n    OD      AR\n    std     A1\n",
        !          1067: 
        !          1068:        /* Default actions for hard trees ... */
        !          1069: 
        !          1070: # define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""
        !          1071: 
        !          1072: UNARY MUL, DF( UNARY MUL ),
        !          1073: 
        !          1074: INCR, DF(INCR),
        !          1075: 
        !          1076: DECR, DF(INCR),
        !          1077: 
        !          1078: ASSIGN, DF(ASSIGN),
        !          1079: 
        !          1080: STASG, DF(STASG),
        !          1081: 
        !          1082: FLD, DF(FLD),
        !          1083: 
        !          1084: OPLEAF, DF(NAME),
        !          1085: 
        !          1086: OPLOG, FORCC,
        !          1087:        SANY,   TANY,
        !          1088:        SANY,   TANY,
        !          1089:                REWRITE,        BITYPE,
        !          1090:                "",
        !          1091: 
        !          1092: OPLOG, DF(NOT),
        !          1093: 
        !          1094: COMOP, DF(COMOP),
        !          1095: 
        !          1096: INIT, DF(INIT),
        !          1097: 
        !          1098: OPUNARY, DF(UNARY MINUS),
        !          1099: 
        !          1100: 
        !          1101: ASG OPANY, DF(ASG PLUS),
        !          1102: 
        !          1103: OPANY, DF(BITYPE),
        !          1104: 
        !          1105: 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.