Annotation of cci/d/entry/insque.s, revision 1.1

1.1     ! root        1: #*       INSQUE, REMQUE instruction test               */
        !             2: #*       Privilege registers                           */
        !             3: 
        !             4:        .set    IPL,0x8
        !             5:        .set    MAPEN,0x9
        !             6:        .set    KSP,0x19
        !             7: #*       PSL fields                    */
        !             8:        .set    IV,32
        !             9:        .set    T,16
        !            10:        .set    N,8
        !            11:        .set    Z,4
        !            12:        .set    V,2
        !            13:        .set    C,1
        !            14: 
        !            15: #*       constants                     */
        !            16:        .set    DISABLE,0
        !            17:        .set    ENABLE,1
        !            18:        .set    MAXPOSL,0x7fffffff
        !            19:        .set    MAXNEGL,0x80000000
        !            20:        .set    MAXPOSW,0x7fff
        !            21:        .set    MAXNEGW,0x8000
        !            22:        .set    MAXPOSB,0x7f
        !            23:        .set    MAXNEGB,0x80
        !            24:        .set    ZERO,0
        !            25:        .set    ONES,0xffffffff
        !            26:        .set    HIGH,31                 /* highest interrupt priority   */
        !            27: 
        !            28: 
        !            29:        .globl  _insque
        !            30: _insque:
        !            31: #      Init queue to initial state : has 3 entries
        !            32: #
        !            33:        callf   $4,_setjmp      /* save context for error return */
        !            34:        movab   _insque,_stpc   /* save starting address of subtest */
        !            35:        movl    $1,_subtst      /* subtest number */
        !            36:        movl    $1,_no_opr      /* number of operands in use */
        !            37:        movab   e4,_opr         /* first operand */
        !            38: 0:     movab   e1,qhead
        !            39:        movab   e3,qtail
        !            40:        movab   e2,e1
        !            41:        movab   qhead,e1+4
        !            42:        movab   e3,e2
        !            43:        movab   e1,e2+4
        !            44:        movab   qhead,e3
        !            45:        movab   e2,e3+4
        !            46: 
        !            47: #      INSQUE at head of queue 
        !            48: 
        !            49:        bicpsw  $(IV|T)         /* disable overflow,trace exceptions    */
        !            50:        insque  e4,qhead
        !            51: 
        !            52:        movl    qhead,r3        /* Check forward link of queue header */
        !            53:        movab   e4,r4
        !            54:        cmpl    r3,r4
        !            55:        jeql    1f
        !            56:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            57:        movl    $1,_ercode      /* error code data miscompare */
        !            58:        movl    r3,_actual      /* actual data */
        !            59:        movl    r4,_expected    /* expected data */
        !            60:        jmp     *badrtn
        !            61: 
        !            62: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !            63:        movab   e3,r4
        !            64:        cmpl    r3,r4
        !            65:        jeql    1f
        !            66:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            67:        movl    $1,_ercode      /* error code data miscompare */
        !            68:        movl    r3,_actual      /* actual data */
        !            69:        movl    r4,_expected    /* expected data */
        !            70:        jmp     *badrtn
        !            71: 
        !            72: 1:     movl    e4,r3           /* Check forward link of added entry */
        !            73:        movab   e1,r4
        !            74:        cmpl    r3,r4
        !            75:        jeql    1f
        !            76:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            77:        movl    $1,_ercode      /* error code data miscompare */
        !            78:        movl    r3,_actual      /* actual data */
        !            79:        movl    r4,_expected    /* expected data */
        !            80:        jmp     *badrtn
        !            81: 
        !            82: 1:     movl    e4+4,r3         /* Check backward link of added entry */
        !            83:        movab   qhead,r4
        !            84:        cmpl    r3,r4
        !            85:        jeql    1f
        !            86:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            87:        movl    $1,_ercode      /* error code data miscompare */
        !            88:        movl    r3,_actual      /* actual data */
        !            89:        movl    r4,_expected    /* expected data */
        !            90:        jmp     *badrtn
        !            91: 
        !            92: 1:     movl    e1,r3           /* Check forward link of previous 1st entry */
        !            93:        movab   e2,r4
        !            94:        cmpl    r3,r4
        !            95:        jeql    1f
        !            96:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            97:        movl    $1,_ercode      /* error code data miscompare */
        !            98:        movl    r3,_actual      /* actual data */
        !            99:        movl    r4,_expected    /* expected data */
        !           100:        jmp     *badrtn
        !           101: 
        !           102: 1:     movl    e1+4,r3         /* Check backward link of previous 1st entry */
        !           103:        movab   e4,r4
        !           104:        cmpl    r3,r4
        !           105:        jeql    i2
        !           106:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           107:        movl    $1,_ercode      /* error code data miscompare */
        !           108:        movl    r3,_actual      /* actual data */
        !           109:        movl    r4,_expected    /* expected data */
        !           110:        jmp     *badrtn
        !           111: 
        !           112: #      REMQUE at head of queue 
        !           113: 
        !           114: i2:
        !           115:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           116: ai2:   callf   $4,_setjmp      /* save context for error return */
        !           117:        movab   ai2,_stpc       /* save starting address of subtest */
        !           118:        movl    $2,_subtst      /* subtest number */
        !           119:        movl    $1,_no_opr      /* number of operands in use */
        !           120:        movab   e4,_opr         /* first operand */
        !           121: 0:     remque  e4
        !           122: 
        !           123:        movl    qhead,r3        /* Check forward link of queue header */
        !           124:        movab   e1,r4
        !           125:        cmpl    r3,r4
        !           126:        jeql    1f
        !           127:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           128:        movl    $1,_ercode      /* error code data miscompare */
        !           129:        movl    r3,_actual      /* actual data */
        !           130:        movl    r4,_expected    /* expected data */
        !           131:        jmp     *badrtn
        !           132: 
        !           133: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !           134:        movab   e3,r4
        !           135:        cmpl    r3,r4
        !           136:        jeql    1f
        !           137:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           138:        movl    $1,_ercode      /* error code data miscompare */
        !           139:        movl    r3,_actual      /* actual data */
        !           140:        movl    r4,_expected    /* expected data */
        !           141:        jmp     *badrtn
        !           142: 
        !           143: 1:     movl    e1,r3           /* Check forward link of preceeding entry */
        !           144:        movab   e2,r4           /* after REMQUE                         */
        !           145:        cmpl    r3,r4
        !           146:        jeql    1f
        !           147:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           148:        movl    $1,_ercode      /* error code data miscompare */
        !           149:        movl    r3,_actual      /* actual data */
        !           150:        movl    r4,_expected    /* expected data */
        !           151:        jmp     *badrtn
        !           152: 
        !           153: 1:     movl    e1+4,r3         /* Check backward link of preceeding entry */
        !           154:        movab   qhead,r4        /* after REMQUE                         */
        !           155:        cmpl    r3,r4
        !           156:        jeql    i3
        !           157:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           158:        movl    $1,_ercode      /* error code data miscompare */
        !           159:        movl    r3,_actual      /* actual data */
        !           160:        movl    r4,_expected    /* expected data */
        !           161:        jmp     *badrtn
        !           162: 
        !           163: #      INSQUE at tail of queue 
        !           164: 
        !           165: i3:
        !           166:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           167: ai3:   callf   $4,_setjmp      /* save context for error return */
        !           168:        movab   ai3,_stpc       /* save starting address of subtest */
        !           169:        movl    $3,_subtst      /* subtest number */
        !           170:        movl    $2,_no_opr      /* number of operands in use */
        !           171:        movab   e4,_opr         /* first operand */
        !           172:        movab   e3,_opr + 4     /* second operand */
        !           173: 0:     movab   e3,r7
        !           174:        movab   e4,r8
        !           175:        insque  (r8),(r7)
        !           176: 
        !           177:        movl    qhead,r3        /* Check forward link of queue header */
        !           178:        movab   e1,r4
        !           179:        cmpl    r3,r4
        !           180:        jeql    1f
        !           181:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           182:        movl    $1,_ercode      /* error code data miscompare */
        !           183:        movl    r3,_actual      /* actual data */
        !           184:        movl    r4,_expected    /* expected data */
        !           185:        jmp     *badrtn
        !           186: 
        !           187: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !           188:        movab   e4,r4
        !           189:        cmpl    r3,r4
        !           190:        jeql    1f
        !           191:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           192:        movl    $1,_ercode      /* error code data miscompare */
        !           193:        movl    r3,_actual      /* actual data */
        !           194:        movl    r4,_expected    /* expected data */
        !           195:        jmp     *badrtn
        !           196: 
        !           197: 1:     movl    e4,r3           /* Check forward link of added entry */
        !           198:        movab   qhead,r4
        !           199:        cmpl    r3,r4
        !           200:        jeql    1f
        !           201:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           202:        movl    $1,_ercode      /* error code data miscompare */
        !           203:        movl    r3,_actual      /* actual data */
        !           204:        movl    r4,_expected    /* expected data */
        !           205:        jmp     *badrtn
        !           206: 
        !           207: 1:     movl    e4+4,r3         /* Check backward link of added entry */
        !           208:        movab   e3,r4
        !           209:        cmpl    r3,r4
        !           210:        jeql    1f
        !           211:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           212:        movl    $1,_ercode      /* error code data miscompare */
        !           213:        movl    r3,_actual      /* actual data */
        !           214:        movl    r4,_expected    /* expected data */
        !           215:        jmp     *badrtn
        !           216: 
        !           217: 1:     movl    e3,r3           /* Check forward link of preceeding entry */
        !           218:        movab   e4,r4           /* of added entry when insert at tail   */
        !           219:        cmpl    r3,r4
        !           220:        jeql    1f
        !           221:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           222:        movl    $1,_ercode      /* error code data miscompare */
        !           223:        movl    r3,_actual      /* actual data */
        !           224:        movl    r4,_expected    /* expected data */
        !           225:        jmp     *badrtn
        !           226: 
        !           227: 1:     movl    e3+4,r3         /* Check backward link of preceeding entry */
        !           228:        movab   e2,r4           /* of added entry when insert at tail   */
        !           229:        cmpl    r3,r4
        !           230:        jeql    i4
        !           231:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           232:        movl    $1,_ercode      /* error code data miscompare */
        !           233:        movl    r3,_actual      /* actual data */
        !           234:        movl    r4,_expected    /* expected data */
        !           235:        jmp     *badrtn
        !           236: 
        !           237: #      REMQUE at tail of queue 
        !           238: 
        !           239: i4:
        !           240:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           241: ai4:   callf   $4,_setjmp      /* save context for error return */
        !           242:        movab   ai4,_stpc       /* save starting address of subtest */
        !           243:        movl    $4,_subtst      /* subtest number */
        !           244:        movl    $1,_no_opr      /* number of operands in use */
        !           245:        movab   e4,_opr         /* first operand */
        !           246: 0:     movab   e4,r7
        !           247:        remque  (r7)
        !           248:        
        !           249:        movl    qhead,r3        /* Check forward link of queue header */
        !           250:        movab   e1,r4
        !           251:        cmpl    r3,r4
        !           252:        jeql    1f
        !           253:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           254:        movl    $1,_ercode      /* error code data miscompare */
        !           255:        movl    r3,_actual      /* actual data */
        !           256:        movl    r4,_expected    /* expected data */
        !           257:        jmp     *badrtn
        !           258: 
        !           259: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !           260:        movab   e3,r4
        !           261:        cmpl    r3,r4
        !           262:        jeql    1f
        !           263:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           264:        movl    $1,_ercode      /* error code data miscompare */
        !           265:        movl    r3,_actual      /* actual data */
        !           266:        movl    r4,_expected    /* expected data */
        !           267:        jmp     *badrtn
        !           268: 
        !           269: 1:     movl    e3,r3           /* Check forward link of preceeding entry */
        !           270:        movab   qhead,r4        /* after REMQUE                         */
        !           271:        cmpl    r3,r4
        !           272:        jeql    1f
        !           273:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           274:        movl    $1,_ercode      /* error code data miscompare */
        !           275:        movl    r3,_actual      /* actual data */
        !           276:        movl    r4,_expected    /* expected data */
        !           277:        jmp     *badrtn
        !           278: 
        !           279: 1:     movl    e3+4,r3         /* Check backward link of preceeding entry */
        !           280:        movab   e2,r4           /* after REMQUE                         */
        !           281:        cmpl    r3,r4
        !           282:        jeql    i5
        !           283:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           284:        movl    $1,_ercode      /* error code data miscompare */
        !           285:        movl    r3,_actual      /* actual data */
        !           286:        movl    r4,_expected    /* expected data */
        !           287:        jmp     *badrtn
        !           288: #
        !           289: #      INSQUE to empty queue : check Z flag
        !           290: #
        !           291: i5:
        !           292:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           293: ai5:   callf   $4,_setjmp      /* save context for error return */
        !           294:        movab   ai5,_stpc       /* save starting address of subtest */
        !           295:        movl    $5,_subtst      /* subtest number */
        !           296:        movl    $1,_no_opr      /* number of operands in use */
        !           297:        movab   qhead,_opr              /* first operand */
        !           298: 0:     movab   qhead,qhead     /* Make queue empty */
        !           299:        movab   qhead,qtail
        !           300: 
        !           301:        insque  e4,qhead
        !           302:        jeql    1f
        !           303:        movpsl  _actual         /* actual = psl is incorrect */
        !           304:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           305:        movl    $2,_ercode      /* error code flag miscompare */
        !           306:        jmp     *badrtn
        !           307:        
        !           308: 1:     movl    qhead,r3        /* Check forward link of queue header */
        !           309:        movab   e4,r4
        !           310:        cmpl    r3,r4
        !           311:        jeql    1f
        !           312:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           313:        movl    $1,_ercode      /* error code data miscompare */
        !           314:        movl    r3,_actual      /* actual data */
        !           315:        movl    r4,_expected    /* expected data */
        !           316:        jmp     *badrtn
        !           317: 
        !           318: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !           319:        movab   e4,r4
        !           320:        cmpl    r3,r4
        !           321:        jeql    1f
        !           322:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           323:        movl    $1,_ercode      /* error code data miscompare */
        !           324:        movl    r3,_actual      /* actual data */
        !           325:        movl    r4,_expected    /* expected data */
        !           326:        jmp     *badrtn
        !           327: 
        !           328: 1:     movl    e4,r3           /* Check forward link of added entry */
        !           329:        movab   qhead,r4
        !           330:        cmpl    r3,r4
        !           331:        jeql    1f
        !           332:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           333:        movl    $1,_ercode      /* error code data miscompare */
        !           334:        movl    r3,_actual      /* actual data */
        !           335:        movl    r4,_expected    /* expected data */
        !           336:        jmp     *badrtn
        !           337: 
        !           338: 1:     movl    e4+4,r3         /* Check backward link of added entry */
        !           339:        movab   qhead,r4
        !           340:        cmpl    r3,r4
        !           341:        jeql    i6
        !           342:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           343:        movl    $1,_ercode      /* error code data miscompare */
        !           344:        movl    r3,_actual      /* actual data */
        !           345:        movl    r4,_expected    /* expected data */
        !           346:        jmp     *badrtn
        !           347: #
        !           348: #      REMQUE last entry the queue : check Z bit
        !           349: #
        !           350: i6:
        !           351:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           352: ai6:   callf   $4,_setjmp      /* save context for error return */
        !           353:        movab   ai6,_stpc       /* save starting address of subtest */
        !           354:        movl    $6,_subtst      /* subtest number */
        !           355:        movl    $1,_no_opr      /* number of operands in use */
        !           356:        movab   e4,_opr         /* first operand */
        !           357:        
        !           358: 0:     remque  e4
        !           359:        jeql    1f
        !           360:        movpsl  _actual         /* actual = psl is incorrect */
        !           361:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           362:        movl    $2,_ercode      /* error code flag miscompare */
        !           363:        jmp     *badrtn
        !           364:        
        !           365: 1:     movl    qhead,r3        /* Check forward link of queue header */
        !           366:        movab   qhead,r4
        !           367:        cmpl    r3,r4
        !           368:        jeql    1f
        !           369:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           370:        movl    $1,_ercode      /* error code data miscompare */
        !           371:        movl    r3,_actual      /* actual data */
        !           372:        movl    r4,_expected    /* expected data */
        !           373:        jmp     *badrtn
        !           374: 
        !           375: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !           376:        movab   qhead,r4
        !           377:        cmpl    r3,r4
        !           378:        jeql    i7
        !           379:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           380:        movl    $1,_ercode      /* error code data miscompare */
        !           381:        movl    r3,_actual      /* actual data */
        !           382:        movl    r4,_expected    /* expected data */
        !           383:        jmp     *badrtn
        !           384: 
        !           385: #
        !           386: #      REMQUE entry in an empty queue : check V flag
        !           387: #
        !           388: i7:
        !           389:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           390: ai7:   callf   $4,_setjmp      /* save context for error return */
        !           391:        movab   ai7,_stpc       /* save starting address of subtest */
        !           392:        movl    $7,_subtst      /* subtest number */
        !           393:        movl    $1,_no_opr      /* number of operands in use */
        !           394:        movab   qhead,_opr
        !           395: 
        !           396: 0:     remque  qhead
        !           397:        jvs     1f              /* error if V flag not set              */
        !           398:        movpsl  _actual         /* actual = psl is incorrect */
        !           399:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           400:        movl    $2,_ercode      /* error code flag miscompare */
        !           401:        jmp     *badrtn
        !           402: 1:     bicpsw  $V
        !           403:        
        !           404:        movl    qhead,r3        /* Check forward link of queue header */
        !           405:        movab   qhead,r4
        !           406:        cmpl    r3,r4
        !           407:        jeql    1f
        !           408:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           409:        movl    $1,_ercode      /* error code data miscompare */
        !           410:        movl    r3,_actual      /* actual data */
        !           411:        movl    r4,_expected    /* expected data */
        !           412:        jmp     *badrtn
        !           413: 
        !           414: 1:     movl    qtail,r3        /* Check backward link of queue header */
        !           415:        movab   qhead,r4
        !           416:        cmpl    r3,r4
        !           417:        jeql    aldn
        !           418:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           419:        movl    $1,_ercode      /* error code data miscompare */
        !           420:        movl    r3,_actual      /* actual data */
        !           421:        movl    r4,_expected    /* expected data */
        !           422:        jmp     *badrtn
        !           423: 
        !           424: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           425:        jmp     *return
        !           426: 
        !           427: #      *********
        !           428: #      test data
        !           429:        .align  2
        !           430: 
        !           431: qhead:                         /* Queue head */
        !           432:        .long   e1
        !           433: qtail:                         /* Queue tail */
        !           434:        .long   e3              /* Initial queue has 3 entries */
        !           435:        .space  20*4
        !           436: 
        !           437: e1:
        !           438:        .long   e2              /* Forward link  */
        !           439:        .long   qhead           /* Backward link */
        !           440:        .long   0xaaaaaaaa      /* entry */
        !           441:        .space  20*4
        !           442: e2:
        !           443:        .long   e3              /* Forward link  */
        !           444:        .long   e1              /* Backward link */
        !           445:        .long   0xbbbbbbbb      /* entry */
        !           446:        .space  20*4
        !           447: 
        !           448: e3:
        !           449:        .long   qhead           /* Forward link  */
        !           450:        .long   e2              /* Backward link */
        !           451:        .long   0xcccccccc      /* entry */
        !           452:        .space  20*4
        !           453: 
        !           454: e4:
        !           455:        .long   0               /* Forward link  */
        !           456:        .long   0               /* Backward link */
        !           457:        .long   0xdddddddd      /* entry */
        !           458:        .space  20*4
        !           459: 

unix.superglobalmegacorp.com

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