Annotation of cci/d/entry/or_l3.s, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: /*     ORL3 (or long 3 operand) test                                   */
                      5: 
                      6: /*Test name = orl3                                                     */
                      7: /*Description =                                                                */
                      8: /*     This test checks 'orl3' instruction as follows:         */
                      9: /*     source          mask            destination   Z N C V(flags)    */
                     10: /*     ___________     ____            ___________   _____________     */
                     11: /*     0xaaaaaaaa      0xaaaaaaaa      0x7fffffaa    0 0 1 0           */
                     12: /*     0xaaaaaaaa      0x55555555      0x7fffffff    0 0 1 0           */
                     13: /*     0x00000000      0x00000000      0x00000000    1 0 x 0           */
                     14: /*     R               R               R               ---             */
                     15: /*     M               M               M               ---             */
                     16: /*     R               M               M               ---             */
                     17: /*     M               R               R               ---             */
                     18: /*                                                                     */
                     19: /*                                                                     */
                     20: /*                                                                     */
                     21: /*     Constants                                                       */
                     22: /*                                                                     */
                     23:        .set    MASK1B3,0xaa
                     24:        .set    MASK1W3,0xaaaa
                     25:        .set    MASK1L3,0xaaaaaaaa
                     26:        .set    MASK2B3,0x55
                     27:        .set    MASK2W3,0x5555
                     28:        .set    MASK2L3,0x55555555
                     29:        .set    MASK3B3,0x00
                     30:        .set    MASK3W3,0x0000
                     31:        .set    MASK3L3,0x00000000
                     32:        .set    SOURCE1B3,0xaa
                     33:        .set    SOURCE1W3,0xaaaa
                     34:        .set    SOURCE1L3,0xaaaaaaaa
                     35:        .set    SOURCE2B3,0xaa
                     36:        .set    SOURCE2W3,0xaaaa
                     37:        .set    SOURCE2L3,0xaaaaaaaa
                     38:        .set    SOURCE3B3,0x00
                     39:        .set    SOURCE3W3,0x0000
                     40:        .set    SOURCE3L3,0x00000000
                     41:        .set    INIT1B3,0x7fffff00
                     42:        .set    INIT1W3,0x7fff0000
                     43:        .set    INIT1L3,0x00000000
                     44:        .set    INIT3B3,0x7fffffff
                     45:        .set    INIT3W3,INIT3B3
                     46:        .set    INIT3L3,INIT3B3
                     47:        .set    EXP1B3,0x7fffffaa
                     48:        .set    EXP1W3,0x7fffaaaa
                     49:        .set    EXP1L3,0xaaaaaaaa
                     50:        .set    EXP2B3,0x7fffffff
                     51:        .set    EXP2W3,0x7fffffff
                     52:        .set    EXP2L3,0xffffffff
                     53:        .set    EXP3B3,0x00000000
                     54:        .set    EXP3W3,EXP3B3
                     55:        .set    EXP3L3,EXP3B3
                     56: 
                     57: /*                                                                     */
                     58: /*                                                                     */
                     59: /*                                                                     */
                     60: /*     Syst.s - constants                                              */
                     61: /*                                                                     */
                     62:        .set    IPL,8
                     63:        .set    HIGH,31
                     64:        .set    ZERO,0
                     65:        .set    ONES,0xffffffff
                     66:        .set    N,8
                     67:        .set    Z,4
                     68:        .set    V,2
                     69:        .set    C,1
                     70:        .set    T,16
                     71:        .set    IV,32
                     72:        .set    FU,64
                     73:        .set    DV,128
                     74:        .set    PSWMASK,0x003f
                     75: /*                                                                     */
                     76:        .globl  _orl3
                     77: _orl3:
                     78:        callf   $4,_setjmp      /* save context for error return */
                     79:        movab   _orl3,_stpc     /* save starting address of program subtest */
                     80:        movl    $1,_subtst      /* subtest number */
                     81:        movl    $2,_no_opr      /* number of operands */
                     82:        movl    $MASK1L3,_opr   /* first operand */
                     83:        movl    $SOURCE1L3,_opr + 4 /* second operand */
                     84: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                     85:        movl    $MASK1L3,r3     /*mask                                  */
                     86:        movl    $SOURCE1L3,r4   /*source                                */
                     87:        movl    $INIT1L3,r5     /*destination                           */
                     88:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                     89:        orl3    r3,r4,r5        /*try it reg reg reg                    */
                     90:        jeql    error1          /*error if Z = 1                        */
                     91:        jgeq    error1          /*error if N = 0                        */
                     92:        jcc     error1          /*error if C = 0                        */
                     93:        jvs     error1          /*error if V = 1                        */
                     94:        jmp     1f
                     95: error1:        movpsl  _actual         /* actual = psl Maybe incorrect */
                     96:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     97:        movl    $2,_ercode      /* error code flag failure */
                     98:        jmp     *badrtn
                     99: 1:     cmpl    r5,$EXP1L3      /*if dest <> expected value,            */
                    100:        jeql    o2
                    101:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    102:        movl    $1,_ercode      /* error code data miscompare */
                    103:        movl    r5,_actual      /* actual data */
                    104:        movl    $EXP1L3,_expected /* expected data */
                    105:        jmp     *badrtn
                    106: 
                    107: /*     Now try another mask(0x55555555)                                */
                    108: /*                                                                     */
                    109: 
                    110: o2:
                    111:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    112: ao2:   callf   $4,_setjmp      /* save context for error return */
                    113:        movab   ao2,_stpc       /* save starting address of program subtest */
                    114:        movl    $2,_subtst      /* subtest number */
                    115:        movl    $2,_no_opr      /* number of operands */
                    116:        movl    $MASK2L3,_opr   /* first operand */
                    117:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    118: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    119:        movl    $MASK2L3,r3     /*mask                                  */
                    120:        movl    $SOURCE2L3,r4   /*source                                */
                    121:        movl    $INIT1L3,dest   /*destination                           */
                    122:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    123:        orl3    r3,r4,dest      /* try again reg reg mem                */
                    124:        jeql    error2          /*error if Z = 1                        */
                    125:        jgeq    error2          /*error if N = 0                        */
                    126:        jcc     error2          /*error if C = 0                        */
                    127:        jvs     error2          /*error if V = 1                        */
                    128:        jmp     1f
                    129: error2:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    130:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    131:        movl    $2,_ercode      /* error code flag failure */
                    132:        jmp     *badrtn
                    133: 1:     cmpl    dest,$EXP2L3    /*if dest <> expected value,            */
                    134:        jeql    o3
                    135:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    136:        movl    $1,_ercode      /* error code data miscompare */
                    137:        movl    dest,_actual    /* actual data */
                    138:        movl    $EXP2L3,_expected /* expected data */
                    139:        jmp     *badrtn
                    140: 
                    141: 
                    142: /*     Now try another mask(0), source(0) & dest(0)                    */
                    143: 
                    144: o3:
                    145:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    146: ao3:   callf   $4,_setjmp      /* save context for error return */
                    147:        movab   ao3,_stpc       /* save starting address of program subtest */
                    148:        movl    $3,_subtst      /* subtest number */
                    149:        movl    $2,_no_opr      /* number of operands */
                    150:        movl    $MASK3L3,_opr   /* first operand */
                    151:        movl    $SOURCE3L3,_opr + 4 /* second operand */
                    152: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    153:        movl    $SOURCE3L3,r4   /*source                                */
                    154:        movl    $INIT3L3,dest   /*destination                           */
                    155:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    156:        orl3    $MASK3L3,r4,dest/* try again data reg mem               */
                    157:        jneq    error3          /*error if Z = 0                        */
                    158:        jlss    error3          /*error if N = 1                        */
                    159:        jcc     error3          /*error if C = 0                        */
                    160:        jvs     error3          /*error if V = 1                        */
                    161:        jmp     1f
                    162: error3:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    163:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    164:        movl    $2,_ercode      /* error code flag failure */
                    165:        jmp     *badrtn
                    166: 1:     cmpl    dest,$EXP3L3    /*if dest <> expected value,            */
                    167:        jeql    o4
                    168:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    169:        movl    $1,_ercode      /* error code data miscompare */
                    170:        movl    dest,_actual    /* actual data */
                    171:        movl    $EXP3L3,_expected /* expected data */
                    172:        jmp     *badrtn
                    173: 
                    174: o4:
                    175:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    176: ao4:   callf   $4,_setjmp      /* save context for error return */
                    177:        movab   ao4,_stpc       /* save starting address of program subtest */
                    178:        movl    $4,_subtst      /* subtest number */
                    179:        movl    $2,_no_opr      /* number of operands */
                    180:        movl    $MASK3L3,_opr   /* first operand */
                    181:        movl    $SOURCE3L3,_opr + 4 /* second operand */
                    182: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    183:        movl    $MASK3L3,r3
                    184:        movl    $INIT3L3,dest   /*destination                           */
                    185:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    186:        orl3    r3,$SOURCE3L3,dest/* try again  reg data mem            */
                    187:        jneq    error4          /*error if Z = 0                        */
                    188:        jlss    error4          /*error if N = 1                        */
                    189:        jcc     error4          /*error if C = 0                        */
                    190:        jvs     error4          /*error if V = 1                        */
                    191:        jmp     1f
                    192: error4:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    193:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    194:        movl    $2,_ercode      /* error code flag failure */
                    195:        jmp     *badrtn
                    196: 1:     cmpl    dest,$EXP3L3    /*if dest <> expected value,            */
                    197:        jeql    o5
                    198:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    199:        movl    $1,_ercode      /* error code data miscompare */
                    200:        movl    dest,_actual    /* actual data */
                    201:        movl    $EXP3L3,_expected /* expected data */
                    202:        jmp     *badrtn
                    203: 
                    204: o5:
                    205:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    206: ao5:   callf   $4,_setjmp      /* save context for error return */
                    207:        movab   ao5,_stpc       /* save starting address of program subtest */
                    208:        movl    $5,_subtst      /* subtest number */
                    209:        movl    $2,_no_opr      /* number of operands */
                    210:        movl    $MASK1L3,_opr   /* first operand */
                    211:        movl    $SOURCE1L3,_opr + 4 /* second operand */
                    212: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    213:        movl    $SOURCE1L3,r4   /*source                                */
                    214:        movl    $INIT1L3,r5     /*destination                           */
                    215:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    216:        orl3    $MASK1L3,r4,r5  /*try it data reg reg                   */
                    217:        jeql    error5          /*error if Z = 1                        */
                    218:        jgeq    error5          /*error if N = 0                        */
                    219:        jcc     error5          /*error if C = 0                        */
                    220:        jvs     error5          /*error if V = 1                        */
                    221:        jmp     1f
                    222: error5:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    223:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    224:        movl    $2,_ercode      /* error code flag failure */
                    225:        jmp     *badrtn
                    226: 1:     cmpl    r5,$EXP1L3      /*if dest <> expected value,            */
                    227:        jeql    o6
                    228:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    229:        movl    $1,_ercode      /* error code data miscompare */
                    230:        movl    r5,_actual      /* actual data */
                    231:        movl    $EXP1L3,_expected /* expected data */
                    232:        jmp     *badrtn
                    233: 
                    234: o6:
                    235:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    236: ao6:   callf   $4,_setjmp      /* save context for error return */
                    237:        movab   ao6,_stpc       /* save starting address of program subtest */
                    238:        movl    $6,_subtst      /* subtest number */
                    239:        movl    $2,_no_opr      /* number of operands */
                    240:        movl    $MASK2L3,_opr   /* first operand */
                    241:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    242: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    243:        movl    $MASK2L3,r3     /*mask                                  */
                    244:        movl    $INIT1L3,r5     /*destination                           */
                    245:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    246:        orl3    r3,$SOURCE2L3,r5/* try again reg data reg               */
                    247:        jeql    error6          /*error if Z = 1                        */
                    248:        jgeq    error6          /*error if N = 0                        */
                    249:        jcc     error6          /*error if C = 0                        */
                    250:        jvs     error6          /*error if V = 1                        */
                    251:        jmp     1f
                    252: error6:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    253:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    254:        movl    $2,_ercode      /* error code flag failure */
                    255:        jmp     *badrtn
                    256: 1:     cmpl    r5,$EXP2L3      /*if dest <> expected value,            */
                    257:        jeql    orl3mmm         /* no error then continue */
                    258:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    259:        movl    $1,_ercode      /* error code data miscompare */
                    260:        movl    r5,_actual      /* actual data */
                    261:        movl    $EXP1L3,_expected /* expected data */
                    262:        jmp     *badrtn
                    263: 
                    264: /*                                                                     */
                    265: /*     now try source = M, mask = M, destination = M                   */
                    266: orl3mmm:
                    267:        
                    268:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    269: ao7:   callf   $4,_setjmp      /* save context for error return */
                    270:        movab   ao7,_stpc       /* save starting address of program subtest */
                    271:        movl    $7,_subtst      /* subtest number */
                    272:        movl    $2,_no_opr      /* number of operands */
                    273:        movl    $MASK1L3,_opr   /* first operand */
                    274:        movl    $SOURCE1L3,_opr + 4 /* second operand */
                    275: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    276:        movl    $MASK1L3,mask   /*mask                                  */
                    277:        movl    $SOURCE1L3,source/*source                               */
                    278:        movl    $INIT1L3,dest   /*destination                           */
                    279:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    280:        orl3    mask,source,dest/*try it mem mem mem                    */
                    281:        jeql    error7          /*error if Z = 1                        */
                    282:        jgeq    error7          /*error if N = 0                        */
                    283:        jcc     error7          /*error if C = 0                        */
                    284:        jvs     error7          /*error if V = 1                        */
                    285:        jmp     1f
                    286: error7:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    287:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    288:        movl    $2,_ercode      /* error code flag failure */
                    289:        jmp     *badrtn
                    290: 1:     cmpl    dest,$EXP1L3    /*if dest <> expected value,            */
                    291:        jeql    o8              /* no error then continue */
                    292:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    293:        movl    $1,_ercode      /* error code data miscompare */
                    294:        movl    dest,_actual    /* actual data */
                    295:        movl    $EXP1L3,_expected /* expected data */
                    296:        jmp     *badrtn
                    297: 
                    298: /*     Now try another mask(0x55555555)                                */
                    299: /*                                                                     */
                    300: 
                    301: o8:
                    302:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    303: ao8:   callf   $4,_setjmp      /* save context for error return */
                    304:        movab   ao8,_stpc       /* save starting address of program subtest */
                    305:        movl    $8,_subtst      /* subtest number */
                    306:        movl    $2,_no_opr      /* number of operands */
                    307:        movl    $MASK2L3,_opr   /* first operand */
                    308:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    309: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    310:        movl    $INIT1L3,dest   /*destination                           */
                    311:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    312:        orl3    $MASK2L3,$SOURCE2L3,dest/* try again data data mem      */
                    313:        jeql    error8          /*error if Z = 1                        */
                    314:        jgeq    error8          /*error if N = 0                        */
                    315:        jcc     error8          /*error if C = 0                        */
                    316:        jvs     error8          /*error if V = 1                        */
                    317:        jmp     1f
                    318: error8:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    319:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    320:        movl    $2,_ercode      /* error code flag failure */
                    321:        jmp     *badrtn
                    322: 1:     cmpl    dest,$EXP2L3    /*if dest <> expected value,            */
                    323:        jeql    o9              /* no error then continue */
                    324:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    325:        movl    $1,_ercode      /* error code data miscompare */
                    326:        movl    dest,_actual    /* actual data */
                    327:        movl    $EXP2L3,_expected /* expected data */
                    328:        jmp     *badrtn
                    329: 
                    330: o9:
                    331:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    332: ao9:   callf   $4,_setjmp      /* save context for error return */
                    333:        movab   ao9,_stpc       /* save starting address of program subtest */
                    334:        movl    $9,_subtst      /* subtest number */
                    335:        movl    $2,_no_opr      /* number of operands */
                    336:        movl    $MASK2L3,_opr   /* first operand */
                    337:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    338: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    339:        movl    $INIT1L3,r5     /*destination                           */
                    340:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    341:        orl3    $MASK2L3,$SOURCE2L3,r5/* try again data data reg        */
                    342:        jeql    error9          /*error if Z = 1                        */
                    343:        jgeq    error9          /*error if N = 0                        */
                    344:        jcc     error9          /*error if C = 0                        */
                    345:        jvs     error9          /*error if V = 1                        */
                    346:        jmp     1f
                    347: error9:        movpsl  _actual         /* actual = psl Maybe incorrect */
                    348:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    349:        movl    $2,_ercode      /* error code flag failure */
                    350:        jmp     *badrtn
                    351: 1:     cmpl    r5,$EXP2L3      /*if dest <> expected value,            */
                    352:        jeql    o10             /* no error then continue */
                    353:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    354:        movl    $1,_ercode      /* error code data miscompare */
                    355:        movl    r5,_actual      /* actual data */
                    356:        movl    $EXP2L3,_expected /* expected data */
                    357:        jmp     *badrtn
                    358: /*                                                                     */
                    359: /*                                                                     */
                    360: /*     Now try another mask(0), source(0), & dest(0)                   */
                    361: /*                                                                     */
                    362: o10:
                    363:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    364: ao10:  callf   $4,_setjmp      /* save context for error return */
                    365:        movab   ao10,_stpc      /* save starting address of program subtest */
                    366:        movl    $0xa,_subtst    /* subtest number */
                    367:        movl    $2,_no_opr      /* number of operands */
                    368:        movl    $MASK3L3,_opr   /* first operand */
                    369:        movl    $SOURCE3L3,_opr + 4 /* second operand */
                    370: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    371:        movl    $SOURCE3L3,r4   /*source                                */
                    372:        movl    $INIT3L3,r5     /*destination                           */
                    373:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    374:        orl3    $MASK3L3,r4,r5  /* try again data reg reg               */
                    375:        jneq    error10         /*error if Z = 0                        */
                    376:        jlss    error10         /*error if N = 1                        */
                    377:        jcc     error10         /*error if C = 0                        */
                    378:        jvs     error10         /*error if V = 1                        */
                    379:        jmp     1f
                    380: error10: movpsl        _actual         /* actual = psl Maybe incorrect */
                    381:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    382:        movl    $2,_ercode      /* error code flag failure */
                    383:        jmp     *badrtn
                    384: 1:     movl    $EXP3L3,r6
                    385:        cmpl    r5,r6           /*if dest <> expected value,            */
                    386:        jeql    orl3mrm         /* no error then continue */
                    387:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    388:        movl    $1,_ercode      /* error code data miscompare */
                    389:        movl    r5,_actual      /* actual data */
                    390:        movl    r6,_expected /* expected data */
                    391:        jmp     *badrtn
                    392: /*                                                                     */
                    393: /*     Now use mask = R, source & destination = M                      */
                    394: /*                                                                     */
                    395: orl3mrm:
                    396:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    397: ao11:  callf   $4,_setjmp      /* save context for error return */
                    398:        movab   ao11,_stpc      /* save starting address of program subtest */
                    399:        movl    $0xb,_subtst    /* subtest number */
                    400:        movl    $2,_no_opr      /* number of operands */
                    401:        movl    $MASK1L3,_opr   /* first operand */
                    402:        movl    $SOURCE1L3,_opr + 4 /* second operand */
                    403: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    404:        movl    $MASK1L3,r3     /*mask                                  */
                    405:        movl    $SOURCE1L3,source/*source                               */
                    406:        movl    $INIT1L3,dest   /*destination                           */
                    407:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    408:        orl3    r3,source,dest  /*try it                                */
                    409:        jeql    error11         /*error if Z = 1                        */
                    410:        jgeq    error11         /*error if N = 0                        */
                    411:        jcc     error11         /*error if C = 0                        */
                    412:        jvs     error11         /*error if V = 1                        */
                    413:        jmp     1f
                    414: error11: movpsl        _actual         /* actual = psl Maybe incorrect */
                    415:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    416:        movl    $2,_ercode      /* error code flag failure */
                    417:        jmp     *badrtn
                    418: 1:     cmpl    dest,$EXP1L3    /*if dest <> expected value,            */
                    419:        jeql    o12             /* no error then continue */
                    420:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    421:        movl    $1,_ercode      /* error code data miscompare */
                    422:        movl    dest,_actual    /* actual data */
                    423:        movl    $EXP1L3,_expected /* expected data */
                    424:        jmp     *badrtn
                    425: /*                                                                     */
                    426: /*     Now try another mask(0x55555555)                                */
                    427: /*                                                                     */
                    428: o12:
                    429:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    430: ao12:  callf   $4,_setjmp      /* save context for error return */
                    431:        movab   ao12,_stpc      /* save starting address of program subtest */
                    432:        movl    $0xc,_subtst    /* subtest number */
                    433:        movl    $2,_no_opr      /* number of operands */
                    434:        movl    $MASK2L3,_opr   /* first operand */
                    435:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    436: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    437:        movl    $MASK2L3,r3     /*mask                                  */
                    438:        movl    $SOURCE2L3,source/*source                               */
                    439:        movl    $INIT1L3,dest   /*destination                           */
                    440:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    441:        orl3    r3,source,dest  /* try again                            */
                    442:        jeql    error12         /*error if Z = 1                        */
                    443:        jgeq    error12         /*error if N = 0                        */
                    444:        jcc     error12         /*error if C = 0                        */
                    445:        jvs     error12         /*error if V = 1                        */
                    446:        jmp     1f
                    447: error12: movpsl        _actual         /* actual = psl Maybe incorrect */
                    448:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    449:        movl    $2,_ercode      /* error code flag failure */
                    450:        jmp     *badrtn
                    451: 1:     cmpl    dest,$EXP2L3    /*if dest <> expected value,            */
                    452:        jeql    o13             /* no error then continue */
                    453:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    454:        movl    $1,_ercode      /* error code data miscompare */
                    455:        movl    dest,_actual    /* actual data */
                    456:        movl    $EXP2L3,_expected /* expected data */
                    457:        jmp     *badrtn
                    458: /*                                                                     */
                    459: /*     Now try another mask(0), source(0), & dest(0)                   */
                    460: /*                                                                     */
                    461: o13:
                    462:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    463: ao13:  callf   $4,_setjmp      /* save context for error return */
                    464:        movab   ao13,_stpc      /* save starting address of program subtest */
                    465:        movl    $0xd,_subtst    /* subtest number */
                    466:        movl    $2,_no_opr      /* number of operands */
                    467:        movl    $MASK3L3,_opr   /* first operand */
                    468:        movl    $SOURCE3L3,_opr + 4 /* second operand */
                    469: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    470:        movl    $MASK3L3,r3     /*mask                                  */
                    471:        movl    $SOURCE3L3,source/*source                               */
                    472:        movl    $INIT3L3,dest   /*destination                           */
                    473:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    474:        orl3    r3,source,dest  /* try again                            */
                    475:        jneq    error13         /*error if Z = 0                        */
                    476:        jlss    error13         /*error if N = 1                        */
                    477:        jcc     error13         /*error if C = 0                        */
                    478:        jvs     error13         /*error if V = 1                        */
                    479:        jmp     1f
                    480: error13: movpsl        _actual         /* actual = psl Maybe incorrect */
                    481:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    482:        movl    $2,_ercode      /* error code flag failure */
                    483:        jmp     *badrtn
                    484: 1:     cmpl    dest,$EXP3L3    /*if dest <> expected value,            */
                    485:        jeql    orl3rmm         /* no error then continue */
                    486:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    487:        movl    $1,_ercode      /* error code data miscompare */
                    488:        movl    dest,_actual    /* actual data */
                    489:        movl    $EXP3L3,_expected /* expected data */
                    490:        jmp     *badrtn
                    491: 
                    492: /*                                                                     */
                    493: /*     Now try mask = M, source = R, dest = M                          */
                    494: /*                                                                     */
                    495: orl3rmm:
                    496:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    497: ao14:  callf   $4,_setjmp      /* save context for error return */
                    498:        movab   ao14,_stpc      /* save starting address of program subtest */
                    499:        movl    $0xe,_subtst    /* subtest number */
                    500:        movl    $2,_no_opr      /* number of operands */
                    501:        movl    $MASK1L3,_opr   /* first operand */
                    502:        movl    $SOURCE1L3,_opr + 4 /* second operand */
                    503: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    504:        movl    $MASK1L3,mask   /*mask                                  */
                    505:        movl    $SOURCE1L3,r4   /*source                                */
                    506:        movl    $INIT1L3,dest   /*destination                           */
                    507:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    508:        orl3    mask,r4,dest    /*try it                                */
                    509:        jeql    error14         /*error if Z = 1                        */
                    510:        jgeq    error14         /*error if N = 0                        */
                    511:        jcc     error14         /*error if C = 0                        */
                    512:        jvs     error14         /*error if V = 1                        */
                    513:        jmp     1f
                    514: error14: movpsl        _actual         /* actual = psl Maybe incorrect */
                    515:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    516:        movl    $2,_ercode      /* error code flag failure */
                    517:        jmp     *badrtn
                    518: 1:     cmpl    dest,$EXP1L3    /*if dest <> expected value,            */
                    519:        jeql    o15             /* no error then continue */
                    520:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    521:        movl    $1,_ercode      /* error code data miscompare */
                    522:        movl    dest,_actual    /* actual data */
                    523:        movl    $EXP1L3,_expected /* expected data */
                    524:        jmp     *badrtn
                    525: 
                    526: /*     Now try another mask(0x55555555)                                */
                    527: /*                                                                     */
                    528: 
                    529: o15:
                    530:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    531: ao15:  callf   $4,_setjmp      /* save context for error return */
                    532:        movab   ao15,_stpc      /* save starting address of program subtest */
                    533:        movl    $0xf,_subtst    /* subtest number */
                    534:        movl    $2,_no_opr      /* number of operands */
                    535:        movl    $MASK2L3,_opr   /* first operand */
                    536:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    537: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    538:        movl    $MASK2L3,mask   /*mask                                  */
                    539:        movl    $SOURCE2L3,r4   /*source                                */
                    540:        movl    $INIT1L3,dest   /*destination                           */
                    541:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    542:        orl3    mask,r4,dest    /* try again                            */
                    543:        jeql    error15         /*error if Z = 1                        */
                    544:        jgeq    error15         /*error if N = 0                        */
                    545:        jcc     error15         /*error if C = 0                        */
                    546:        jvs     error15         /*error if V = 1                        */
                    547:        jmp     1f
                    548: error15: movpsl        _actual         /* actual = psl Maybe incorrect */
                    549:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    550:        movl    $2,_ercode      /* error code flag failure */
                    551:        jmp     *badrtn
                    552: 1:     cmpl    dest,$EXP2L3    /*if dest <> expected value,            */
                    553:        jeql    o16             /* no error then continue */
                    554:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    555:        movl    $1,_ercode      /* error code data miscompare */
                    556:        movl    dest,_actual    /* actual data */
                    557:        movl    $EXP2L3,_expected /* expected data */
                    558:        jmp     *badrtn
                    559: /*                                                                     */
                    560: /*     Now try another mask(0), mask(0), dest(0)                       */
                    561: /*                                                                     */
                    562: o16:
                    563:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    564: ao16:  callf   $4,_setjmp      /* save context for error return */
                    565:        movab   ao16,_stpc      /* save starting address of program subtest */
                    566:        movl    $0x10,_subtst   /* subtest number */
                    567:        movl    $2,_no_opr      /* number of operands */
                    568:        movl    $MASK3L3,_opr   /* first operand */
                    569:        movl    $SOURCE3L3,_opr + 4 /* second operand */
                    570: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    571:        movl    $MASK3L3,mask   /*mask                                  */
                    572:        movl    $SOURCE3L3,r4   /*source                                */
                    573:        movl    $INIT3L3,dest   /*destination                           */
                    574:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    575:        orl3    mask,r4,dest    /* try again                            */
                    576:        jneq    error16         /*error if Z = 0                        */
                    577:        jlss    error16         /*error if N = 1                        */
                    578:        jcc     error16         /*error if C = 0                        */
                    579:        jvs     error16         /*error if V = 1                        */
                    580:        jmp     1f
                    581: error16: movpsl        _actual         /* actual = psl Maybe incorrect */
                    582:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    583:        movl    $2,_ercode      /* error code flag failure */
                    584:        jmp     *badrtn
                    585: 1:     cmpl    dest,$EXP3L3    /*if dest <> expected value,            */
                    586:        jeql    orl3mrr         /* no error then continue */
                    587:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    588:        movl    $1,_ercode      /* error code data miscompare */
                    589:        movl    dest,_actual    /* actual data */
                    590:        movl    $EXP3L3,_expected /* expected data */
                    591:        jmp     *badrtn
                    592: /*                                                                     */
                    593: /*     Now try mask = R, source = M, dest = R                          */
                    594: /*                                                                     */
                    595: orl3mrr:
                    596:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    597: ao17:  callf   $4,_setjmp      /* save context for error return */
                    598:        movab   ao17,_stpc      /* save starting address of program subtest */
                    599:        movl    $0x11,_subtst   /* subtest number */
                    600:        movl    $2,_no_opr      /* number of operands */
                    601:        movl    $MASK1L3,_opr   /* first operand */
                    602:        movl    $SOURCE1L3,_opr + 4 /* second operand */
                    603: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    604:        movl    $MASK1L3,r3     /*mask                                  */
                    605:        movl    $SOURCE1L3,source/*source                               */
                    606:        movl    $INIT1L3,r5     /*destination                           */
                    607:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    608:        orl3    r3,source,r5    /*try it                                */
                    609:        jeql    error17         /*error if Z = 1                        */
                    610:        jgeq    error17         /*error if N = 0                        */
                    611:        jcc     error17         /*error if C = 0                        */
                    612:        jvs     error17         /*error if V = 1                        */
                    613:        jmp     1f
                    614: error17: movpsl        _actual         /* actual = psl Maybe incorrect */
                    615:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    616:        movl    $2,_ercode      /* error code flag failure */
                    617:        jmp     *badrtn
                    618: 1:     cmpl    r5,$EXP1L3      /*if dest <> expected value,            */
                    619:        jeql    o18             /* no error then continue */
                    620:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    621:        movl    $1,_ercode      /* error code data miscompare */
                    622:        movl    r5,_actual      /* actual data */
                    623:        movl    $EXP1L3,_expected /* expected data */
                    624:        jmp     *badrtn
                    625: 
                    626: /*     Now try another mask(0x55555555)                                */
                    627: /*                                                                     */
                    628: 
                    629: o18:
                    630:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    631: ao18:  callf   $4,_setjmp      /* save context for error return */
                    632:        movab   ao18,_stpc      /* save starting address of program subtest */
                    633:        movl    $0x12,_subtst   /* subtest number */
                    634:        movl    $2,_no_opr      /* number of operands */
                    635:        movl    $MASK2L3,_opr   /* first operand */
                    636:        movl    $SOURCE2L3,_opr + 4 /* second operand */
                    637: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    638:        movl    $MASK2L3,r3     /*mask                                  */
                    639:        movl    $SOURCE2L3,source/*source                               */
                    640:        movl    $INIT1L3,r5     /*destination                           */
                    641:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    642:        orl3    r3,source,r5    /* try again                            */
                    643:        jeql    error18         /*error if Z = 1                        */
                    644:        jgeq    error18         /*error if N = 0                        */
                    645:        jcc     error18         /*error if C = 0                        */
                    646:        jvs     error18         /*error if V = 1                        */
                    647:        jmp     1f
                    648: error18: movpsl        _actual         /* actual = psl Maybe incorrect */
                    649:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    650:        movl    $2,_ercode      /* error code flag failure */
                    651:        jmp     *badrtn
                    652: 1:     cmpl    r5,$EXP2L3      /*if dest <> expected value,            */
                    653:        jeql    o19             /* no error then continue */
                    654:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    655:        movl    $1,_ercode      /* error code data miscompare */
                    656:        movl    r5,_actual      /* actual data */
                    657:        movl    $EXP2L3,_expected /* expected data */
                    658:        jmp     *badrtn
                    659: /*                                                                     */
                    660: /*     Now try another mask(0), mask(0), & dest(0)                     */
                    661: /*                                                                     */
                    662: o19:
                    663:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    664: ao19:  callf   $4,_setjmp      /* save context for error return */
                    665:        movab   ao19,_stpc      /* save starting address of program subtest */
                    666:        movl    $0x13,_subtst   /* subtest number */
                    667:        movl    $2,_no_opr      /* number of operands */
                    668:        movl    $MASK3L3,_opr   /* first operand */
                    669:        movl    $SOURCE3L3,_opr + 4 /* second operand */
                    670: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    671:        movl    $MASK3L3,r3     /*mask                                  */
                    672:        movl    $SOURCE3L3,source/*source                               */
                    673:        movl    $INIT3L3,r5     /*destination                           */
                    674:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    675:        orl3    r3,source,r5    /* try again                            */
                    676:        jneq    error19         /*error if Z = 0                        */
                    677:        jlss    error19         /*error if N = 1                        */
                    678:        jcc     error19         /*error if C = 0                        */
                    679:        jvs     error19         /*error if V = 1                        */
                    680:        jmp     1f
                    681: error19: movpsl        _actual         /* actual = psl Maybe incorrect */
                    682:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    683:        movl    $2,_ercode      /* error code flag failure */
                    684:        jmp     *badrtn
                    685: 1:     cmpl    r5,$EXP3L3      /*if dest <> expected value,            */
                    686:        jeql    aldn            /* no error then continue */
                    687:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    688:        movl    $1,_ercode      /* error code data miscompare */
                    689:        movl    r5,_actual      /* actual data */
                    690:        movl    $EXP3L3,_expected /* expected data */
                    691:        jmp     *badrtn
                    692: 
                    693: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    694:        jmp     *return
                    695: /*                                                                     */
                    696: /*     Variables                                                       */
                    697: /*                                                                     */
                    698:        .align  2
                    699: mask:  .space  4
                    700: source:        .space  4
                    701: dest:  .space  4
                    702: 
                    703: /*                                                                     */
                    704: /*     End of file                                                     */
                    705: 

unix.superglobalmegacorp.com

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