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

1.1       root        1: /*     This program tests the instruction LOADR.       */
                      2: #      R2 : error code
                      3: #           1 = error in flags
                      4: #           2 = mask operand changed
                      5: #           3 = register did not get loaded correctly
                      6: 
                      7:        .set    N,8
                      8:        .set    Z,4
                      9:        .set    V,2
                     10:        .set    C,1
                     11:        
                     12:        .globl  _loadr
                     13: _loadr:
                     14:        callf   $4,_setjmp      /* save context for return from error */
                     15:        movab   _loadr,_stpc    /* save subtest starting address */
                     16:        movl    $1,_subtst      /* subtest number */
                     17:        movl    $1,_no_opr      /* number of operands in use */
                     18:        movl    $0,_opr         /* first operand */
                     19: 0:     movl    $0xffffffff,r0          /* load r0 - r13 with known data */
                     20:        movl    r0,r1
                     21:        movl    r1,r2
                     22:        movl    r2,r3
                     23:        movl    r3,r4
                     24:        movl    r4,r5
                     25:        movl    r5,r6
                     26:        movl    r6,r7
                     27:        movl    r7,r8
                     28:        movl    r8,r9
                     29:        movl    r9,r10
                     30:        movl    r10,r11
                     31:        movl    r11,r12
                     32:        movl    r12,r13
                     33: 
                     34:        movl    $0,mask         /* set mask */
                     35:        bicpsw  $(Z|V)          /* clear z,v flags                      */
                     36:        bispsw  $(N|C)          /* set n,c flag         */
                     37:        loadr   mask,l0         /* this is the tested instruction       */
                     38:        jeql    error0          /* error if Z set */
                     39:        jvs     error0          /* error if V set */
                     40:        jgeq    error0          /* error if N not set */
                     41:        jcc     error0          /* error if C not set */
                     42:        jmp     1f
                     43: error0:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                     44:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     45:        movl    $2,_ercode      /* error code flag failure */
                     46:        jmp     *badrtn
                     47: 
                     48: 1:     cmpl    $0,mask                 /* check if mask changed */
                     49:        jeql    1f
                     50:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     51:        movl    $3,_ercode      /* error code operand was changed */
                     52:        movl    mask,_actual    /* actual data */
                     53:        movl    $0,_expected    /* expected data */
                     54:        jmp     *badrtn
                     55: 1:     cmpl    $0xffffffff,r0
                     56:        jeql    1f
                     57:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     58:        movl    $1,_ercode      /* error code data miscompare */
                     59:        movl    r0,_actual      /* actual data */
                     60:        movl    $0xffffffff,_expected /* expected data */
                     61:        jmp     *badrtn
                     62: 1:     cmpl    $0xffffffff,r1
                     63:        jeql    1f
                     64:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     65:        movl    $1,_ercode      /* error code data miscompare */
                     66:        movl    r1,_actual      /* actual data */
                     67:        movl    $0xffffffff,_expected /* expected data */
                     68:        jmp     *badrtn
                     69: 1:     cmpl    $0xffffffff,r2
                     70:        jeql    1f
                     71:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     72:        movl    $1,_ercode      /* error code data miscompare */
                     73:        movl    r2,_actual      /* actual data */
                     74:        movl    $0xffffffff,_expected /* expected data */
                     75:        jmp     *badrtn
                     76: 1:     cmpl    $0xffffffff,r3
                     77:        jeql    1f
                     78:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     79:        movl    $1,_ercode      /* error code data miscompare */
                     80:        movl    r3,_actual      /* actual data */
                     81:        movl    $0xffffffff,_expected /* expected data */
                     82:        jmp     *badrtn
                     83: 1:     cmpl    $0xffffffff,r4
                     84:        jeql    1f
                     85:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     86:        movl    $1,_ercode      /* error code data miscompare */
                     87:        movl    r4,_actual      /* actual data */
                     88:        movl    $0xffffffff,_expected /* expected data */
                     89:        jmp     *badrtn
                     90: 1:     cmpl    $0xffffffff,r5
                     91:        jeql    1f
                     92:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     93:        movl    $1,_ercode      /* error code data miscompare */
                     94:        movl    r5,_actual      /* actual data */
                     95:        movl    $0xffffffff,_expected /* expected data */
                     96:        jmp     *badrtn
                     97: 1:     cmpl    $0xffffffff,r6
                     98:        jeql    1f
                     99:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    100:        movl    $1,_ercode      /* error code data miscompare */
                    101:        movl    r6,_actual      /* actual data */
                    102:        movl    $0xffffffff,_expected /* expected data */
                    103:        jmp     *badrtn
                    104: 1:     cmpl    $0xffffffff,r7
                    105:        jeql    1f
                    106:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    107:        movl    $1,_ercode      /* error code data miscompare */
                    108:        movl    r7,_actual      /* actual data */
                    109:        movl    $0xffffffff,_expected /* expected data */
                    110:        jmp     *badrtn
                    111: 1:     cmpl    $0xffffffff,r8
                    112:        jeql    1f
                    113:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    114:        movl    $1,_ercode      /* error code data miscompare */
                    115:        movl    r8,_actual      /* actual data */
                    116:        movl    $0xffffffff,_expected /* expected data */
                    117:        jmp     *badrtn
                    118: 1:     cmpl    $0xffffffff,r9
                    119:        jeql    1f
                    120:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    121:        movl    $1,_ercode      /* error code data miscompare */
                    122:        movl    r9,_actual      /* actual data */
                    123:        movl    $0xffffffff,_expected /* expected data */
                    124:        jmp     *badrtn
                    125: 1:     cmpl    $0xffffffff,r10
                    126:        jeql    1f
                    127:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    128:        movl    $1,_ercode      /* error code data miscompare */
                    129:        movl    r10,_actual     /* actual data */
                    130:        movl    $0xffffffff,_expected /* expected data */
                    131:        jmp     *badrtn
                    132: 1:     cmpl    $0xffffffff,r11
                    133:        jeql    1f
                    134:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    135:        movl    $1,_ercode      /* error code data miscompare */
                    136:        movl    r11,_actual     /* actual data */
                    137:        movl    $0xffffffff,_expected /* expected data */
                    138:        jmp     *badrtn
                    139: 1:     cmpl    $0xffffffff,r12
                    140:        jeql    1f
                    141:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    142:        movl    $1,_ercode      /* error code data miscompare */
                    143:        movl    r12,_actual     /* actual data */
                    144:        movl    $0xffffffff,_expected /* expected data */
                    145:        jmp     *badrtn
                    146: 1:     cmpl    $0xffffffff,r13
                    147:        jeql    next
                    148:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    149:        movl    $1,_ercode      /* error code data miscompare */
                    150:        movl    r13,_actual     /* actual data */
                    151:        movl    $0xffffffff,_expected /* expected data */
                    152:        jmp     *badrtn
                    153: 
                    154: next:
                    155:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    156: al2:   callf   $4,_setjmp      /* save context for return from error */
                    157:        movab   al2,_stpc       /* save subtest starting address */
                    158:        movl    $2,_subtst      /* subtest number */
                    159:        movl    $1,_no_opr      /* number of operands in use */
                    160:        movl    $0x2ad5,_opr            /* first operand */
                    161: 0:     movw    $0x2ad5,mask    /* Set mask to load r0,r2,r4,r6,r7,r9,r11,r13 */
                    162:        movw    mask,r10        /* use a register to contain mask */
                    163:        bicpsw  $(Z|V|N|C)      /* clear all flags                      */
                    164:        loadr   r10,l0          /* this is the tested instruction       */
                    165:        jeql    error1          /* error if Z set */
                    166:        jvs     error1          /* error if V set */
                    167:        jlss    error1          /* error if N set */
                    168:        jcs     error1          /* error if C set */
                    169:        jmp     1f
                    170: error1:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    171:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    172:        movl    $2,_ercode      /* error code flag failure */
                    173:        jmp     *badrtn
                    174: 
                    175: 1:     cmpl    $0x2ad5,r10
                    176:        jeql    1f
                    177:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    178:        movl    $3,_ercode      /* error code operand was changed */
                    179:        movl    r10,_actual     /* actual data */
                    180:        movl    $0x2ad5,_expected       /* expected data */
                    181:        jmp     *badrtn
                    182: 1:     cmpl    $0,r0           /* Check if registers loaded correctly */
                    183:        jeql    1f
                    184:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    185:        movl    $1,_ercode      /* error code data miscompare */
                    186:        movl    r0,_actual      /* actual data */
                    187:        movl    $0,_expected /* expected data */
                    188:        jmp     *badrtn
                    189: 1:     cmpl    $0xffffffff,r1
                    190:        jeql    1f
                    191:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    192:        movl    $1,_ercode      /* error code data miscompare */
                    193:        movl    r1,_actual      /* actual data */
                    194:        movl    $0xffffffff,_expected /* expected data */
                    195:        jmp     *badrtn
                    196: 1:     cmpl    $0x11111111,r2
                    197:        jeql    1f
                    198:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    199:        movl    $1,_ercode      /* error code data miscompare */
                    200:        movl    r2,_actual      /* actual data */
                    201:        movl    $0x11111111,_expected /* expected data */
                    202:        jmp     *badrtn
                    203: 1:     cmpl    $0xffffffff,r3
                    204:        jeql    1f
                    205:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    206:        movl    $1,_ercode      /* error code data miscompare */
                    207:        movl    r3,_actual      /* actual data */
                    208:        movl    $0xffffffff,_expected /* expected data */
                    209:        jmp     *badrtn
                    210: 1:     cmpl    $0x22222222,r4
                    211:        jeql    1f
                    212:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    213:        movl    $1,_ercode      /* error code data miscompare */
                    214:        movl    r4,_actual      /* actual data */
                    215:        movl    $0x22222222,_expected /* expected data */
                    216:        jmp     *badrtn
                    217: 1:     cmpl    $0xffffffff,r5
                    218:        jeql    1f
                    219:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    220:        movl    $1,_ercode      /* error code data miscompare */
                    221:        movl    r5,_actual      /* actual data */
                    222:        movl    $0xffffffff,_expected /* expected data */
                    223:        jmp     *badrtn
                    224: 1:     cmpl    $0x33333333,r6
                    225:        jeql    1f
                    226:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    227:        movl    $1,_ercode      /* error code data miscompare */
                    228:        movl    r6,_actual      /* actual data */
                    229:        movl    $0x33333333,_expected /* expected data */
                    230:        jmp     *badrtn
                    231: 1:     cmpl    $0x44444444,r7
                    232:        jeql    1f
                    233:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    234:        movl    $1,_ercode      /* error code data miscompare */
                    235:        movl    r7,_actual      /* actual data */
                    236:        movl    $0x44444444,_expected /* expected data */
                    237:        jmp     *badrtn
                    238: 1:     cmpl    $0xffffffff,r8
                    239:        jeql    1f
                    240:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    241:        movl    $1,_ercode      /* error code data miscompare */
                    242:        movl    r8,_actual      /* actual data */
                    243:        movl    $0xffffffff,_expected /* expected data */
                    244:        jmp     *badrtn
                    245: 1:     cmpl    $0x55555555,r9
                    246:        jeql    1f
                    247:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    248:        movl    $1,_ercode      /* error code data miscompare */
                    249:        movl    r9,_actual      /* actual data */
                    250:        movl    $0x55555555,_expected /* expected data */
                    251:        jmp     *badrtn
                    252: 1:     cmpl    $0x66666666,r11
                    253:        jeql    1f
                    254:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    255:        movl    $1,_ercode      /* error code data miscompare */
                    256:        movl    r11,_actual     /* actual data */
                    257:        movl    $0x66666666,_expected /* expected data */
                    258:        jmp     *badrtn
                    259: 1:     cmpl    $0xffffffff,r12
                    260:        jeql    1f
                    261:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    262:        movl    $1,_ercode      /* error code data miscompare */
                    263:        movl    r12,_actual     /* actual data */
                    264:        movl    $0xffffffff,_expected /* expected data */
                    265:        jmp     *badrtn
                    266: 1:     cmpl    $0x77777777,r13
                    267:        jeql    next1
                    268:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    269:        movl    $1,_ercode      /* error code data miscompare */
                    270:        movl    r13,_actual     /* actual data */
                    271:        movl    $0x77777777,_expected /* expected data */
                    272:        jmp     *badrtn
                    273:        
                    274: next1:
                    275:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    276: al3:   callf   $4,_setjmp      /* save context for return from error */
                    277:        movab   al3,_stpc       /* save subtest starting address */
                    278:        movl    $3,_subtst      /* subtest number */
                    279:        movl    $1,_no_opr      /* number of operands in use */
                    280:        movl    $0x3fff,_opr            /* first operand */
                    281: 0:     movl    $0xffffffff,r0          /* load r0 - r13 with known data */
                    282:        movl    r0,r1
                    283:        movl    r1,r2
                    284:        movl    r2,r3
                    285:        movl    r3,r4
                    286:        movl    r4,r5
                    287:        movl    r5,r6
                    288:        movl    r6,r7
                    289:        movl    r7,r8
                    290:        movl    r8,r9
                    291:        movl    r9,r10
                    292:        movl    r10,r11
                    293:        movl    r11,r12
                    294:        movl    r12,r13
                    295: 
                    296:        movw    $0x3fff,mask    /* Set mask to load all registers */
                    297:        bicpsw  $(Z|V|N|C)      /* clear all flags                      */
                    298:        loadr   mask,l0         /* this is the tested instruction       */
                    299:        jeql    error2          /* error if Z set */
                    300:        jvs     error2          /* error if V set */
                    301:        jlss    error2          /* error if N set */
                    302:        jcs     error2          /* error if C set */
                    303:        jmp     1f
                    304: error2:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    305:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    306:        movl    $2,_ercode      /* error code flag failure */
                    307:        jmp     *badrtn
                    308: 
                    309: 1:     cmpl    $0x3fff0000,mask
                    310:        jeql    1f
                    311:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    312:        movl    $3,_ercode      /* error code operand was changed */
                    313:        movl    mask,_actual    /* actual data */
                    314:        movl    $0x3fff0000,_expected   /* expected data */
                    315:        jmp     *badrtn
                    316: 1:     cmpl    $0,r0           /* Check if registers loaded correctly */
                    317:        jeql    1f
                    318:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    319:        movl    $1,_ercode      /* error code data miscompare */
                    320:        movl    r0,_actual      /* actual data */
                    321:        movl    $0,_expected /* expected data */
                    322:        jmp     *badrtn
                    323: 1:     cmpl    $0x11111111,r1
                    324:        jeql    1f
                    325:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    326:        movl    $1,_ercode      /* error code data miscompare */
                    327:        movl    r1,_actual      /* actual data */
                    328:        movl    $0x11111111,_expected /* expected data */
                    329:        jmp     *badrtn
                    330: 1:     cmpl    $0x22222222,r2
                    331:        jeql    1f
                    332:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    333:        movl    $1,_ercode      /* error code data miscompare */
                    334:        movl    r2,_actual      /* actual data */
                    335:        movl    $0x22222222,_expected /* expected data */
                    336:        jmp     *badrtn
                    337: 1:     cmpl    $0x33333333,r3
                    338:        jeql    1f
                    339:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    340:        movl    $1,_ercode      /* error code data miscompare */
                    341:        movl    r3,_actual      /* actual data */
                    342:        movl    $0x33333333,_expected /* expected data */
                    343:        jmp     *badrtn
                    344: 1:     cmpl    $0x44444444,r4
                    345:        jeql    1f
                    346:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    347:        movl    $1,_ercode      /* error code data miscompare */
                    348:        movl    r4,_actual      /* actual data */
                    349:        movl    $0x44444444,_expected /* expected data */
                    350:        jmp     *badrtn
                    351: 1:     cmpl    $0x55555555,r5
                    352:        jeql    1f
                    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    $0x55555555,_expected /* expected data */
                    357:        jmp     *badrtn
                    358: 1:     cmpl    $0x66666666,r6
                    359:        jeql    1f
                    360:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    361:        movl    $1,_ercode      /* error code data miscompare */
                    362:        movl    r6,_actual      /* actual data */
                    363:        movl    $0x66666666,_expected /* expected data */
                    364:        jmp     *badrtn
                    365: 1:     cmpl    $0x77777777,r7
                    366:        jeql    1f
                    367:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    368:        movl    $1,_ercode      /* error code data miscompare */
                    369:        movl    r7,_actual      /* actual data */
                    370:        movl    $0x77777777,_expected /* expected data */
                    371:        jmp     *badrtn
                    372: 1:     cmpl    $0x88888888,r8
                    373:        jeql    1f
                    374:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    375:        movl    $1,_ercode      /* error code data miscompare */
                    376:        movl    r8,_actual      /* actual data */
                    377:        movl    $0x88888888,_expected /* expected data */
                    378:        jmp     *badrtn
                    379: 1:     cmpl    $0x99999999,r9
                    380:        jeql    1f
                    381:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    382:        movl    $1,_ercode      /* error code data miscompare */
                    383:        movl    r9,_actual      /* actual data */
                    384:        movl    $0x99999999,_expected /* expected data */
                    385:        jmp     *badrtn
                    386: 1:     cmpl    $0xaaaaaaaa,r10
                    387:        jeql    1f
                    388:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    389:        movl    $1,_ercode      /* error code data miscompare */
                    390:        movl    r10,_actual     /* actual data */
                    391:        movl    $0xaaaaaaaa,_expected /* expected data */
                    392:        jmp     *badrtn
                    393: 1:     cmpl    $0xbbbbbbbb,r11
                    394:        jeql    1f
                    395:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    396:        movl    $1,_ercode      /* error code data miscompare */
                    397:        movl    r11,_actual     /* actual data */
                    398:        movl    $0xbbbbbbbb,_expected /* expected data */
                    399:        jmp     *badrtn
                    400: 1:     cmpl    $0xcccccccc,r12
                    401:        jeql    1f
                    402:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    403:        movl    $1,_ercode      /* error code data miscompare */
                    404:        movl    r12,_actual     /* actual data */
                    405:        movl    $0xcccccccc,_expected /* expected data */
                    406:        jmp     *badrtn
                    407: 1:     cmpl    $0xdddddddd,r13
                    408:        jeql    aldn
                    409:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    410:        movl    $1,_ercode      /* error code data miscompare */
                    411:        movl    r13,_actual     /* actual data */
                    412:        movl    $0xdddddddd,_expected /* expected data */
                    413:        jmp     *badrtn
                    414: 
                    415: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    416:        jmp     *return
                    417: 
                    418: /*     data space      */
                    419: 
                    420:        .align 2
                    421: mask:
                    422:        .long   0
                    423: 
                    424: l0:    .long   0
                    425: l1:    .long   0x11111111
                    426: l2:    .long   0x22222222
                    427: l3:    .long   0x33333333
                    428: l4:    .long   0x44444444
                    429: l5:    .long   0x55555555
                    430: l6:    .long   0x66666666
                    431: l7:    .long   0x77777777
                    432: l8:    .long   0x88888888
                    433: l9:    .long   0x99999999
                    434: l10:   .long   0xaaaaaaaa
                    435: l11:   .long   0xbbbbbbbb
                    436: l12:   .long   0xcccccccc
                    437: l13:   .long   0xdddddddd
                    438:        .long   0xabababab
                    439: where: .long   0

unix.superglobalmegacorp.com

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