Annotation of cci/d/entry/movew.s, revision 1.1

1.1     ! root        1: /*     MOVW instruction test                                   */
        !             2: /*     MOVL 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,0xa000ffff
        !            16:        .set    NEGVAL,0xff0fffff
        !            17:        .set    WORD,0xffff
        !            18:        .set    BYTE,0xff
        !            19:        .set    MASKHW,0x55550000
        !            20:        .set    MASKLW,0x5555
        !            21:        .set    MASKB,0x55555500
        !            22: 
        !            23:        .globl  _movew
        !            24: _movew:
        !            25:        
        !            26:        callf   $4,_setjmp      /* save context for error return */
        !            27:        movab   _movew,_stpc    /* save subtst starting address */
        !            28:        movl    $1,_subtst      /* subtest number */
        !            29:        movl    $1,_no_opr      /* number of operands in use */
        !            30:        movl    negno,_opr      /* first operand */
        !            31: 0:     
        !            32:        bicpsw  $(IV|T)         /* disable overflow,trace exceptions    */
        !            33: movwmr:                                /* MOVE MEMORY TO REGISTER      */
        !            34:        movl    $MASKHW,r4      /* initialize r4 = 0x55550000   */
        !            35:        bispsw  $(Z|V|C)        /* set z,v,c flags      */
        !            36:        bicpsw  $N              /* clear n flag         */
        !            37:        movw    negno,r4        /* move word 0xa000 to r4       */
        !            38:        jgeq    error1          /* error if n flag not set      */
        !            39:        jeql    error1          /* error if z flag set  */
        !            40:        jvs     error1          /* error if v flag set  */
        !            41:        jcc     error1          /* error if c flag not set      */
        !            42:        jmp     1f
        !            43: error1:        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: 1:     cmpl    expr5,r4        /* compare r4 to 0xffffa000     */
        !            48:        jeql    1f
        !            49:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            50:        movl    $1,_ercode      /* error code data miscompare */
        !            51:        movl    r4,_actual      /* actual data */
        !            52:        movl    expr5,_expected /* expected data */
        !            53:        jmp     *badrtn
        !            54: 1:     bicpsw  $Z
        !            55:        cmpl    $NEGNO,negno    /* make sure source unchanged   */
        !            56:        jeql    movwrr
        !            57:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            58:        movl    $3,_ercode      /* error code operand miscompare */
        !            59:        movl    negno,_actual   /* actual data */
        !            60:        movl    $NEGNO,_expected        /* expected data */
        !            61:        jmp     *badrtn
        !            62: movwrr:                                /* MOVE REGISTER TO REGISTER    */
        !            63:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            64: am2:   callf   $4,_setjmp      /* save context for error return */
        !            65:        movab   am2,_stpc       /* save subtst starting address */
        !            66:        movl    $2,_subtst      /* subtest number */
        !            67:        movl    $1,_no_opr      /* number of operands in use */
        !            68:        movl    $MASKLW,_opr    /* first operand */
        !            69: 0:     movl    $MASKLW,r3      /* initialize r3 = 0x5555       */
        !            70:        movl    r3,expval
        !            71:        movl    $0xffffffff,r4  /* initialize r4 = 0xffffffff   */
        !            72:        bispsw  $(Z|N|V)        /* set Z,V,N flags              */
        !            73:        bicpsw  $C              /* clear C flag                 */
        !            74:        movw    r3,r4           /* move r3 to r4        */
        !            75:        jlss    error2          /* error if n flag set  */
        !            76:        jeql    error2          /* error if z flag set  */
        !            77:        jvs     error2          /* error if v flag set  */
        !            78:        jcc     error2          /* error if c flag not set      */
        !            79:        jmp     1f
        !            80: error2:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !            81:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            82:        movl    $2,_ercode      /* error code flag failure */
        !            83:        jmp     *badrtn
        !            84: 1:     cmpl    r4,expval
        !            85:        jeql    1f
        !            86:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            87:        movl    $1,_ercode      /* error code data miscompare */
        !            88:        movl    r4,_actual      /* actual data */
        !            89:        movl    expval,_expected        /* expected data */
        !            90:        jmp     *badrtn
        !            91: 1:     movw    r4,r5           /* move r4 to r5        */
        !            92:        movw    r5,r6           /* move r5 to r6        */
        !            93:        movw    r6,r7           /* move r6 to r7        */
        !            94:        movw    r7,r9           /* move r7 to r9        */
        !            95:        movl    r9,oldval       /* save value of source = 0x00005555 */
        !            96:        movw    r9,r11          /* move r9 to r11       */
        !            97:        cmpl    expval,r11      /* compare r11 to 0x00005555    */
        !            98:        jeql    1f
        !            99:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           100:        movl    $1,_ercode      /* error code data miscompare */
        !           101:        movl    r11,_actual     /* actual data */
        !           102:        movl    expval,_expected        /* expected data */
        !           103:        jmp     *badrtn
        !           104: 1:     bicpsw  $Z
        !           105:        cmpl    oldval,r9       /* make sure source unchanged   */
        !           106:        jeql    m3
        !           107:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           108:        movl    $1,_ercode      /* error code data miscompare */
        !           109:        movl    r9,_actual      /* actual data */
        !           110:        movl    oldval,_expected        /* expected data */
        !           111:        jmp     *badrtn
        !           112: 
        !           113: m3:
        !           114:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           115: am3:   callf   $4,_setjmp      /* save context for error return */
        !           116:        movab   am3,_stpc       /* save subtst starting address */
        !           117:        movl    $3,_subtst      /* subtest number */
        !           118:        movl    $1,_no_opr      /* number of operands in use */
        !           119:        movl    negval,_opr     /* first operand */
        !           120: 0:     movl    $0x0,r4
        !           121:        movw    negval,r3       /* move word 0xff0f to r3 */
        !           122:        movl    r3,expval       /* save source            */
        !           123:        bispsw  $(Z|V)
        !           124:        bicpsw  $(C|N)
        !           125:        movw    r3,r4           /* move 0xffffff0f to r4  */
        !           126:        jgeq    error3          /* error if n flag not set      */
        !           127:        jeql    error3          /* error if z flag set  */
        !           128:        jvs     error3          /* error if v flag set  */
        !           129:        jcc     error3          /* error if c flag not set      */
        !           130:        jmp     1f
        !           131: error3:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           132:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           133:        movl    $2,_ercode      /* error code flag failure */
        !           134:        jmp     *badrtn
        !           135: 1:     cmpl    r4,expval
        !           136:        jeql    1f
        !           137:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           138:        movl    $1,_ercode      /* error code data miscompare */
        !           139:        movl    r4,_actual      /* actual data */
        !           140:        movl    expval,_expected        /* expected data */
        !           141:        jmp     *badrtn
        !           142: 1:     bicpsw  $Z
        !           143:        cmpl    r3,expval
        !           144:        jeql    movwmm
        !           145:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           146:        movl    $3,_ercode      /* error code operand miscompare */
        !           147:        movl    r3,_actual      /* actual data */
        !           148:        movl    expval,_expected        /* expected data */
        !           149:        jmp     *badrtn
        !           150: movwmm:                                /* MOVE MEMORY TO MEMORY        */
        !           151:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           152: am4:   callf   $4,_setjmp      /* save context for error return */
        !           153:        movab   am4,_stpc       /* save subtst starting address */
        !           154:        movl    $4,_subtst      /* subtest number */
        !           155:        movl    $1,_no_opr      /* number of operands in use */
        !           156:        movl    $0xffff0000,_opr /* first operand */
        !           157: 0:     movl    $0x0,tstloc
        !           158:        movl    $0xffff0000,oprd
        !           159:        movl    oprd,oldval     /* save source          */
        !           160:        bispsw  $(Z|V)          /* set z,v flags        */
        !           161:        bicpsw  $(C|N)          /* clear n,c flag       */
        !           162:        movw    oprd,tstloc+2   
        !           163:        jgeq    error4          /* error if n flag not set      */
        !           164:        jeql    error4          /* error if z flag set  */
        !           165:        jvs     error4          /* error if v flag set          */
        !           166:        jcc     error4          /* error if c flag not set      */
        !           167:        jmp     1f
        !           168: error4:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           169:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           170:        movl    $2,_ercode      /* error code flag failure */
        !           171:        jmp     *badrtn
        !           172: 1:     cmpl    $0x0000ffff,tstloc   /* compare tstloc to expected value */
        !           173:        jeql    1f
        !           174:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           175:        movl    $1,_ercode      /* error code data miscompare */
        !           176:        movl    tstloc,_actual  /* actual data */
        !           177:        movl    $0x0000ffff,_expected   /* expected data */
        !           178:        jmp     *badrtn
        !           179: 1:     bicpsw  $Z
        !           180:        cmpl    oprd,oldval     /* make sure source unchanged   */
        !           181:        jeql    m5
        !           182:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           183:        movl    $3,_ercode      /* error code operand miscompare */
        !           184:        movl    oprd,_actual    /* actual data */
        !           185:        movl    oldval,_expected        /* expected data */
        !           186:        jmp     *badrtn
        !           187: 
        !           188: m5:                            /* MOVE MEMORY TO MEMORY        */
        !           189:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           190: am5:   callf   $4,_setjmp      /* save context for error return */
        !           191:        movab   am5,_stpc       /* save subtst starting address */
        !           192:        movl    $5,_subtst      /* subtest number */
        !           193:        movl    $1,_no_opr      /* number of operands in use */
        !           194:        movl    $0x5555,_opr /* first operand */
        !           195: 0:     movl    $0x5555,tstloc
        !           196:        movl    tstloc,oldval   /* save source          */
        !           197:        bispsw  $(N|V|Z)        /* set n,v,z flags      */
        !           198:        bicpsw  $C              /* clear c flag         */
        !           199:        movw    tstloc+2,oprd+2 
        !           200:        jlss    error5          /* error if n flag set  */
        !           201:        jeql    error5          /* error if z flag set  */
        !           202:        jvs     error5          /* error if v flag set  */
        !           203:        jcc     error5          /* error if c flag not set      */
        !           204:        jmp     1f
        !           205: error5:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           206:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           207:        movl    $2,_ercode      /* error code flag failure */
        !           208:        jmp     *badrtn
        !           209: 1:     cmpl    $0xffff5555,oprd   /* compare oprd to expected value */
        !           210:        jeql    1f
        !           211:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           212:        movl    $1,_ercode      /* error code data miscompare */
        !           213:        movl    oprd,_actual    /* actual data */
        !           214:        movl    $0xffff5555,_expected   /* expected data */
        !           215:        jmp     *badrtn
        !           216: 1:     bicpsw  $Z
        !           217:        cmpl    tstloc,oldval   /* make sure source unchanged   */
        !           218:        jeql    movwdm
        !           219:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           220:        movl    $3,_ercode      /* error code operand miscompare */
        !           221:        movl    tstloc,_actual  /* actual data */
        !           222:        movl    oldval,_expected        /* expected data */
        !           223:        jmp     *badrtn
        !           224: movwdm:                                /* MOVE DATA TO MEMORY  */
        !           225:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           226: am6:   callf   $4,_setjmp      /* save context for error return */
        !           227:        movab   am6,_stpc       /* save subtst starting address */
        !           228:        movl    $6,_subtst      /* subtest number */
        !           229:        movl    $1,_no_opr      /* number of operands in use */
        !           230:        movl    $0xffff0000,_opr /* first operand */
        !           231: 0:     movl    $0x0,tstloc
        !           232:        movl    $0xffff0000,oprd
        !           233:        movl    oprd,oldval     /* save source          */
        !           234:        bispsw  $(Z|V)          /* set z,v flags        */
        !           235:        bicpsw  $(C|N)          /* clear n,c flag       */
        !           236:        movw    $-0x0001,tstloc+2       
        !           237:        jgeq    error6          /* error if n flag not set      */
        !           238:        jeql    error6          /* error if z flag set  */
        !           239:        jvs     error6          /* error if v flag set          */
        !           240:        jcc     error6          /* error if c flag not set      */
        !           241:        jmp     1f
        !           242: error6:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           243:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           244:        movl    $2,_ercode      /* error code flag failure */
        !           245:        jmp     *badrtn
        !           246: 1:     cmpl    $0x0000ffff,tstloc   /* compare tstloc to expected value */
        !           247:        jeql    1f
        !           248:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           249:        movl    $1,_ercode      /* error code data miscompare */
        !           250:        movl    tstloc,_actual  /* actual data */
        !           251:        movl    $0x0000ffff,_expected   /* expected data */
        !           252:        jmp     *badrtn
        !           253: 1:     bicpsw  $Z
        !           254:        cmpl    oprd,oldval     /* make sure source unchanged   */
        !           255:        jeql    movwrm
        !           256:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           257:        movl    $3,_ercode      /* error code operand miscompare */
        !           258:        movl    oprd,_actual    /* actual data */
        !           259:        movl    oldval,_expected        /* expected data */
        !           260:        jmp     *badrtn
        !           261: movwrm:
        !           262:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           263: am7:   callf   $4,_setjmp      /* save context for error return */
        !           264:        movab   am7,_stpc       /* save subtst starting address */
        !           265:        movl    $7,_subtst      /* subtest number */
        !           266:        movl    $1,_no_opr      /* number of operands in use */
        !           267:        movl    $0xff0f,_opr /* first operand */
        !           268: 0:     movl    $0xff0f,expval  /* move word 0xff0f to expval*/
        !           269:        movl    $0xff0f,tmp     /* move word 0xff0f to tmp      */
        !           270:        movw    tmp+2,r3        /* move word 0xff0f to r7 */
        !           271:        bispsw  $(Z|V)
        !           272:        bicpsw  $(C|N)
        !           273:        movw    r3,tstloc+2     /* move 0xffffff0f to tstloc+2*/
        !           274:        jgeq    error7          /* error if n flag not set      */
        !           275:        jeql    error7          /* error if z flag set  */
        !           276:        jvs     error7          /* error if v flag set  */
        !           277:        jcc     error7          /* error if c flag not set      */
        !           278:        jmp     1f
        !           279: error7:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           280:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           281:        movl    $2,_ercode      /* error code flag failure */
        !           282:        jmp     *badrtn
        !           283: 1:     cmpl    tstloc,expval
        !           284:        jeql    movwdr
        !           285:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           286:        movl    $1,_ercode      /* error code data miscompare */
        !           287:        movl    tstloc,_actual  /* actual data */
        !           288:        movl    expval,_expected        /* expected data */
        !           289:        jmp     *badrtn
        !           290: movwdr:                                /* MOVE DATA TO REGISTER */
        !           291:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           292: am8:   callf   $4,_setjmp      /* save context for error return */
        !           293:        movab   am8,_stpc       /* save subtst starting address */
        !           294:        movl    $8,_subtst      /* subtest number */
        !           295:        movl    $1,_no_opr      /* number of operands in use */
        !           296:        movl    negval,_opr     /* first operand */
        !           297: 0:     movl    $0x0,r8
        !           298:        movw    negval,r3       /* move word 0xff0f to r7 */
        !           299:        movl    r3,expval       /* save source            */
        !           300:        bispsw  $(Z|V)
        !           301:        bicpsw  $(C|N)
        !           302:        movw    $-0x00f1,r4     /* move 0xffffff0f to r4  */
        !           303:        jgeq    error8          /* error if n flag not set      */
        !           304:        jeql    error8          /* error if z flag set  */
        !           305:        jvs     error8          /* error if v flag set  */
        !           306:        jcc     error8          /* error if c flag not set      */
        !           307:        jmp     1f
        !           308: error8:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           309:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           310:        movl    $2,_ercode      /* error code flag failure */
        !           311:        jmp     *badrtn
        !           312: 1:     cmpl    r4,expval
        !           313:        jeql    1f
        !           314:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           315:        movl    $1,_ercode      /* error code data miscompare */
        !           316:        movl    r4,_actual      /* actual data */
        !           317:        movl    expval,_expected        /* expected data */
        !           318:        jmp     *badrtn
        !           319: 1:     bicpsw  $Z
        !           320:        cmpl    r3,expval
        !           321:        jeql    aldn
        !           322:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           323:        movl    $3,_ercode      /* error code operand miscompare */
        !           324:        movl    r3,_actual      /* actual data */
        !           325:        movl    expval,_expected        /* expected data */
        !           326:        jmp     *badrtn
        !           327: 
        !           328: 
        !           329: 
        !           330: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           331:        jmp     *return         /* good, return to monitor */
        !           332: 
        !           333: /*     test data               */
        !           334:        .align  2
        !           335: negval:        .long   NEGVAL          /* 0xf0ffffff   */      
        !           336: zero:  .long   0x0
        !           337: expval:        .long   0x0
        !           338: oldval:        .long   0x0
        !           339: negno:  .long   NEGNO
        !           340: expr5:  .long   0xffffa000
        !           341: tstloc:        .long   0x0
        !           342: tmp:   .long   0x0
        !           343: oprd:  .long   0x0

unix.superglobalmegacorp.com

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