Annotation of cci/d/entry/moveb.s, revision 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.