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

1.1     ! root        1: /*       INCL instruction test                         */
        !             2: /*       Privilege registers                           */
        !             3: 
        !             4:        .set    IPL,0x8
        !             5:        .set    MAPEN,0x9
        !             6:        .set    KSP,0x19
        !             7: /*       PSL fields                    */
        !             8:        .set    IV,32
        !             9:        .set    T,16
        !            10:        .set    N,8
        !            11:        .set    Z,4
        !            12:        .set    V,2
        !            13:        .set    C,1
        !            14: 
        !            15: /*       constants                     */
        !            16:        .set    DISABLE,0
        !            17:        .set    ENABLE,1
        !            18:        .set    MAXPOSL,0x7fffffff
        !            19:        .set    MAXNEGL,0x80000000
        !            20:        .set    MAXPOSW,0x7fff
        !            21:        .set    MAXNEGW,0x8000
        !            22:        .set    MAXPOSB,0x7f
        !            23:        .set    MAXNEGB,0x80
        !            24:        .set    ZERO,0
        !            25:        .set    ONES,0xffffffff
        !            26:        .set    HIGH,31                 /* highest interrupt priority   */
        !            27: 
        !            28:        .globl  _inc_l
        !            29: _inc_l:
        !            30:        callf   $4,_setjmp      /* save context for error return */
        !            31:        movab   _inc_l,_stpc    /* save subtest starting address */
        !            32:        movl    $1,_subtst      /* subtest number */
        !            33:        movl    $1,_no_opr      /* number of operands in use */
        !            34:        movl    $0xfffffffe,_opr /* first operand */
        !            35: 0:     bicpsw  $(IV|T)         /* disable overflow,trace exceptions    */
        !            36:        movl    $0xfffffffe,r3  /* load r3 with -2                      */
        !            37:        bispsw  $(Z|V|C)        /* set z,v,c flags                      */
        !            38:        bicpsw  $N              /* clear n flag                         */
        !            39:        incl    r3              /* increment r3                         */
        !            40:        jgeq    error1          /* error if n flag not set              */
        !            41:        jeql    error1          /* error if z flag still set            */
        !            42:        jvs     error1          /* error if v flag still set            */
        !            43:        jcs     error1          /* error if c flag still set            */
        !            44:        jmp     1f
        !            45: error1:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !            46:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            47:        movl    $2,_ercode      /* error code flag failure */
        !            48:        jmp     *badrtn
        !            49: 1:     cmpl    $0xffffffff,r3  /* is r3 == -1                          */
        !            50:        jeql    step2
        !            51:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            52:        movl    $1,_ercode      /* error code data miscompare */
        !            53:        movl    r3,_actual      /* actual data */
        !            54:        movl    $0xffffffff,_expected /* expected data */
        !            55:        jmp     *badrtn
        !            56: step2:
        !            57:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            58: ai2:   callf   $4,_setjmp      /* save context for error return */
        !            59:        movab   ai2,_stpc       /* save subtest starting address */
        !            60:        movl    $2,_subtst      /* subtest number */
        !            61:        movl    $1,_no_opr      /* number of operands in use */
        !            62:        movl    $0xffffffff,_opr /* first operand */
        !            63: 0:     bispsw  $(N|V)          /* set n,v flags                        */
        !            64:        bicpsw  $(Z|C)          /* clear z,c flag                       */
        !            65:        incl    r3              /* increment r3                         */
        !            66:        jlss    error2          /* error if n flag still set            */
        !            67:        jvs     error2          /* error if v flag still set            */
        !            68:        jneq    error2          /* error if z flag not set              */
        !            69:        jcc     error2          /* error if c flag not set              */
        !            70:        jmp     1f
        !            71: error2:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !            72:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            73:        movl    $2,_ercode      /* error code flag failure */
        !            74:        jmp     *badrtn
        !            75: 1:     bicpsw  $Z
        !            76:        cmpl    $0x0,r3         /* is r3 == 0                           */
        !            77:        jeql    ovfl    
        !            78:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            79:        movl    $1,_ercode      /* error code data miscompare */
        !            80:        movl    r3,_actual      /* actual data */
        !            81:        movl    $0,_expected    /* expected data */
        !            82:        jmp     *badrtn
        !            83: ovfl:
        !            84:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            85: ai3:   callf   $4,_setjmp      /* save context for error return */
        !            86:        movab   ai3,_stpc       /* save subtest starting address */
        !            87:        movl    $3,_subtst      /* subtest number */
        !            88:        movl    $1,_no_opr      /* number of operands in use */
        !            89:        movl    $MAXPOSL,_opr /* first operand */
        !            90: 0:     movl    $MAXPOSL,r3     /* set r3 = 0x7fffffff                  */
        !            91:        bispsw  $(Z|C|N)        /* set n,z,c flags                      */
        !            92:        bicpsw  $V              /* clear v flags                        */
        !            93:        incl    r3              /* increment r3                         */
        !            94:        jvc     error3          /* error if v flag not set              */
        !            95:        jlss    error3          /* error if n flag not set; on overflow */
        !            96:                                /* sum is replaced by MAX negative no., */
        !            97:                                /* and N is reset                       */
        !            98:        jeql    error3          /* error if z flag still set            */
        !            99:        jcs     error3          /* error if c flag set                  */
        !           100:        jmp     1f
        !           101: error3:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           102:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           103:        movl    $2,_ercode      /* error code flag failure */
        !           104:        jmp     *badrtn
        !           105: 1:     cmpl    $MAXNEGL,r3     /* is r3 == $MAXNEGL                    */
        !           106:        jeql    incml
        !           107:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           108:        movl    $1,_ercode      /* error code data miscompare */
        !           109:        movl    r3,_actual      /* actual data */
        !           110:        movl    $MAXNEGL,_expected      /* expected data */
        !           111:        jmp     *badrtn
        !           112: incml:                         /* INCREMENT MEMORY                     */
        !           113: 
        !           114:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           115: ai4:   callf   $4,_setjmp      /* save context for error return */
        !           116:        movab   ai4,_stpc       /* save subtest starting address */
        !           117:        movl    $4,_subtst      /* subtest number */
        !           118:        movl    $1,_no_opr      /* number of operands in use */
        !           119:        movl    $0xfffffffe,_opr /* first operand */
        !           120: 0:     movl    $0xfffffffe,tstloc      /* load tstloc with -2          */
        !           121:        bispsw  $(Z|V|C)        /* set z,v,c flags                      */
        !           122:        bicpsw  $N              /* clear n flag                         */
        !           123:        incl    tstloc          /* increment tstloc                     */
        !           124:        jgeq    error4          /* error if n flag not set              */
        !           125:        jeql    error4          /* error if z flag still set            */
        !           126:        jvs     error4          /* error if v flag still set            */
        !           127:        jcs     error4          /* error if c flag still set            */
        !           128:        jmp     1f
        !           129: error4:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           130:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           131:        movl    $2,_ercode      /* error code flag failure */
        !           132:        jmp     *badrtn
        !           133: 1:     cmpl    $0xffffffff,tstloc      /* is tstloc == -1              */
        !           134:        jeql    stp2
        !           135:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           136:        movl    $1,_ercode      /* error code data miscompare */
        !           137:        movl    tstloc,_actual  /* actual data */
        !           138:        movl    $0xfffffff,_expected    /* expected data */
        !           139:        jmp     *badrtn
        !           140: stp2:
        !           141:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           142: ai5:   callf   $4,_setjmp      /* save context for error return */
        !           143:        movab   ai5,_stpc       /* save subtest starting address */
        !           144:        movl    $5,_subtst      /* subtest number */
        !           145:        movl    $1,_no_opr      /* number of operands in use */
        !           146:        movl    $0xffffffff,_opr /* first operand */
        !           147: 0:     bispsw  $(N|V)          /* set n,v flags                        */
        !           148:        bicpsw  $(Z|C)          /* clear z,c flag                       */
        !           149:        incl    tstloc          /* increment tstloc                     */
        !           150:        jlss    error5          /* error if n flag still set            */
        !           151:        jvs     error5          /* error if v flag still set            */
        !           152:        jneq    error5          /* error if z flag not set              */
        !           153:        jcc     error5          /* error if c flag not set              */
        !           154:        jmp     1f
        !           155: error5:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           156:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           157:        movl    $2,_ercode      /* error code flag failure */
        !           158:        jmp     *badrtn
        !           159: 1:     cmpl    $0x0,tstloc     /* is tstloc == 0                       */
        !           160:        jeql    ovfl1
        !           161:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           162:        movl    $1,_ercode      /* error code data miscompare */
        !           163:        movl    tstloc,_actual  /* actual data */
        !           164:        movl    $0,_expected    /* expected data */
        !           165:        jmp     *badrtn
        !           166: ovfl1:
        !           167:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           168: ai6:   callf   $4,_setjmp      /* save context for error return */
        !           169:        movab   ai6,_stpc       /* save subtest starting address */
        !           170:        movl    $6,_subtst      /* subtest number */
        !           171:        movl    $1,_no_opr      /* number of operands in use */
        !           172:        movl    $MAXPOSL,_opr /* first operand */
        !           173: 0:     movl    $MAXPOSL,tstloc /* set tstloc = 0x7fffffff              */
        !           174:        bispsw  $(Z|C)          /* set z,c flags                        */
        !           175:        bicpsw  $(N|V)          /* clear n,v flags                      */
        !           176:        incl    tstloc          /* increment tstloc                     */
        !           177:        jvc     error6          /* error if v flag not set              */
        !           178:        jlss    error6          /* error if n flag set                  */
        !           179:        jeql    error6          /* error if z flag still set            */
        !           180:        jcs     error6          /* error if c flag set                  */
        !           181:        jmp     1f
        !           182: error6:        movpsl  _actual         /* actual = psl MAYBE it is incorrect */
        !           183:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           184:        movl    $2,_ercode      /* error code flag failure */
        !           185:        jmp     *badrtn
        !           186: 1:     cmpl    $MAXNEGL,tstloc /* is tstloc == $MAXNEGL                */
        !           187:        jeql    aldn
        !           188:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           189:        movl    $1,_ercode      /* error code data miscompare */
        !           190:        movl    tstloc,_actual  /* actual data */
        !           191:        movl    $MAXNEGL,_expected      /* expected data */
        !           192:        jmp     *badrtn
        !           193: 
        !           194: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           195:        jmp     *return         /* jmp absolute */
        !           196: 
        !           197: /*     test data       */
        !           198:        .align  2
        !           199: tstloc:        .long   0
        !           200: 

unix.superglobalmegacorp.com

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