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

1.1       root        1: /*     MOVB instruction test                                   */
                      2: /*     MOVL,MOVW have been tested prior to this test.          */
                      3: /*     constant definitions                                    */
                      4: 
                      5:        .set    HIGH,31
                      6:        .set    IPL,8
                      7:        .set    ZERO,0
                      8:        .set    ONES,0xffffffff
                      9:        .set    IV,32
                     10:        .set    T,16
                     11:        .set    N,8
                     12:        .set    Z,4
                     13:        .set    V,2
                     14:        .set    C,1
                     15:        .set    NEGNO,0xa0ffffff
                     16:        .set    NEGVAL,0xff0fffff
                     17:        .set    WORD,0xffff
                     18:        .set    BYTE,0xff
                     19:        .set    MASKHW,0x55550000
                     20:        .set    MASKLB,0x55
                     21:        .set    MASKB,0x55555500
                     22:        .globl  _moveb
                     23: _moveb:                                /* MOVE MEMORY TO REGISTER      */
                     24:        callf   $4,_setjmp      /* save context for error return */
                     25:        movab   _moveb,_stpc    /* save starting address of subtest */
                     26:        movl    $1,_subtst      /* subtest number */
                     27:        movl    $1,_no_opr      /* number of operands in use */
                     28:        movl    negno,_opr      /* first operand */
                     29: 0:     movl    $MASKHW,r4      /* initialize r4 = 0x55550000   */
                     30:        bispsw  $(Z|V|C)        /* set z,v,c flags      */
                     31:        bicpsw  $N              /* clear n flag         */
                     32:        movb    negno,r4        /* move word 0xa0 to r4 */
                     33:        jgeq    error1          /* error if n flag not set      */
                     34:        jeql    error1          /* error if z flag set  */
                     35:        jvs     error1          /* error if v flag set  */
                     36:        jcc     error1          /* error if c flag not set      */
                     37:        jmp     1f
                     38: error1:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                     39:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     40:        movl    $2,_ercode      /* error code flag failure */
                     41:        jmp     *badrtn
                     42: 1:     cmpl    expr4,r4        /* compare r4 to 0xffffffa0     */
                     43:        jeql    1f              /* error if not equal; z flag not set */
                     44:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     45:        movl    $1,_ercode      /* error code data miscompare */
                     46:        movl    r4,_actual      /* actual data */
                     47:        movl    expr4,_expected /* expected data */
                     48:        jmp     *badrtn
                     49: 1:     bicpsw  $Z
                     50:        cmpl    $NEGNO,negno    /* make sure source unchanged   */
                     51:        jeql    movwrr          /* error if not equal; z flag not set */
                     52:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     53:        movl    $3,_ercode      /* error code operand miscompare */
                     54:        movl    negno,_actual   /* actual data */
                     55:        movl    $NEGNO,_expected        /* expected data */
                     56:        jmp     *badrtn
                     57: movwrr:                                /* MOVE REGISTER TO REGISTER    */
                     58:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                     59: am2:   callf   $4,_setjmp      /* save context for error return */
                     60:        movab   am2,_stpc       /* save starting address of subtest */
                     61:        movl    $2,_subtst      /* subtest number */
                     62:        movl    $1,_no_opr      /* number of operands in use */
                     63:        movl    $MASKLB,_opr    /* first operand */
                     64: 0:     movl    $MASKLB,r3      /* initialize r3 = 0x55 */
                     65:        movl    r3,expval
                     66:        movl    $0xffffffff,r4  /* initialize r4 = 0xffffffff   */
                     67:        bispsw  $(Z|N|V)        /* set Z,V,N flags              */
                     68:        bicpsw  $C              /* clear C flag                 */
                     69:        movb    r3,r4           /* move r3 to r4        */
                     70:        jlss    error2          /* error if n flag set  */
                     71:        jeql    error2          /* error if z flag set  */
                     72:        jvs     error2          /* error if v flag set  */
                     73:        jcc     error2          /* error if c flag not set      */
                     74:        jmp     1f
                     75: error2:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                     76:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     77:        movl    $2,_ercode      /* error code flag failure */
                     78:        jmp     *badrtn
                     79: 1:     cmpl    r4,expval
                     80:        jeql    1f              /* error if not equal; z flag not set */
                     81:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     82:        movl    $1,_ercode      /* error code data miscompare */
                     83:        movl    r4,_actual      /* actual data */
                     84:        movl    expval,_expected        /* expected data */
                     85:        jmp     *badrtn
                     86: 1:     movb    r4,r5
                     87:        movb    r5,r6           /* move r5 to r6        */
                     88:        movb    r6,r7           /* move r6 to r7        */
                     89:        movb    r7,r9           /* move r7 to r9        */
                     90:        movl    r9,oldval       /* save value of source = 0x00000055 */
                     91:        movb    r9,r11          /* move r9 to r11       */
                     92:        cmpl    expval,r11      /* compare r11 to 0x00000055    */
                     93:        jeql    1f              /* error if not equal; z flag not set */
                     94:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     95:        movl    $1,_ercode      /* error code data miscompare */
                     96:        movl    r11,_actual     /* actual data */
                     97:        movl    expval,_expected        /* expected data */
                     98:        jmp     *badrtn
                     99: 1:     bicpsw  $Z
                    100:        cmpl    oldval,r9       /* make sure source unchanged   */
                    101:        jeql    m3              /* error if not equal; z flag not set */
                    102:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    103:        movl    $1,_ercode      /* error code data miscompare */
                    104:        movl    r9,_actual      /* actual data */
                    105:        movl    oldval,_expected        /* expected data */
                    106:        jmp     *badrtn
                    107: 
                    108: m3:
                    109:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    110: am3:   callf   $4,_setjmp      /* save context for error return */
                    111:        movab   am3,_stpc       /* save starting address of subtest */
                    112:        movl    $3,_subtst      /* subtest number */
                    113:        movl    $1,_no_opr      /* number of operands in use */
                    114:        movl    $-16,_opr       /* first operand */
                    115: 0:     movl    $0x0,r4
                    116:        movb    $-16,r3         /* move byte 0xf0 to r3 */
                    117:        movl    r3,expval       /* save source            */
                    118:        bispsw  $(Z|V)
                    119:        bicpsw  $(C|N)
                    120:        movb    r3,r4           /* move 0xfffffff0 to r4  */
                    121:        jgeq    error3          /* error if n flag not set      */
                    122:        jeql    error3          /* error if z flag set  */
                    123:        jvs     error3          /* error if v flag set  */
                    124:        jcc     error3          /* error if c flag not set      */
                    125:        jmp     1f
                    126: error3:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    127:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    128:        movl    $2,_ercode      /* error code flag failure */
                    129:        jmp     *badrtn
                    130: 1:     cmpl    r4,expval
                    131:        jeql    1f              /* error if not equal; z flag not set */
                    132:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    133:        movl    $1,_ercode      /* error code data miscompare */
                    134:        movl    r4,_actual      /* actual data */
                    135:        movl    expval,_expected        /* expected data */
                    136:        jmp     *badrtn
                    137: 1:     bicpsw  $Z
                    138:        cmpl    r3,expval
                    139:        jeql    movbmm          /* error if not equal; z flag not set */
                    140:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    141:        movl    $3,_ercode      /* error code operand miscompare */
                    142:        movl    r3,_actual      /* actual data */
                    143:        movl    expval,_expected        /* expected data */
                    144:        jmp     *badrtn
                    145: movbmm:                                /* MOVE MEMORY TO MEMORY        */
                    146:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    147: am4:   callf   $4,_setjmp      /* save context for error return */
                    148:        movab   am4,_stpc       /* save starting address of subtest */
                    149:        movl    $4,_subtst      /* subtest number */
                    150:        movl    $1,_no_opr      /* number of operands in use */
                    151:        movl    $0xff000000,_opr        /* first operand */
                    152: 0:     movl    $0x0,tstloc
                    153:        movl    $0xff000000,oprd
                    154:        movl    oprd,oldval     /* save source          */
                    155:        bispsw  $(Z|V)          /* set z,v flags        */
                    156:        bicpsw  $(C|N)          /* clear n,c flag       */
                    157:        movb    oprd,tstloc+3   
                    158:        jgeq    error4          /* error if n flag not set      */
                    159:        jeql    error4          /* error if z flag set  */
                    160:        jvs     error4          /* error if v flag set          */
                    161:        jcc     error4          /* error if c flag not set      */
                    162:        jmp     1f
                    163: error4:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    164:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    165:        movl    $2,_ercode      /* error code flag failure */
                    166:        jmp     *badrtn
                    167: 1:     cmpl    $0x000000ff,tstloc   /* compare tstloc to expected value */
                    168:        jeql    1f              /* error if not equal; z flag not set */
                    169:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    170:        movl    $1,_ercode      /* error code data miscompare */
                    171:        movl    tstloc,_actual  /* actual data */
                    172:        movl    $0x000000ff,_expected   /* expected data */
                    173:        jmp     *badrtn
                    174: 1:     bicpsw  $Z
                    175:        cmpl    oprd,oldval     /* make sure source unchanged   */
                    176:        jeql    m5              /* error if not equal; z flag not set */
                    177:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    178:        movl    $3,_ercode      /* error code operand miscompare */
                    179:        movl    oprd,_actual    /* actual data */
                    180:        movl    oldval,_expected        /* expected data */
                    181:        jmp     *badrtn
                    182: 
                    183: m5:
                    184:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    185: am5:   callf   $4,_setjmp      /* save context for error return */
                    186:        movab   am5,_stpc       /* save starting address of subtest */
                    187:        movl    $5,_subtst      /* subtest number */
                    188:        movl    $1,_no_opr      /* number of operands in use */
                    189:        movl    $0x55,_opr      /* first operand */
                    190: 0:     movl    $0x55,tstloc
                    191:        movl    tstloc,oldval   /* save source          */
                    192:        bispsw  $(N|V|Z)        /* set n,v,z flags      */
                    193:        bicpsw  $C              /* clear c flag         */
                    194:        movb    tstloc+3,oprd+3 
                    195:        jlss    error5          /* error if n flag set  */
                    196:        jeql    error5          /* error if z flag set  */
                    197:        jvs     error5          /* error if v flag set  */
                    198:        jcc     error5          /* error if c flag not set      */
                    199:        jmp     1f
                    200: error5:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    201:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    202:        movl    $2,_ercode      /* error code flag failure */
                    203:        jmp     *badrtn
                    204: 1:     cmpl    $0xff000055,oprd   /* compare oprd to expected value */
                    205:        jeql    1f              /* error if not equal; z flag not set */
                    206:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    207:        movl    $1,_ercode      /* error code data miscompare */
                    208:        movl    oprd,_actual    /* actual data */
                    209:        movl    $0xff000055,_expected   /* expected data */
                    210:        jmp     *badrtn
                    211: 1:     bicpsw  $Z
                    212:        cmpl    tstloc,oldval   /* make sure source unchanged   */
                    213:        jeql    movbdm          /* error if not equal; z flag not set */
                    214:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    215:        movl    $3,_ercode      /* error code operand miscompare */
                    216:        movl    tstloc,_actual  /* actual data */
                    217:        movl    oldval,_expected        /* expected data */
                    218:        jmp     *badrtn
                    219: movbdm:                                /* MOVE DATA TO MEMORY  */
                    220:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    221: am6:   callf   $4,_setjmp      /* save context for error return */
                    222:        movab   am6,_stpc       /* save starting address of subtest */
                    223:        movl    $6,_subtst      /* subtest number */
                    224:        movl    $1,_no_opr      /* number of operands in use */
                    225:        movl    $-1,_opr        /* first operand */
                    226: 0:     movl    $0x0,tstloc
                    227:        bispsw  $(Z|V)          /* set z,v flags        */
                    228:        bicpsw  $(C|N)          /* clear n,c flag       */
                    229:        movb    $-1,tstloc+3    
                    230:        jgeq    error6          /* error if n flag not set      */
                    231:        jeql    error6          /* error if z flag set  */
                    232:        jvs     error6          /* error if v flag set          */
                    233:        jcc     error6          /* error if c flag not set      */
                    234:        jmp     1f
                    235: error6:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    236:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    237:        movl    $2,_ercode      /* error code flag failure */
                    238:        jmp     *badrtn
                    239: 1:     cmpl    $0x000000ff,tstloc   /* compare tstloc to expected value */
                    240:        jeql    movbrm          /* error if not equal; z flag not set */
                    241:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    242:        movl    $1,_ercode      /* error code data miscompare */
                    243:        movl    tstloc,_actual  /* actual data */
                    244:        movl    $0x000000ff,_expected   /* expected data */
                    245:        jmp     *badrtn
                    246: 
                    247: movbrm:                                /* MOVE DATA TO MEMORY  */
                    248:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    249: am7:   callf   $4,_setjmp      /* save context for error return */
                    250:        movab   am7,_stpc       /* save starting address of subtest */
                    251:        movl    $7,_subtst      /* subtest number */
                    252:        movl    $1,_no_opr      /* number of operands in use */
                    253:        movl    $0xaa,_opr      /* first operand */
                    254: 0:     movl    $0x0,tstloc
                    255:        movl    $0xaa,tmp       /* load tmp to sign extend r5 contents */
                    256:        movb    tmp+3,r3
                    257:        bispsw  $(Z|V)          /* set z,v flags        */
                    258:        bicpsw  $(C|N)          /* clear n,c flag       */
                    259:        movb    r3,tstloc+3     
                    260:        jgeq    error7          /* error if n flag not set      */
                    261:        jeql    error7          /* error if z flag set  */
                    262:        jvs     error7          /* error if v flag set          */
                    263:        jcc     error7          /* error if c flag not set      */
                    264:        jmp     1f
                    265: error7:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    266:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    267:        movl    $2,_ercode      /* error code flag failure */
                    268:        jmp     *badrtn
                    269: 1:     cmpl    $0x000000aa,tstloc   /* compare tstloc to expected value */
                    270:        jeql    movbdr          /* error if not equal; z flag not set */
                    271:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    272:        movl    $1,_ercode      /* error code data miscompare */
                    273:        movl    tstloc,_actual  /* actual data */
                    274:        movl    $0x000000aa,_expected   /* expected data */
                    275:        jmp     *badrtn
                    276: 
                    277: movbdr:                                /* MOVE  DATA TO REGISTER       */
                    278:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    279: am8:   callf   $4,_setjmp      /* save context for error return */
                    280:        movab   am8,_stpc       /* save starting address of subtest */
                    281:        movl    $8,_subtst      /* subtest number */
                    282:        movl    $1,_no_opr      /* number of operands in use */
                    283:        movl    $0x55,_opr      /* first operand */
                    284: 0:     movl    $MASKHW,r5      /* initialize r5 = 0x55550000   */
                    285:        bispsw  $(Z|V|C)        /* set z,v,c flags      */
                    286:        bicpsw  $N              /* clear n flag         */
                    287:        movb    $-0x60,r5       /* move word 0xa0 to r5 */
                    288:        jgeq    error8          /* error if n flag not set      */
                    289:        jeql    error8          /* error if z flag set  */
                    290:        jvs     error8          /* error if v flag set  */
                    291:        jcc     error8          /* error if c flag not set      */
                    292:        jmp     1f
                    293: error8:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
                    294:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    295:        movl    $2,_ercode      /* error code flag failure */
                    296:        jmp     *badrtn
                    297: 1:     cmpl    expr4,r5        /* compare r5 to 0xffffffa0     */
                    298:        jeql    aldn            /* error if not equal; z flag not set */
                    299:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    300:        movl    $1,_ercode      /* error code data miscompare */
                    301:        movl    r5,_actual      /* actual data */
                    302:        movl    expr4,_expected /* expected data */
                    303:        jmp     *badrtn
                    304: 
                    305: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    306:        jmp     *return
                    307: 
                    308: /*     test data               */
                    309:        .align  2
                    310: expval:        .long   0x0
                    311: oldval:        .long   0x0
                    312: negno:  .long   NEGNO
                    313: expr4:  .long   0xffffffa0
                    314: tstloc:        .long   0x0
                    315: oprd:  .long   0x0
                    316: tmp:   .long   0x0

unix.superglobalmegacorp.com

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