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

1.1       root        1: 
                      2: 
                      3: /*             ADDL2 (add long 2) test                                 */
                      4: /*                                                                     */
                      5: /*Test name = addl2                                                    */
                      6: /*Description =                                                                */
                      7: /*     This test checks 'addl2' instruction as follows:                */
                      8: /*add          sum             result          N Z V C (flags)         */
                      9: /*___          ___             ______          _______________         */
                     10: /*0x7fffffff   0x7fffffff      0x7ffffffe      0 0 1 0                 */
                     11: /*0x80000000   0x80000000      0x00000000      0 1 1 1                 */
                     12: /*0x80000000   0xffffffff      0x7fffffff      0 0 1 1                 */
                     13: /*0x80000001   0x7fffffff      0x00000000      0 1 0 1                 */
                     14: /*0x80000000   0x7fffffff      0xffffffff      1 0 0 0                 */
                     15: /*0xc0000000   0xc0000000      0x80000000      1 0 0 1                 */
                     16: /*                                                                     */
                     17: /*                                                                     */
                     18: /*     constants definition for 'addx' tests.                          */
                     19: /*                                                                     */
                     20: 
                     21:        .set    A1B1,0x1111107f/*+127, highest +ve number, byte */
                     22:        .set    A1W1,0x11107fff
                     23:        .set    A1L1,0x7fffffff
                     24:        .set    A2B1,0x1111107f/* +127 */
                     25:        .set    A2W1,0x11107fff
                     26:        .set    A2L1,A1L1
                     27:        .set    RB1,0x111110fe
                     28:        .set    RW1,0x1110fffe
                     29:        .set    RL1,0xfffffffe
                     30:        .set    A1B2,0x11111080/* -128 */
                     31:        .set    A1W2,0x11108000
                     32:        .set    A1L2,0x80000000
                     33:        .set    A2B2,0x11111080/* -128 */
                     34:        .set    A2W2,0x11118000
                     35:        .set    A2L2,0X80000000
                     36:        .set    RB2,0x11111000/* 0 */
                     37:        .set    RW2,0x11100000
                     38:        .set    RL2,0x00000000
                     39:        .set    A1B3,0X80       /* -128 */
                     40:        .set    A1W3,0x8000
                     41:        .set    A1L3,0x80000000
                     42:        .set    A2B3,0xff       /* -1 */
                     43:        .set    A2W3,0xffff
                     44:        .set    A2L3,0xffffffff
                     45:        .set    RB3,0x0000007f
                     46:        .set    RW3,0X00007fff
                     47:        .set    RL3,0X7fffffff
                     48:        .set    A1B4,0x81       /* -127 */
                     49:        .set    A1W4,0x8001
                     50:        .set    A1L4,0x80000001
                     51:        .set    A2B4,0x7f       /* 127 */
                     52:        .set    A2W4,0x7fff
                     53:        .set    A2L4,0x7fffffff
                     54:        .set    RB4,0           /* 0 */
                     55:        .set    RW4,RB4
                     56:        .set    RL4,RB4
                     57:        .set    A1B5,A1B3       /* -128 */
                     58:        .set    A1W5,A1W3
                     59:        .set    A1L5,A1L3
                     60:        .set    A2B5,A2B4       /* 127 */
                     61:        .set    A2W5,A2W4
                     62:        .set    A2L5,A2L4
                     63:        .set    RB5,0xff                /* -1 */
                     64:        .set    RW5,0xffff
                     65:        .set    RL5,0xffffffff
                     66:        .set    A1B6,0xc0       /* -64 */
                     67:        .set    A1W6,0xc000
                     68:        .set    A1L6,0xc0000000
                     69:        .set    A2B6,A1B6       /* -64 */
                     70:        .set    A2W6,A1W6
                     71:        .set    A2L6,A1L6
                     72:        .set    RB6,0x00000080  /* -128 */
                     73:        .set    RW6,0x00008000
                     74:        .set    RL6,0X80000000
                     75: 
                     76:        .set    INITB,0x11111055/* initialization values for 3 operand */
                     77:        .set    INITW,0x11105555
                     78:        .set    INITL,0X55555555
                     79:        
                     80: /*                                                                     */
                     81: /*     Syst.s - Constants                                              */
                     82: /*                                                                     */
                     83:        .set    IPL,8
                     84:        .set    HIGH,31
                     85:        .set    ZERO,0
                     86:        .set    ONES,0xffffffff
                     87:        .set    N,8
                     88:        .set    Z,4
                     89:        .set    V,2
                     90:        .set    C,1
                     91:        .set    T,16
                     92:        .set    IV,32
                     93:        .set    FU,64
                     94:        .set    DV,128
                     95:        .set    PSWMASK,0x003f
                     96: 
                     97:        .globl  _addl2
                     98: _addl2:
                     99:        callf   $4,_setjmp      /* save context for return from error */
                    100:        movab   _addl2,_stpc    /* save subtest program counter */
                    101:        movl    $1,_subtst      /* subtest number */
                    102:        movl    $2,_no_opr      /* number of operands */
                    103:        movl    $A1L1,_opr      /* first operand */
                    104:        movl    $A2L1,_opr + 4  /* second operand */
                    105: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    106:        movl    $A1L1,add       /*first operand                         */
                    107:        movl    $A2L1,sum       /*second operand                        */
                    108:        bispsw  $(N|Z|C)        /* these flags ON                       */
                    109:        addl2   add,sum /* try 'add' instruction memory to memory       */
                    110:        jlss    e1              /*error if N = 1                        */
                    111:        jeql    e1              /*error if Z = 1                        */
                    112:        jvc     e1              /*error if V = 0                        */
                    113:        jcs     e1              /*error if C = 1                        */
                    114:        bicpsw  $Z
                    115:        movl    $RL1,r4
                    116:        cmpl    $RL1,sum        /*sum = expected ?                      */
                    117:        jeql    al1r    
                    118:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    119:        movl    $1,_ercode      /* error code data miscompare */
                    120:        movl    sum,_actual     /* actual data */
                    121:        movl    $RL1,_expected  /* expected data */
                    122:        jmp     *badrtn
                    123: e1:    movpsl  _actual         /* actual = psl */
                    124:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    125:        movl    $2,_ercode      /* error code flag failure */
                    126:        jmp     *badrtn
                    127: 
                    128: 
                    129: 
                    130: /*     reverse operands                                                */
                    131: 
                    132: al1r:
                    133:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    134: aal1r: callf   $4,_setjmp      /* save context for return from error */
                    135:        movab   aal1r,_stpc     /* save subtest program counter */
                    136:        movl    $2,_subtst      /* subtest number */
                    137:        movl    $2,_no_opr      /* number of operands */
                    138:        movl    $A2L1,_opr      /* first operand */
                    139:        movl    $A1L1,_opr + 4  /* second operand */
                    140: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    141:        movl    $A1L1,sum       /*second operand                        */
                    142:        bispsw  $(N|Z|C)        /* these flags ON                       */
                    143:        addl2   $A2L1,sum       /* try 'add' instructio data to mem     */
                    144:        jlss    e2              /*error if N = 1                        */
                    145:        jeql    e2              /*error if Z = 1                        */
                    146:        jvc     e2              /*error if V = 0                        */
                    147:        jcs     e2              /*error if C = 1                        */
                    148:        bicpsw  $Z
                    149:        movl    $RL1,r4
                    150:        cmpl    $RL1,sum        /*sum = expected ?                      */
                    151:        jeql    al2
                    152:        movl    $1,_ercode      /* error code data miscompare */
                    153: e2b:   bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    154:        movl    sum,_actual     /* actual data */
                    155:        movl    $RL1,_expected  /* expected data */
                    156:        jmp     *badrtn
                    157: e2:    movpsl  _actual         /* actual = psl */
                    158:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    159:        movl    $2,_ercode      /* error code flag failure */
                    160:        jmp     *badrtn
                    161: 
                    162: al2:
                    163:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    164: aal2:  callf   $4,_setjmp      /* save context for return from error */
                    165:        movab   aal2,_stpc      /* save subtest program counter */
                    166:        movl    $3,_subtst      /* subtest number */
                    167:        movl    $2,_no_opr      /* number of operands */
                    168:        movl    $A1L2,_opr      /* first operand */
                    169:        movl    $A2L2,_opr + 4  /* second operand */
                    170: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    171:        movl    $A2L2,r5        /* second operand                       */
                    172:        bispsw  $N              /* these flags ON                       */
                    173:        addl2   $A1L2,r5        /* try 'add' instruction data to reg    */
                    174:        jlss    e3              /*error if N = 0                        */
                    175:        jneq    e3              /*error if Z = 0                        */
                    176:        jvc     e3              /*error if V = 0                        */
                    177:        jcc     e3              /*error if C = 0                        */
                    178:        bicpsw  $Z
                    179:        movl    $RL2,r4
                    180:        cmpl    $RL2,r5         /*sum = expected ?                      */
                    181:        jeql    al2r
                    182:        movl    $1,_ercode      /* error code data miscompare */
                    183:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    184:        movl    r5,_actual      /* actual data */
                    185:        movl    $RL2,_expected  /* expected data */
                    186:        jmp     *badrtn
                    187: e3:    movpsl  _actual         /* actual = psl */
                    188:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    189:        movl    $2,_ercode      /* error code flag failure */
                    190:        jmp     *badrtn
                    191: 
                    192: /*     reverse operands                                                */
                    193: 
                    194: al2r:
                    195:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    196: aal2r: callf   $4,_setjmp      /* save context for return from error */
                    197:        movab   aal2r,_stpc     /* save subtest program counter */
                    198:        movl    $4,_subtst      /* subtest number */
                    199:        movl    $2,_no_opr      /* number of operands */
                    200:        movl    $A2L2,_opr      /* first operand */
                    201:        movl    $A1L2,_opr + 4  /* second operand */
                    202: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    203:        movl    $A2L2,r5        /*first operand                         */
                    204:        movl    $A1L2,sum       /*second operand                        */
                    205:        bispsw  $N              /* these flags ON                       */
                    206:        addl2   r5,sum          /* try 'add' instruction reg to memory */
                    207:        jlss    e4              /*error if N = 0                        */
                    208:        jneq    e4              /*error if Z = 0                        */
                    209:        jvc     e4              /*error if V = 0                        */
                    210:        jcc     e4              /*error if C = 0                        */
                    211:        bicpsw  $Z
                    212:        movl    $RL2,r4
                    213:        cmpl    $RL2,sum        /*sum = expected ?                      */
                    214:        jeql    al3
                    215:        movl    $1,_ercode      /* error code data miscompare */
                    216:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    217:        movl    sum,_actual     /* actual data */
                    218:        movl    $RL2,_expected  /* expected data */
                    219:        jmp     *badrtn
                    220: e4:    movpsl  _actual         /* actual = psl */
                    221:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    222:        movl    $2,_ercode      /* error code flag failure */
                    223:        jmp     *badrtn
                    224: 
                    225: al3:
                    226:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    227: aal3:  callf   $4,_setjmp      /* save context for return from error */
                    228:        movab   aal3,_stpc      /* save subtest program counter */
                    229:        movl    $5,_subtst      /* subtest number */
                    230:        movl    $2,_no_opr      /* number of operands */
                    231:        movl    $A1L3,_opr      /* first operand */
                    232:        movl    $A2L3,_opr + 4  /* second operand */
                    233: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    234:        movl    $A1L3,r5        /*first operand                         */
                    235:        movl    $A2L3,r6        /*second operand                        */
                    236:        bispsw  $(N|Z)          /* these flags ON                       */
                    237:        addl2   r5,r6           /* try 'add' instruction reg to reg     */
                    238:        jgeq    e5              /*error if N = 0                        */
                    239:        jeql    e5              /*error if Z = 1                        */
                    240:        jvc     e5              /*error if V = 0                        */
                    241:        jcc     e5              /*error if C = 0                        */
                    242:        bicpsw  $Z
                    243:        movl    $RL3,r4
                    244:        cmpl    r4,r6           /*sum = expected ?                      */
                    245:        jeql    al3r
                    246:        movl    $1,_ercode      /* error code data miscompare */
                    247:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    248:        movl    r6,_actual      /* actual data */
                    249:        movl    $RL3,_expected  /* expected data */
                    250:        jmp     *badrtn
                    251: e5:    movpsl  _actual         /* actual = psl */
                    252:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    253:        movl    $2,_ercode      /* error code flag failure */
                    254:        jmp     *badrtn
                    255: 
                    256: 
                    257: /*     reverse operands                                                */
                    258: 
                    259: al3r:
                    260:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    261: aal3r: callf   $4,_setjmp      /* save context for return from error */
                    262:        movab   aal3r,_stpc     /* save subtest program counter */
                    263:        movl    $6,_subtst      /* subtest number */
                    264:        movl    $2,_no_opr      /* number of operands */
                    265:        movl    $A2L3,_opr      /* first operand */
                    266:        movl    $A1L3,_opr + 4  /* second operand */
                    267: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    268:        movl    $A2L3,add       /*first operand                         */
                    269:        movl    $A1L3,sum       /*second operand                        */
                    270:        bispsw  $(N|Z)          /* these flags ON                       */
                    271:        addl2   add,sum /* try 'add' instruction                */
                    272:        jgeq    e6              /*error if N = 0                        */
                    273:        jeql    e6              /*error if Z = 1                        */
                    274:        jvc     e6              /*error if V = 0                        */
                    275:        jcc     e6              /*error if C = 0                        */
                    276:        bicpsw  $Z
                    277:        movl    $RL3,r4
                    278:        cmpl    $RL3,sum        /*sum = expected ?                      */
                    279:        jeql    al4
                    280:        movl    $1,_ercode      /* error code data miscompare */
                    281:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    282:        movl    sum,_actual     /* actual data */
                    283:        movl    $RL3,_expected  /* expected data */
                    284:        jmp     *badrtn
                    285: e6:    movpsl  _actual         /* actual = psl */
                    286:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    287:        movl    $2,_ercode      /* error code flag failure */
                    288:        jmp     *badrtn
                    289: 
                    290: al4:
                    291:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    292: aal4:  callf   $4,_setjmp      /* save context for return from error */
                    293:        movab   aal4,_stpc      /* save subtest program counter */
                    294:        movl    $7,_subtst      /* subtest number */
                    295:        movl    $2,_no_opr      /* number of operands */
                    296:        movl    $A1L4,_opr      /* first operand */
                    297:        movl    $A2L4,_opr + 4  /* second operand */
                    298: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    299:        movl    $A1L4,add       /*first operand                         */
                    300:        movl    $A2L4,sum       /*second operand                        */
                    301:        bispsw  $(N|V)          /* these flags ON                       */
                    302:        addl2   add,sum /* try 'add' instruction                */
                    303:        jlss    e7              /*error if N = 1                        */
                    304:        jneq    e7              /*error if Z = 0                        */
                    305:        jvs     e7              /*error if V = 1                        */
                    306:        jcc     e7              /*error if C = 0                        */
                    307:        bicpsw  $Z
                    308:        movl    $RL4,r4
                    309:        cmpl    $RL4,sum        /*sum = expected ?                      */
                    310:        jeql    al4r
                    311:        movl    $1,_ercode      /* error code data miscompare */
                    312:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    313:        movl    sum,_actual     /* actual data */
                    314:        movl    $RL4,_expected  /* expected data */
                    315:        jmp     *badrtn
                    316: e7:    movpsl  _actual         /* actual = psl */
                    317:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    318:        movl    $2,_ercode      /* error code flag failure */
                    319:        jmp     *badrtn
                    320: 
                    321: 
                    322: /*     reverse operands                                                */
                    323: 
                    324: al4r:
                    325:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    326: aal4r: callf   $4,_setjmp      /* save context for return from error */
                    327:        movab   aal4r,_stpc     /* save subtest program counter */
                    328:        movl    $8,_subtst      /* subtest number */
                    329:        movl    $2,_no_opr      /* number of operands */
                    330:        movl    $A1L4,_opr      /* first operand */
                    331:        movl    $A2L4,_opr + 4  /* second operand */
                    332: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    333:        movl    $A2L4,add       /*first operand                         */
                    334:        movl    $A1L4,sum       /*second operand                        */
                    335:        bispsw  $(N|V)          /* these flags ON                       */
                    336:        addl2   add,sum /* try 'add' instruction                */
                    337:        jlss    e8              /*error if N = 1                        */
                    338:        jneq    e8              /*error if Z = 0                        */
                    339:        jvs     e8              /*error if V = 1                        */
                    340:        jcc     e8              /*error if C = 0                        */
                    341:        bicpsw  $Z
                    342:        movl    $0,r4
                    343:        cmpl    r4,sum  /*sum = expected ?                      */
                    344:        jeql    al5
                    345:        movl    $1,_ercode      /* error code data miscompare */
                    346:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    347:        movl    sum,_actual     /* actual data */
                    348:        movl    $0,_expected    /* expected data */
                    349:        jmp     *badrtn
                    350: e8:    movpsl  _actual         /* actual = psl */
                    351:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    352:        movl    $2,_ercode      /* error code flag failure */
                    353:        jmp     *badrtn
                    354: 
                    355: 
                    356: 
                    357: al5:
                    358:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    359: aal5:  callf   $4,_setjmp      /* save context for return from error */
                    360:        movab   aal5,_stpc      /* save subtest program counter */
                    361:        movl    $9,_subtst      /* subtest number */
                    362:        movl    $2,_no_opr      /* number of operands */
                    363:        movl    $A1L5,_opr      /* first operand */
                    364:        movl    $A2L5,_opr + 4  /* second operand */
                    365: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    366:        movl    $A1L5,add       /*first operand                         */
                    367:        movl    $A2L5,sum       /*second operand                        */
                    368:        bispsw  $(V|Z|C)        /* these flags ON                       */
                    369:        addl2   add,sum /* try 'add' instruction                */
                    370:        jgeq    e9              /*error if N = 0                        */
                    371:        jeql    e9              /*error if Z = 1                        */
                    372:        jvs     e9              /*error if V = 1                        */
                    373:        jcs     e9              /*error if C = 1                        */
                    374:        bicpsw  $Z
                    375:        movl    $RL5,r4
                    376:        cmpl    $RL5,sum        /*sum = expected ?                      */
                    377:        jeql    al5r
                    378:        movl    $1,_ercode      /* error code data miscompare */
                    379:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    380:        movl    sum,_actual     /* actual data */
                    381:        movl    $RL5,_expected  /* expected data */
                    382:        jmp     *badrtn
                    383: e9:    movpsl  _actual         /* actual = psl */
                    384:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    385:        movl    $2,_ercode      /* error code flag failure */
                    386:        jmp     *badrtn
                    387: 
                    388: 
                    389: /*     reverse operands                                                */
                    390: 
                    391: al5r:
                    392:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    393: aal5r: callf   $4,_setjmp      /* save context for return from error */
                    394:        movab   aal5r,_stpc     /* save subtest program counter */
                    395:        movl    $0xa,_subtst    /* subtest number */
                    396: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    397:        movl    $A2L5,add       /*first operand                         */
                    398:        movl    $A1L5,sum       /*second operand                        */
                    399:        bispsw  $(V|Z|C)        /* these flags ON                       */
                    400:        addl2   add,sum /* try 'add' instruction                */
                    401:        jgeq    e10             /*error if N = 0                        */
                    402:        jeql    e10             /*error if Z = 1                        */
                    403:        jvs     e10             /*error if V = 1                        */
                    404:        jcs     e10             /*error if C = 1                        */
                    405:        bicpsw  $Z
                    406:        movl    $RL5,r4
                    407:        cmpl    r4,sum  /*sum = expected ?                      */
                    408:        jeql    al6
                    409:        movl    $1,_ercode      /* error code data miscompare */
                    410:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    411:        movl    sum,_actual     /* actual data */
                    412:        movl    $RL5,_expected  /* expected data */
                    413:        jmp     *badrtn
                    414: e10:   movpsl  _actual         /* actual = psl */
                    415:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    416:        movl    $2,_ercode      /* error code flag failure */
                    417:        jmp     *badrtn
                    418: 
                    419: al6:
                    420:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    421: aal6:  callf   $4,_setjmp      /* save context for return from error */
                    422:        movab   aal6,_stpc      /* save subtest program counter */
                    423:        movl    $0xb,_subtst    /* subtest number */
                    424:        movl    $A1L6,_opr      /* first operand */
                    425:        movl    $A2L6,_opr + 4  /* second operand */
                    426: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    427:        movl    $A1L6,add       /*first operand                         */
                    428:        movl    $A2L6,sum       /*second operand                        */
                    429:        bispsw  $(Z|V)          /* these flags ON                       */
                    430:        addl2   add,sum /* try 'add' instruction                */
                    431:        jgeq    e11             /*error if N = 0                        */
                    432:        jeql    e11             /*error if Z = 1                        */
                    433:        jvs     e11             /*error if V = 1                        */
                    434:        jcc     e11             /*error if C = 0                        */
                    435:        bicpsw  $Z
                    436:        movl    $RL6,r4
                    437:        cmpl    $RL6,sum        /*sum = expected ?                      */
                    438:        jeql    al6r
                    439:        movl    $1,_ercode      /* error code data miscompare */
                    440:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    441:        movl    sum,_actual     /* actual data */
                    442:        movl    $RL6,_expected  /* expected data */
                    443:        jmp     *badrtn
                    444: e11:   movpsl  _actual         /* actual = psl */
                    445:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    446:        movl    $2,_ercode      /* error code flag failure */
                    447:        jmp     *badrtn
                    448: 
                    449: 
                    450: /*     reverse operands                                                */
                    451: 
                    452: al6r:
                    453:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    454: aal6r: callf   $4,_setjmp      /* save context for return from error */
                    455:        movab   aal6r,_stpc     /* save subtest program counter */
                    456:        movl    $0xc,_subtst    /* subtest number */
                    457: 0:     bicpsw  $PSWMASK        /*PSW = 0                               */
                    458:        movl    $A2L6,add       /*first operand                         */
                    459:        movl    $A1L6,sum       /*second operand                        */
                    460:        bispsw  $(Z|V)          /* these flags ON                       */
                    461:        addl2   add,sum /* try 'add' instruction                */
                    462:        jgeq    e12             /*error if N = 0                        */
                    463:        jeql    e12             /*error if Z = 1                        */
                    464:        jvs     e12             /*error if V = 1                        */
                    465:        jcc     e12             /*error if C = 0                        */
                    466:        bicpsw  $Z
                    467:        movl    $RL6,r4
                    468:        cmpl    $RL6,sum        /*sum = expected ?                      */
                    469:        jeql    aldn    
                    470:        movl    $1,_ercode      /* error code data miscompare */
                    471:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    472:        movl    sum,_actual     /* actual data */
                    473:        movl    $RL6,_expected  /* expected data */
                    474:        jmp     *badrtn
                    475: e12:   movpsl  _actual         /* actual = psl */
                    476:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    477:        movl    $2,_ercode      /* error code flag failure */
                    478:        jmp     *badrtn
                    479: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    480:        jmp     *return
                    481: 
                    482: /*                                                                     */
                    483: /*     Varialles                                                       */
                    484: /*                                                                     */
                    485:        .align  2
                    486: add1:  .space  4
                    487: add2:  .space  4
                    488: sum:   .space  4
                    489: add:   .space  4
                    490: 
                    491: /*     End of file                                                     */
                    492: 
                    493: 

unix.superglobalmegacorp.com

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