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

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

unix.superglobalmegacorp.com

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