Annotation of 43BSDTahoe/ucb/pascal/utilities/pc2/langpats.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1979, 1984 Regents of the University of California 
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  */
        !             6: 
        !             7: #ifndef lint
        !             8: static char sccsid[] = "@(#)langpats.c 5.5 (Berkeley) 4/7/87";
        !             9: #endif not lint
        !            10: 
        !            11: #include "inline.h"
        !            12: 
        !            13: /*
        !            14:  * Pattern table for Pascal library routines.
        !            15:  */
        !            16: struct pats language_ptab[] = {
        !            17: 
        !            18: #ifdef vax
        !            19: /*
        !            20:  * General Pascal library routines
        !            21:  */
        !            22:        { 2, "_ROUND\n",
        !            23: "      movd    (sp)+,r0\n\
        !            24:        cvtrdl  r0,r0\n" },
        !            25: 
        !            26:        { 2, "_TRUNC\n",
        !            27: "      movd    (sp)+,r0\n\
        !            28:        cvtdl   r0,r0\n" },
        !            29: 
        !            30:        { 1, "_ACTFILE\n",
        !            31: "      movl    (sp)+,r1\n\
        !            32:        movl    12(r1),r0\n" },
        !            33: 
        !            34:        { 2, "_FCALL\n",
        !            35: "      movl    (sp)+,r5\n\
        !            36:        movl    (sp),r0\n\
        !            37:        movc3   4(r0),__disply+8,(r5)\n\
        !            38:        movl    (sp)+,r0\n\
        !            39:        movc3   4(r0),8(r0),__disply+8\n" },
        !            40: 
        !            41:        { 2, "_FRTN\n",
        !            42: "      movl    (sp)+,r0\n\
        !            43:        movl    (sp)+,r5\n\
        !            44:        movc3   4(r0),(r5),__disply+8\n" },
        !            45: 
        !            46:        { 3, "_FSAV\n",
        !            47: "      movl    (sp)+,r3\n\
        !            48:        movl    (sp)+,r4\n\
        !            49:        movl    (sp),r5\n\
        !            50:        movl    r3,(r5)\n\
        !            51:        ashl    $3,r4,4(r5)\n\
        !            52:        movc3   4(r5),__disply+8,8(r5)\n\
        !            53:        movl    (sp)+,r0\n" },
        !            54: 
        !            55: /*
        !            56:  * Pascal relational comparisons
        !            57:  */
        !            58:        { 3, "_RELEQ\n",
        !            59: "      movl    (sp)+,r0\n\
        !            60:        movl    (sp)+,r1\n\
        !            61:        movl    (sp)+,r3\n\
        !            62:        movl    r0,r4\n\
        !            63: 1:\n\
        !            64:        movzwl  $65535,r0\n\
        !            65:        cmpl    r4,r0\n\
        !            66:        jleq    3f\n\
        !            67:        subl2   r0,r4\n\
        !            68:        cmpc3   r0,(r1),(r3)\n\
        !            69:        jeql    1b\n\
        !            70: 2:\n\
        !            71:        clrl    r0\n\
        !            72:        jbr     4f\n\
        !            73: 3:\n\
        !            74:        cmpc3   r4,(r1),(r3)\n\
        !            75:        jneq    2b\n\
        !            76:        incl    r0\n\
        !            77: 4:\n" },
        !            78: 
        !            79:        { 3, "_RELNE\n",
        !            80: "      movl    (sp)+,r0\n\
        !            81:        movl    (sp)+,r1\n\
        !            82:        movl    (sp)+,r3\n\
        !            83:        movl    r0,r4\n\
        !            84: 1:\n\
        !            85:        movzwl  $65535,r0\n\
        !            86:        cmpl    r4,r0\n\
        !            87:        jleq    3f\n\
        !            88:        subl2   r0,r4\n\
        !            89:        cmpc3   r0,(r1),(r3)\n\
        !            90:        jeql    1b\n\
        !            91: 2:\n\
        !            92:        movl    $1,r0\n\
        !            93:        jbr     4f\n\
        !            94: 3:\n\
        !            95:        cmpc3   r4,(r1),(r3)\n\
        !            96:        jneq    2b\n\
        !            97: 4:\n" },
        !            98: 
        !            99:        { 3, "_RELSLT\n",
        !           100: "      movl    (sp)+,r0\n\
        !           101:        movl    (sp)+,r1\n\
        !           102:        movl    (sp)+,r3\n\
        !           103:        movl    r0,r4\n\
        !           104:        jbr     2f\n\
        !           105: 1:\n\
        !           106:        subl2   r0,r4\n\
        !           107:        cmpc3   r0,(r1),(r3)\n\
        !           108:        jneq    3f\n\
        !           109: 2:\n\
        !           110:        movzwl  $65535,r0\n\
        !           111:        cmpl    r4,r0\n\
        !           112:        jgtr    1b\n\
        !           113:        cmpc3   r4,(r1),(r3)\n\
        !           114: 3:\n\
        !           115:        jlss    4f\n\
        !           116:        clrl    r0\n\
        !           117:        jbr     5f\n\
        !           118: 4:\n\
        !           119:        movl    $1,r0\n\
        !           120: 5:\n" },
        !           121: 
        !           122:        { 3, "_RELSLE\n",
        !           123: "      movl    (sp)+,r0\n\
        !           124:        movl    (sp)+,r1\n\
        !           125:        movl    (sp)+,r3\n\
        !           126:        movl    r0,r4\n\
        !           127:        jbr     2f\n\
        !           128: 1:\n\
        !           129:        subl2   r0,r4\n\
        !           130:        cmpc3   r0,(r1),(r3)\n\
        !           131:        jneq    3f\n\
        !           132: 2:\n\
        !           133:        movzwl  $65535,r0\n\
        !           134:        cmpl    r4,r0\n\
        !           135:        jgtr    1b\n\
        !           136:        cmpc3   r4,(r1),(r3)\n\
        !           137: 3:\n\
        !           138:        jleq    4f\n\
        !           139:        clrl    r0\n\
        !           140:        jbr     5f\n\
        !           141: 4:\n\
        !           142:        movl    $1,r0\n\
        !           143: 5:\n" },
        !           144: 
        !           145:        { 3, "_RELSGT\n",
        !           146: "      movl    (sp)+,r0\n\
        !           147:        movl    (sp)+,r1\n\
        !           148:        movl    (sp)+,r3\n\
        !           149:        movl    r0,r4\n\
        !           150:        jbr     2f\n\
        !           151: 1:\n\
        !           152:        subl2   r0,r4\n\
        !           153:        cmpc3   r0,(r1),(r3)\n\
        !           154:        jneq    3f\n\
        !           155: 2:\n\
        !           156:        movzwl  $65535,r0\n\
        !           157:        cmpl    r4,r0\n\
        !           158:        jgtr    1b\n\
        !           159:        cmpc3   r4,(r1),(r3)\n\
        !           160: 3:\n\
        !           161:        jgtr    4f\n\
        !           162:        clrl    r0\n\
        !           163:        jbr     5f\n\
        !           164: 4:\n\
        !           165:        movl    $1,r0\n\
        !           166: 5:\n" },
        !           167: 
        !           168:        { 3, "_RELSGE\n",
        !           169: "      movl    (sp)+,r0\n\
        !           170:        movl    (sp)+,r1\n\
        !           171:        movl    (sp)+,r3\n\
        !           172:        movl    r0,r4\n\
        !           173:        jbr     2f\n\
        !           174: 1:\n\
        !           175:        subl2   r0,r4\n\
        !           176:        cmpc3   r0,(r1),(r3)\n\
        !           177:        jneq    3f\n\
        !           178: 2:\n\
        !           179:        movzwl  $65535,r0\n\
        !           180:        cmpl    r4,r0\n\
        !           181:        jgtr    1b\n\
        !           182:        cmpc3   r4,(r1),(r3)\n\
        !           183: 3:\n\
        !           184:        jgeq    4f\n\
        !           185:        clrl    r0\n\
        !           186:        jbr     5f\n\
        !           187: 4:\n\
        !           188:        movl    $1,r0\n\
        !           189: 5:\n" },
        !           190: 
        !           191: /*
        !           192:  * Pascal set operations.
        !           193:  */
        !           194:        { 4, "_ADDT\n",
        !           195: "      movl    (sp)+,r0\n\
        !           196:        movl    (sp)+,r1\n\
        !           197:        movl    (sp)+,r2\n\
        !           198:        movl    (sp)+,r4\n\
        !           199:        movl    r0,r3\n\
        !           200: 1:\n\
        !           201:        bisl3   (r1)+,(r2)+,(r3)+\n\
        !           202:        sobgtr  r4,1b\n" },
        !           203: 
        !           204:        { 4, "_SUBT\n",
        !           205: "      movl    (sp)+,r0\n\
        !           206:        movl    (sp)+,r1\n\
        !           207:        movl    (sp)+,r2\n\
        !           208:        movl    (sp)+,r4\n\
        !           209:        movl    r0,r3\n\
        !           210: 1:\n\
        !           211:        bicl3   (r2)+,(r1)+,(r3)+\n\
        !           212:        sobgtr  r4,1b\n" },
        !           213: 
        !           214:        { 4, "_MULT\n",
        !           215: "      movl    (sp)+,r0\n\
        !           216:        movl    (sp)+,r1\n\
        !           217:        movl    (sp)+,r2\n\
        !           218:        movl    (sp)+,r4\n\
        !           219:        movl    r0,r3\n\
        !           220: 1:\n\
        !           221:        mcoml   (r1)+,r5\n\
        !           222:        bicl3   r5,(r2)+,(r3)+\n\
        !           223:        sobgtr  r4,1b\n" },
        !           224: 
        !           225:        { 4, "_IN\n",
        !           226: "      movl    (sp)+,r1\n\
        !           227:        movl    (sp)+,r2\n\
        !           228:        movl    (sp)+,r3\n\
        !           229:        movl    (sp)+,r4\n\
        !           230:        clrl    r0\n\
        !           231:        subl2   r2,r1\n\
        !           232:        cmpl    r1,r3\n\
        !           233:        jgtru   1f\n\
        !           234:        jbc     r1,(r4),1f\n\
        !           235:        incl    r0\n\
        !           236: 1:\n" },
        !           237: 
        !           238: /*
        !           239:  * Pascal runtime checks
        !           240:  */
        !           241:        { 1, "_ASRT\n",
        !           242: "      movl    (sp)+,r0\n\
        !           243:        tstl    r0\n\
        !           244:        jneq    1f\n\
        !           245:        pushl   $0\n\
        !           246:        pushl   $_EASRT\n\
        !           247:        calls   $2,_ERROR\n\
        !           248: 1:\n" },
        !           249: 
        !           250:        { 2, "_ASRTS\n",
        !           251: "      movl    (sp)+,r0\n\
        !           252:        movl    (sp)+,r1\n\
        !           253:        tstl    r0\n\
        !           254:        jneq    1f\n\
        !           255:        pushl   r1\n\
        !           256:        pushl   $_EASRTS\n\
        !           257:        calls   $2,_ERROR\n\
        !           258: 1:\n" },
        !           259: 
        !           260:        { 1, "_CHR\n",
        !           261: "      movl    (sp)+,r0\n\
        !           262:        cmpl    r0,$127\n\
        !           263:        jlequ   1f\n\
        !           264:        pushl   r0\n\
        !           265:        pushl   $_ECHR\n\
        !           266:        calls   $2,_ERROR\n\
        !           267: 1:\n" },
        !           268: 
        !           269:        { 0, "_LINO\n",
        !           270: "      incl    __stcnt\n\
        !           271:        cmpl    __stcnt,__stlim\n\
        !           272:        jlss    1f\n\
        !           273:        pushl   __stcnt\n\
        !           274:        pushl   $_ELINO\n\
        !           275:        calls   $2,_ERROR\n\
        !           276: 1:\n" },
        !           277: 
        !           278:        { 1, "_NIL\n",
        !           279: "      movl    (sp)+,r0\n\
        !           280:        cmpl    r0,__maxptr\n\
        !           281:        jgtr    1f\n\
        !           282:        cmpl    r0,__minptr\n\
        !           283:        jgeq    2f\n\
        !           284: 1:\n\
        !           285:        pushl   $0\n\
        !           286:        pushl   $_ENIL\n\
        !           287:        calls   $2,_ERROR\n\
        !           288: 2:\n" },
        !           289: 
        !           290:        { 2, "_RANDOM\n",
        !           291: "      movd    (sp)+,r0\n\
        !           292:        emul    __seed,$1103515245,$0,r0\n\
        !           293:        ediv    $0x7fffffff,r0,r1,r0\n\
        !           294:        movl    r0,__seed\n\
        !           295:        cvtld   r0,r0\n\
        !           296:        divd2   $0d2.147483647e+09,r0\n" },
        !           297: 
        !           298:        { 3, "_RANG4\n",
        !           299: "      movl    (sp)+,r0\n\
        !           300:        movl    (sp)+,r1\n\
        !           301:        movl    (sp)+,r2\n\
        !           302:        cmpl    r0,r1\n\
        !           303:        jlss    1f\n\
        !           304:        cmpl    r0,r2\n\
        !           305:        jleq    2f\n\
        !           306: 1:\n\
        !           307:        pushl   r0\n\
        !           308:        pushl   $_ERANG\n\
        !           309:        calls   $2,_ERROR\n\
        !           310: 2:\n" },
        !           311: 
        !           312:        { 2, "_RSNG4\n",
        !           313: "      movl    (sp)+,r0\n\
        !           314:        movl    (sp)+,r1\n\
        !           315:        cmpl    r0,r1\n\
        !           316:        jlequ   1f\n\
        !           317:        pushl   r0\n\
        !           318:        pushl   $_ERANG\n\
        !           319:        calls   $2,_ERROR\n\
        !           320: 1:\n" },
        !           321: 
        !           322:        { 1, "_SEED\n",
        !           323: "      movl    (sp)+,r1\n\
        !           324:        movl    __seed,r0\n\
        !           325:        movl    r1,__seed\n" },
        !           326: 
        !           327:        { 3, "_SUBSC\n",
        !           328: "      movl    (sp)+,r0\n\
        !           329:        movl    (sp)+,r1\n\
        !           330:        movl    (sp)+,r2\n\
        !           331:        cmpl    r0,r1\n\
        !           332:        jlss    1f\n\
        !           333:        cmpl    r0,r2\n\
        !           334:        jleq    2f\n\
        !           335: 1:\n\
        !           336:        pushl   r0\n\
        !           337:        pushl   $_ESUBSC\n\
        !           338:        calls   $2,_ERROR\n\
        !           339: 2:\n" },
        !           340: 
        !           341:        { 2, "_SUBSCZ\n",
        !           342: "      movl    (sp)+,r0\n\
        !           343:        movl    (sp)+,r1\n\
        !           344:        cmpl    r0,r1\n\
        !           345:        jlequ   1f\n\
        !           346:        pushl   r0\n\
        !           347:        pushl   $_ESUBSC\n\
        !           348:        calls   $2,_ERROR\n\
        !           349: 1:\n" },
        !           350: #endif vax
        !           351: 
        !           352: #ifdef mc68000
        !           353: /*
        !           354:  * General Pascal library routines
        !           355:  */
        !           356:        { 1, "_ACTFILE\n",
        !           357: "      movl    sp@+,a0\n\
        !           358:        movl    a0@(12),d0\n" },
        !           359: 
        !           360:        { 4, "_ADDT\n",
        !           361: "      movl    sp@+,a0\n\
        !           362:        movl    sp@+,d0\n\
        !           363:        movl    sp@+,a1\n\
        !           364:        movl    sp@+,d1\n\
        !           365:        movl    a0,sp@-\n\
        !           366:        movl    a2,sp@-\n\
        !           367:        movl    d0,a2\n\
        !           368:        subql   #1,d1\n\
        !           369: 1:\n\
        !           370:        movl    a2@+,d0\n\
        !           371:        orl     a1@+,d0\n\
        !           372:        movl    d0,a0@+\n\
        !           373:        dbra    d1,1b\n\
        !           374:        movl    sp@+,a2\n\
        !           375:        movl    sp@+,d0\n" },
        !           376: 
        !           377:        { 4, "_SUBT\n",
        !           378: "      movl    sp@+,a0\n\
        !           379:        movl    sp@+,d0\n\
        !           380:        movl    sp@+,a1\n\
        !           381:        movl    sp@+,d1\n\
        !           382:        movl    a0,sp@-\n\
        !           383:        movl    a2,sp@-\n\
        !           384:        movl    d0,a2\n\
        !           385:        subql   #1,d1\n\
        !           386: 1:\n\
        !           387:        movl    a1@+,d0\n\
        !           388:        notl    d0\n\
        !           389:        andl    a2@+,d0\n\
        !           390:        movl    d0,a0@+\n\
        !           391:        dbra    d1,1b\n\
        !           392:        movl    sp@+,a2\n\
        !           393:        movl    sp@+,d0\n" },
        !           394: 
        !           395:        { 4, "_MULT\n",
        !           396: "      movl    sp@+,a0\n\
        !           397:        movl    sp@+,d0\n\
        !           398:        movl    sp@+,a1\n\
        !           399:        movl    sp@+,d1\n\
        !           400:        movl    a0,sp@-\n\
        !           401:        movl    a2,sp@-\n\
        !           402:        movl    d0,a2\n\
        !           403:        subql   #1,d1\n\
        !           404: 1:\n\
        !           405:        movl    a2@+,d0\n\
        !           406:        andl    a1@+,d0\n\
        !           407:        movl    d0,a0@+\n\
        !           408:        dbra    d1,1b\n\
        !           409:        movl    sp@+,a2\n\
        !           410:        movl    sp@+,d0\n" },
        !           411: 
        !           412:        { 4, "_IN\n",
        !           413: "      movl    sp@+,d0\n\
        !           414:        movl    sp@+,a0\n\
        !           415:        movl    sp@+,d1\n\
        !           416:        movl    sp@+,a1\n\
        !           417:        subl    a0,d0\n\
        !           418:        cmpl    d1,d0\n\
        !           419:        jhi     1f\n\
        !           420:        movl    d0,d1\n\
        !           421:        lsrl    #3,d1\n\
        !           422:        btst    d0,a1@(0,d1:l)\n\
        !           423:        jeq     1f\n\
        !           424:        moveq   #1,d0\n\
        !           425:        jra     2f\n\
        !           426: 1:\n\
        !           427:        moveq   #0,d0\n\
        !           428: 2:\n" },
        !           429: 
        !           430:        { 3, "_RANG4\n",
        !           431: "      movl    sp@+,d0\n\
        !           432:        movl    sp@+,a0\n\
        !           433:        movl    sp@+,a1\n\
        !           434:        cmpl    a0,d0\n\
        !           435:        jlt     1f\n\
        !           436:        cmpl    a1,d0\n\
        !           437:        jle     2f\n\
        !           438: 1:\n\
        !           439:        pea     _ERANG\n\
        !           440:        jbsr    _ERROR\n\
        !           441:        addqw   #4,sp\n\
        !           442: 2:\n" },
        !           443:        { 2, "_RSNG4\n",
        !           444: "      movl    sp@+,a0\n\
        !           445:        movl    sp@+,a1\n\
        !           446:        cmpl    a1,a0\n\
        !           447:        jls     1f\n\
        !           448:        pea     _ERANG\n\
        !           449:        jbsr    _ERROR\n\
        !           450:        addqw   #4,sp\n\
        !           451: 1:\n" },
        !           452: 
        !           453:        { 3, "_SUBSC\n",
        !           454: "      movl    sp@+,d0\n\
        !           455:        movl    sp@+,a0\n\
        !           456:        movl    sp@+,a1\n\
        !           457:        cmpl    a0,d0\n\
        !           458:        jlt     1f\n\
        !           459:        cmpl    a1,d0\n\
        !           460:        jle     2f\n\
        !           461: 1:\n\
        !           462:        pea     _ESUBSC\n\
        !           463:        jbsr    _ERROR\n\
        !           464:        addqw   #4,sp\n\
        !           465: 2:\n" },
        !           466: 
        !           467:        { 2, "_SUBSCZ\n",
        !           468: "      movl    sp@+,a0\n\
        !           469:        movl    sp@+,a1\n\
        !           470:        cmpl    a1,a0\n\
        !           471:        jls     1f\n\
        !           472:        pea     _ESUBSC\n\
        !           473:        jbsr    _ERROR\n\
        !           474:        addqw   #4,sp\n\
        !           475: 1:\n" },
        !           476: 
        !           477: #endif mc68000
        !           478: 
        !           479: #ifdef tahoe
        !           480:        { 2, "_TRUNC\n",
        !           481: "      ldd     (sp)\n\
        !           482:        movab   8(sp),sp\n\
        !           483:        cvdl    r0\n" },
        !           484: 
        !           485:        { 1, "_ACTFILE\n",
        !           486: "      movl    (sp)+,r1\n\
        !           487:        movl    12(r1),r0\n" },
        !           488: 
        !           489: /*
        !           490:  * Pascal set operations.
        !           491:  */
        !           492: 
        !           493:        { 4, "_ADDT\n",
        !           494: "      movl    (sp)+,r0\n\
        !           495:        movl    (sp)+,r1\n\
        !           496:        movl    (sp)+,r2\n\
        !           497:        movl    (sp)+,r3\n\
        !           498:        clrl    r4\n\
        !           499: 1:\n\
        !           500:        orl3    (r1)[r4],(r2)[r4],(r0)[r4]\n\
        !           501:        aoblss  r3,r4,1b\n" },
        !           502: 
        !           503:        { 4, "_SUBT\n",
        !           504: "      movl    (sp)+,r0\n\
        !           505:        movl    (sp)+,r1\n\
        !           506:        movl    (sp)+,r2\n\
        !           507:        movl    (sp)+,r3\n\
        !           508:        decl    r3\n\
        !           509: 1:\n\
        !           510:        mcoml   (r2)[r3],r4\n\
        !           511:        andl3   r4,(r1)[r3],(r0)[r3]\n\
        !           512:        decl    r3\n\
        !           513:        jgeq    1b\n" },
        !           514: 
        !           515:        { 4, "_MULT\n",
        !           516: "      movl    (sp)+,r0\n\
        !           517:        movl    (sp)+,r1\n\
        !           518:        movl    (sp)+,r2\n\
        !           519:        movl    (sp)+,r3\n\
        !           520:        clrl    r4\n\
        !           521: 1:\n\
        !           522:        andl3   (r1)[r4],(r2)[r4],(r0)[r4]\n\
        !           523:        aoblss  r3,r4,1b\n" },
        !           524: 
        !           525:        { 4, "_IN\n",
        !           526: "      movl    (sp)+,r1\n\
        !           527:        movl    (sp)+,r2\n\
        !           528:        movl    (sp)+,r3\n\
        !           529:        movl    (sp)+,r4\n\
        !           530:        clrl    r0\n\
        !           531:        subl2   r2,r1\n\
        !           532:        cmpl    r1,r3\n\
        !           533:        jgtru   1f\n\
        !           534:        shrl    $3,r1,r2\n\
        !           535:        movzbl  (r4)[r2],r3\n\
        !           536:        andl2   $7,r1\n\
        !           537:        jbc     r1,r3,1f\n\
        !           538:        incl    r0\n\
        !           539: 1:\n" },
        !           540: 
        !           541: /*
        !           542:  * Pascal runtime checks
        !           543:  */
        !           544:        { 1, "_ASRT\n",
        !           545: "      movl    (sp)+,r0\n\
        !           546:        tstl    r0\n\
        !           547:        jneq    1f\n\
        !           548:        pushl   $0\n\
        !           549:        pushl   $_EASRT\n\
        !           550:        callf   $12,_ERROR\n\
        !           551: 1:\n" },
        !           552: 
        !           553:        { 2, "_ASRTS\n",
        !           554: "      movl    (sp)+,r0\n\
        !           555:        movl    (sp)+,r1\n\
        !           556:        tstl    r0\n\
        !           557:        jneq    1f\n\
        !           558:        pushl   r1\n\
        !           559:        pushl   $_EASRTS\n\
        !           560:        callf   $12,_ERROR\n\
        !           561: 1:\n" },
        !           562: 
        !           563:        { 1, "_CHR\n",
        !           564: "      movl    (sp)+,r0\n\
        !           565:        cmpl    r0,$127\n\
        !           566:        jlequ   1f\n\
        !           567:        pushl   r0\n\
        !           568:        pushl   $_ECHR\n\
        !           569:        callf   $12,_ERROR\n\
        !           570: 1:\n" },
        !           571: 
        !           572:        { 0, "_LINO\n",
        !           573: "      incl    __stcnt\n\
        !           574:        cmpl    __stcnt,__stlim\n\
        !           575:        jlss    1f\n\
        !           576:        pushl   __stcnt\n\
        !           577:        pushl   $_ELINO\n\
        !           578:        callf   $12,_ERROR\n\
        !           579: 1:\n" },
        !           580: 
        !           581:        { 1, "_NIL\n",
        !           582: "      movl    (sp)+,r0\n\
        !           583:        cmpl    r0,__maxptr\n\
        !           584:        jgtr    1f\n\
        !           585:        cmpl    r0,__minptr\n\
        !           586:        jgeq    2f\n\
        !           587: 1:\n\
        !           588:        pushl   $0\n\
        !           589:        pushl   $_ENIL\n\
        !           590:        callf   $12,_ERROR\n\
        !           591: 2:\n" },
        !           592: 
        !           593:        { 3, "_RANG4\n",
        !           594: "      movl    (sp)+,r0\n\
        !           595:        movl    (sp)+,r1\n\
        !           596:        movl    (sp)+,r2\n\
        !           597:        cmpl    r0,r1\n\
        !           598:        jlss    1f\n\
        !           599:        cmpl    r0,r2\n\
        !           600:        jleq    2f\n\
        !           601: 1:\n\
        !           602:        pushl   r0\n\
        !           603:        pushl   $_ERANG\n\
        !           604:        callf   $12,_ERROR\n\
        !           605: 2:\n" },
        !           606: 
        !           607:        { 2, "_RSNG4\n",
        !           608: "      movl    (sp)+,r0\n\
        !           609:        movl    (sp)+,r1\n\
        !           610:        cmpl    r0,r1\n\
        !           611:        jlequ   1f\n\
        !           612:        pushl   r0\n\
        !           613:        pushl   $_ERANG\n\
        !           614:        callf   $12,_ERROR\n\
        !           615: 1:\n" },
        !           616: 
        !           617:        { 1, "_SEED\n",
        !           618: "      movl    (sp)+,r1\n\
        !           619:        movl    __seed,r0\n\
        !           620:        movl    r1,__seed\n" },
        !           621: 
        !           622:        { 3, "_SUBSC\n",
        !           623: "      movl    (sp)+,r0\n\
        !           624:        movl    (sp)+,r1\n\
        !           625:        movl    (sp)+,r2\n\
        !           626:        cmpl    r0,r1\n\
        !           627:        jlss    1f\n\
        !           628:        cmpl    r0,r2\n\
        !           629:        jleq    2f\n\
        !           630: 1:\n\
        !           631:        pushl   r0\n\
        !           632:        pushl   $_ESUBSC\n\
        !           633:        callf   $12,_ERROR\n\
        !           634: 2:\n" },
        !           635: 
        !           636:        { 2, "_SUBSCZ\n",
        !           637: "      movl    (sp)+,r0\n\
        !           638:        movl    (sp)+,r1\n\
        !           639:        cmpl    r0,r1\n\
        !           640:        jlequ   1f\n\
        !           641:        pushl   r0\n\
        !           642:        pushl   $_ESUBSC\n\
        !           643:        callf   $12,_ERROR\n\
        !           644: 1:\n" },
        !           645: #endif tahoe
        !           646: 
        !           647:        { 0, "", "" }
        !           648: };

unix.superglobalmegacorp.com

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