Annotation of cci/d/entry/insque.s, revision 1.1.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.