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