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

1.1     ! root        1: 
        !             2: 
        !             3: 
        !             4: /*             TESTL (test long) test                                  */
        !             5: 
        !             6: /*Test name = tstl                                                     */
        !             7: /*Description =                                                                */
        !             8: /*     This test checks "tstl" instruction to see that                 */
        !             9: /*     (1)Z, V, & C flags are set to zero (src < 0) & N = 1            */
        !            10: /*     (2)N, V, & C flags are set to zero (src = 0) & Z = 1            */
        !            11: /*     (3)all the flags are zero (src > 0).                            */
        !            12: /*     Register 1 (r1) & memory location tmloc(lebel) are used as      */
        !            13: /*     src(source).                                                    */
        !            14: /*                                                                     */
        !            15: /*     Constants definition                                            */
        !            16: /*                                                                     */
        !            17:        .set    IPL,8
        !            18:        .set    HIGH,31
        !            19:        .set    ZERO,0
        !            20:        .set    ONES,0xffffffff
        !            21:        .set    N,8
        !            22:        .set    Z,4
        !            23:        .set    V,2
        !            24:        .set    C,1
        !            25:        .set    PSWMASK,0x003f
        !            26:        .set    SRCB1,0xff
        !            27:        .set    SRCW1,0xffff
        !            28:        .set    SRCL1,0xffffffff
        !            29:        .set    SRCB2,0
        !            30:        .set    SRCW2,0
        !            31:        .set    SRCL2,0
        !            32:        .set    SRCB3,1
        !            33:        .set    SRCW3,1
        !            34:        .set    SRCL3,1
        !            35: 
        !            36:        .globl  _tst_l
        !            37: _tst_l:
        !            38:        callf   $4,_setjmp      /* save context for error return */
        !            39:        movab   _tst_l,_stpc    /* save subtest starting address */
        !            40:        movl    $1,_subtst      /* subtest number */
        !            41:        movl    $1,_no_opr      /* number of operands in use */
        !            42:        movl    $SRCL1,_opr     /* first operand in use */
        !            43: 0:     movl    $SRCL1,r3       /*r3 = source                           */
        !            44:        bispsw  $(Z|V|C)        /*turn zero, overflow, & carry ON       */
        !            45:        tstl    r3              /*execute "tstl"                        */
        !            46:        beql    error1          /*error if Z = 1                        */
        !            47:        bgeq    error1          /*error if N = 0                        */
        !            48:        bvs     error1          /*error if V = 1                        */
        !            49:        bcc     error1          /*error if C = 0                        */
        !            50:        jmp     t2              /* if no error continue */
        !            51: error1:        movpsl  _actual         /* actual = psl it is incorrect */
        !            52:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            53:        movl    $2,_ercode      /* error code flag failure */
        !            54:        jmp     *badrtn
        !            55: /*                                                                     */
        !            56: /*     Now try src = 0                                                 */
        !            57: /*                                                                     */
        !            58: t2:
        !            59:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            60: at2:   callf   $4,_setjmp      /* save context for error return */
        !            61:        movab   at2,_stpc       /* save subtest starting address */
        !            62:        movl    $2,_subtst      /* subtest number */
        !            63:        movl    $1,_no_opr      /* number of operands in use */
        !            64:        movl    $SRCL2,_opr     /* first operand in use */
        !            65: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !            66:        movl    $SRCL2,r3       /*r3 = source                           */
        !            67:        bispsw  $(N|V|C)        /*turn neg, overflow, & carry ON        */
        !            68:        tstl    r3              /*execute "tstl"                        */
        !            69:        bneq    error2          /*error if Z = 0                        */
        !            70:        blss    error2          /*error if N = 1                        */
        !            71:        bvs     error2          /*error if V = 1                        */
        !            72:        bcc     error2          /*error if C = 0                        */
        !            73:        jmp     t3              /* if no error continue */
        !            74: error2:        movpsl  _actual         /* actual = psl it is incorrect */
        !            75:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            76:        movl    $2,_ercode      /* error code flag failure */
        !            77:        jmp     *badrtn
        !            78: /*                                                                     */
        !            79: /*     Now try src > 0                                                 */
        !            80: /*                                                                     */
        !            81:        
        !            82: t3:
        !            83:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            84: at3:   callf   $4,_setjmp      /* save context for error return */
        !            85:        movab   at3,_stpc       /* save subtest starting address */
        !            86:        movl    $3,_subtst      /* subtest number */
        !            87:        movl    $1,_no_opr      /* number of operands in use */
        !            88:        movl    $SRCL3,_opr     /* first operand in use */
        !            89: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !            90:        movl    $SRCL3,r3       /*r3 = source                           */
        !            91:        bispsw  $(Z|N|V|C)      /*turn zero, neg, overflow, & carry ON  */
        !            92:        tstl    r3              /*execute "tstl"                        */
        !            93:        beql    error3          /*error if Z = 1                        */
        !            94:        blss    error3          /*error if N = 1                        */
        !            95:        bvs     error3          /*error if V = 1                        */
        !            96:        bcc     error3          /*error if C = 0                        */
        !            97:        jmp     tstlm           /* if no error continue */
        !            98: error3:        movpsl  _actual         /* actual = psl it is incorrect */
        !            99:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           100:        movl    $2,_ercode      /* error code flag failure */
        !           101:        jmp     *badrtn
        !           102: 
        !           103: /*                                                                     */
        !           104: /*     Now use memory location(tmloc) instead of r1                    */
        !           105: /*                                                                     */
        !           106: tstlm:
        !           107:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           108: at4:   callf   $4,_setjmp      /* save context for error return */
        !           109:        movab   at4,_stpc       /* save subtest starting address */
        !           110:        movl    $4,_subtst      /* subtest number */
        !           111:        movl    $1,_no_opr      /* number of operands in use */
        !           112:        movl    $SRCL1,_opr     /* first operand in use */
        !           113: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           114:        bispsw  $(Z|V|C)        /*turn zero, overflow, & carry ON       */
        !           115:        tstl    $SRCL1          /*execute "tstl" immediate data         */
        !           116:        beql    error4          /*error if Z = 1                        */
        !           117:        bgeq    error4          /*error if N = 0                        */
        !           118:        bvs     error4          /*error if V = 1                        */
        !           119:        bcc     error4          /*error if C = 0                        */
        !           120:        jmp     t5              /* if no error continue */
        !           121: error4:        movpsl  _actual         /* actual = psl it is incorrect */
        !           122:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           123:        movl    $2,_ercode      /* error code flag failure */
        !           124:        jmp     *badrtn
        !           125: /*                                                                     */
        !           126: /*     Now try src = 0                                                 */
        !           127: /*                                                                     */
        !           128: t5:
        !           129:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           130: at5:   callf   $4,_setjmp      /* save context for error return */
        !           131:        movab   at5,_stpc       /* save subtest starting address */
        !           132:        movl    $5,_subtst      /* subtest number */
        !           133:        movl    $1,_no_opr      /* number of operands in use */
        !           134:        movl    $SRCL2,_opr     /* first operand in use */
        !           135: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           136:        movl    $SRCL2,tmloc    /*tmloc = source                        */
        !           137:        bispsw  $(N|V|C)        /*turn neg, overflow, & carry ON        */
        !           138:        tstl    tmloc           /*execute "tstl"                        */
        !           139:        bneq    error5          /*error if Z = 0                        */
        !           140:        blss    error5          /*error if N = 1                        */
        !           141:        bvs     error5          /*error if V = 1                        */
        !           142:        bcc     error5          /*error if C = 0                        */
        !           143:        jmp     t6              /* if no error continue */
        !           144: error5:        movpsl  _actual         /* actual = psl it is incorrect */
        !           145:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           146:        movl    $2,_ercode      /* error code flag failure */
        !           147:        jmp     *badrtn
        !           148: /*                                                                     */
        !           149: /*     Now try src > 0                                                 */
        !           150: /*                                                                     */
        !           151:        
        !           152: t6:
        !           153:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           154: at6:   callf   $4,_setjmp      /* save context for error return */
        !           155:        movab   at6,_stpc       /* save subtest starting address */
        !           156:        movl    $6,_subtst      /* subtest number */
        !           157:        movl    $1,_no_opr      /* number of operands in use */
        !           158:        movl    $SRCL3,_opr     /* first operand in use */
        !           159: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           160:        movl    $SRCL3,tmloc    /*tmloc = source                        */
        !           161:        bispsw  $(Z|N|V|C)      /*turn zero, neg, overflow, & carry ON  */
        !           162:        tstl    tmloc           /*execute "tstl"                        */
        !           163:        beql    error6          /*error if Z = 1                        */
        !           164:        blss    error6          /*error if N = 1                        */
        !           165:        bvs     error6          /*error if V = 1                        */
        !           166:        bcc     error6          /*error if C = 0                        */
        !           167:        jmp     aldn            /* if no error continue */
        !           168: error6:        movpsl  _actual         /* actual = psl 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: 
        !           173: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           174:        jmp     *return         /* good, return to monitor */
        !           175: 
        !           176: /*                                                                     */
        !           177: /*     Variables                                                       */
        !           178: /*                                                                     */
        !           179:        .align  2
        !           180: tmloc: .space  4
        !           181: 

unix.superglobalmegacorp.com

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