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

1.1     ! root        1: /*     MOVOW 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  _movow
        !            24: _movow:
        !            25:        
        !            26:        callf   $4,_setjmp      /* save context for return from error */
        !            27:        movab   _movow,_stpc    /* save subtest starting address */
        !            28:        movw    $1,_subtst      /* subtest no : Used MOVOW to clear latch */
        !            29:        movl    $1,_no_opr      /* number of operands */
        !            30:        movl    negno,_opr      /* first operand in use */
        !            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:        movow   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 was modiefied */
        !            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: m2:    callf   $4,_setjmp      /* save context for return from error */
        !            65:        movab   m2,_stpc        /* save subtest starting address */
        !            66:        movl    $2,_subtst      /* subtest number */
        !            67:        movl    $1,_no_opr      /* number of operands */
        !            68:        movl    $MASKLW,_opr    /* first operand in use */
        !            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:        movow   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:        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:     movow   r4,r5           /* move r4 to r5        */
        !            92:        movow   r5,r6           /* move r5 to r6        */
        !            93:        movow   r6,r7           /* move r6 to r7        */
        !            94:        movow   r7,r9           /* move r7 to r9        */
        !            95:        movl    r9,oldval       /* save value of source = 0x00005555 */
        !            96:        movow   r9,r11          /* move r9 to r11       */
        !            97:        cmpl    expval,r11      /* compare r11 to 0x00005555    */
        !            98:        jneq    error2          /* error if not equal; z flag not set */
        !            99:        jeql    1f
        !           100:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           101:        movl    $1,_ercode      /* error code data miscompare */
        !           102:        movl    r4,_actual      /* actual data */
        !           103:        movl    expval,_expected        /* expected data */
        !           104:        jmp     *badrtn
        !           105: 1:     bicpsw  $Z
        !           106:        cmpl    oldval,r9       /* make sure source unchanged   */
        !           107:        jeql    m3
        !           108:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           109:        movl    $3,_ercode      /* error code operand was modiefied */
        !           110:        movl    r9,_actual      /* actual data */
        !           111:        movl    oldval,_expected        /* expected data */
        !           112:        jmp     *badrtn
        !           113: 
        !           114: m3:    bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           115: am3:   callf   $4,_setjmp      /* save context for return from error */
        !           116:        movab   am3,_stpc       /* save subtest starting address */
        !           117:        movl    $3,_subtst      /* subtest number */
        !           118:        movl    $1,_no_opr      /* number of operands */
        !           119:        movl    negval,_opr     /* first operand in use */
        !           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:        movow   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 was modiefied */
        !           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: m4:    callf   $4,_setjmp      /* save context for return from error */
        !           153:        movab   m4,_stpc        /* save subtest starting address */
        !           154:        movl    $4,_subtst      /* subtest number */
        !           155:        movl    $1,_no_opr      /* number of operands */
        !           156:        movl    $0xffff0000,_opr        /* first operand in use */
        !           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:        movow   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:
        !           173:        andl2   $0xffff,tstloc
        !           174:        cmpl    $0xffff,tstloc   /* compare tstloc to expected value */
        !           175:        jeql    1f
        !           176:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           177:        movl    $1,_ercode      /* error code data miscompare */
        !           178:        movl    tstloc,_actual  /* actual data */
        !           179:        movl    $0xffff,_expected       /* expected data */
        !           180:        jmp     *badrtn
        !           181: 1:     bicpsw  $Z
        !           182:        cmpl    oprd,oldval     /* make sure source unchanged   */
        !           183:        jeql    m5
        !           184:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           185:        movl    $3,_ercode      /* error code operand was modiefied */
        !           186:        movl    oprd,_actual    /* actual data */
        !           187:        movl    oldval,_expected        /* expected data */
        !           188:        jmp     *badrtn
        !           189: 
        !           190: m5:                            /* MOVE MEMORY TO MEMORY        */
        !           191:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           192: am5:   callf   $4,_setjmp      /* save context for return from error */
        !           193:        movab   am5,_stpc       /* save subtest starting address */
        !           194:        movl    $5,_subtst      /* subtest number */
        !           195:        movl    $1,_no_opr      /* number of operands */
        !           196:        movl    $0x5555,_opr    /* first operand in use */
        !           197: 0:     movl    $0x5555,tstloc
        !           198:        movl    tstloc,oldval   /* save source          */
        !           199:        bispsw  $(N|V|Z)        /* set n,v,z flags      */
        !           200:        bicpsw  $C              /* clear c flag         */
        !           201:        movow    tstloc+2,oprd+2        
        !           202:        jlss    error5          /* error if n flag set  */
        !           203:        jeql    error5          /* error if z flag set  */
        !           204:        jvs     error5          /* error if v flag set  */
        !           205:        jcc     error5          /* error if c flag not set      */
        !           206:        jmp     1f
        !           207: error5:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           208:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           209:        movl    $2,_ercode      /* error code flag failure */
        !           210:        jmp     *badrtn
        !           211: 1:
        !           212:        andl2   $0xffff,oprd
        !           213:        cmpl    $0x5555,oprd   /* compare oprd to expected value */
        !           214:        jeql    1f
        !           215:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           216:        movl    $1,_ercode      /* error code data miscompare */
        !           217:        movl    oprd,_actual    /* actual data */
        !           218:        movl    $0x5555,_expected       /* expected data */
        !           219:        jmp     *badrtn
        !           220: 1:     bicpsw  $Z
        !           221:        cmpl    tstloc,oldval   /* make sure source unchanged   */
        !           222:        jeql    movwdm
        !           223:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           224:        movl    $3,_ercode      /* error code operand was modiefied */
        !           225:        movl    tstloc,_actual  /* actual data */
        !           226:        movl    oldval,_expected        /* expected data */
        !           227:        jmp     *badrtn
        !           228: movwdm:                                /* MOVE DATA TO MEMORY  */
        !           229:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           230: m6:    callf   $4,_setjmp      /* save context for return from error */
        !           231:        movab   m6,_stpc        /* save subtest starting address */
        !           232:        movl    $6,_subtst      /* subtest number */
        !           233:        movl    $1,_no_opr      /* number of operands */
        !           234:        movl    $0x5555,_opr    /* first operand in use */
        !           235: 0:     movl    $0x0,tstloc
        !           236:        movl    $0xffff0000,oprd
        !           237:        movl    oprd,oldval     /* save source          */
        !           238:        bispsw  $(Z|V)          /* set z,v flags        */
        !           239:        bicpsw  $(C|N)          /* clear n,c flag       */
        !           240:        movow    $-0x0001,tstloc+2      
        !           241:        jgeq    error6          /* error if n flag not set      */
        !           242:        jeql    error6          /* error if z flag set  */
        !           243:        jvs     error6          /* error if v flag set          */
        !           244:        jcc     error6          /* error if c flag not set      */
        !           245:        jmp     1f
        !           246: error6:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           247:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           248:        movl    $2,_ercode      /* error code flag failure */
        !           249:        jmp     *badrtn
        !           250: 1:
        !           251:        andl2   $0xffff,tstloc
        !           252:        cmpl    $0xffff,tstloc   /* compare tstloc to expected value */
        !           253:        jeql    1f
        !           254:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           255:        movl    $1,_ercode      /* error code data miscompare */
        !           256:        movl    tstloc,_actual  /* actual data */
        !           257:        movl    $0x0000ffff,_expected   /* expected data */
        !           258:        jmp     *badrtn
        !           259: 1:     bicpsw  $Z
        !           260:        cmpl    oprd,oldval     /* make sure source unchanged   */
        !           261:        jeql    movwrm
        !           262:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           263:        movl    $3,_ercode      /* error code operand was modiefied */
        !           264:        movl    oprd,_actual    /* actual data */
        !           265:        movl    oldval,_expected        /* expected data */
        !           266:        jmp     *badrtn
        !           267: movwrm:
        !           268:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           269: m7:    callf   $4,_setjmp      /* save context for return from error */
        !           270:        movab   m7,_stpc        /* save subtest starting address */
        !           271:        movl    $7,_subtst      /* subtest number */
        !           272:        movl    $1,_no_opr      /* number of operands */
        !           273:        movl    $0xff0f,_opr    /* first operand in use */
        !           274: 0:     movl    $0xff0f,expval  /* move word 0xff0f to expval */
        !           275:        movl    $0xff0f,tmp     /* save source            */
        !           276:        movw    tmp+2,r3
        !           277:        bispsw  $(Z|V)
        !           278:        bicpsw  $(C|N)
        !           279:        movow   r3,tstloc+2     /* move 0xffffff0f to tstloc+2 */
        !           280:        jgeq    error7          /* error if n flag not set      */
        !           281:        jeql    error7          /* error if z flag set  */
        !           282:        jvs     error7          /* error if v flag set  */
        !           283:        jcc     error7          /* error if c flag not set      */
        !           284:        jmp     1f
        !           285: error7:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           286:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           287:        movl    $2,_ercode      /* error code flag failure */
        !           288:        jmp     *badrtn
        !           289: 1:
        !           290:        andl2   $0xffff,tstloc
        !           291:        cmpl    tstloc,expval
        !           292:        jeql    movwdr
        !           293:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           294:        movl    $1,_ercode      /* error code data miscompare */
        !           295:        movl    tstloc,_actual  /* actual data */
        !           296:        movl    expval,_expected        /* expected data */
        !           297:        jmp     *badrtn
        !           298: 
        !           299: movwdr:                                /* MOVE DATA TO REGISTER */
        !           300:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           301: m8:    callf   $4,_setjmp      /* save context for return from error */
        !           302:        movab   m8,_stpc        /* save subtest starting address */
        !           303:        movl    $8,_subtst      /* subtest number */
        !           304:        movl    $1,_no_opr      /* number of operands */
        !           305:        movl    negval,_opr     /* first operand in use */
        !           306: 0:     movl    $0x0,r4
        !           307:        movow   negval,r3       /* move word 0xff0f to r3 */
        !           308:        movl    r3,expval       /* save source            */
        !           309:        bispsw  $(Z|V)
        !           310:        bicpsw  $(C|N)
        !           311:        movow   $-0x00f1,r4     /* move 0xffffff0f to r4  */
        !           312:        jgeq    error8          /* error if n flag not set      */
        !           313:        jeql    error8          /* error if z flag set  */
        !           314:        jvs     error8          /* error if v flag set  */
        !           315:        jcc     error8          /* error if c flag not set      */
        !           316:        jmp     1f
        !           317: error8:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           318:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           319:        movl    $2,_ercode      /* error code flag failure */
        !           320:        jmp     *badrtn
        !           321: 1:     cmpl    r4,expval
        !           322:        jeql    1f
        !           323:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           324:        movl    $1,_ercode      /* error code data miscompare */
        !           325:        movl    r4,_actual      /* actual data */
        !           326:        movl    expval,_expected        /* expected data */
        !           327:        jmp     *badrtn
        !           328: 1:     bicpsw  $Z
        !           329:        cmpl    r3,expval
        !           330:        jeql    aldn    
        !           331:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           332:        movl    $3,_ercode      /* error code operand was modiefied */
        !           333:        movl    r3,_actual      /* actual data */
        !           334:        movl    oldval,_expected        /* expected data */
        !           335:        jmp     *badrtn
        !           336: 
        !           337: 
        !           338: aldn:  bbs     $0,_force_lp,0b /* if set loop on last error */
        !           339:        jmp     *return         /* good, return to monitor */
        !           340: 
        !           341: /*     test data               */
        !           342:        .align  2
        !           343: negval:        .long   NEGVAL          /* 0xf0ffffff   */      
        !           344: zero:  .long   0x0
        !           345: expval:        .long   0x0
        !           346: oldval:        .long   0x0
        !           347: negno:  .long   NEGNO
        !           348: expr5:  .long   0xffffa000
        !           349: tstloc:        .long   0x0
        !           350: tmp:   .long   0x0
        !           351: 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.