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

1.1     ! root        1: /*     INDEXing mode test      */
        !             2: /*                             */
        !             3: /*     constant definitions    */
        !             4: 
        !             5:        .set    HIGH,31
        !             6:        .set    IPL,8
        !             7:        .set    ZERO,0
        !             8:        .set    ONES,0xffffffff
        !             9:        .set    DV,128
        !            10:        .set    FU,64
        !            11:        .set    IV,32
        !            12:        .set    T,16
        !            13:        .set    N,8
        !            14:        .set    Z,4
        !            15:        .set    V,2
        !            16:        .set    C,1
        !            17:        .set    NEGVAL,0xff0fffff
        !            18: 
        !            19:        .globl  _index
        !            20: _index:
        !            21:        callf   $4,_setjmp      /* save context for error return */
        !            22:        movab   _index,_stpc    /* save starting address of subtest */
        !            23:        movl    $1,_subtst      /* subtst number */
        !            24:        movl    $3,_no_opr      /* number of operands in use */
        !            25:        movl    $0,_opr         /* first operand */
        !            26:        movl    $1,_opr + 4     /* second operand */
        !            27:        movl    $2,_opr + 8     /* third operand */
        !            28: 0:     movl    $0x1fffffff,tab1        /* Initialize data */
        !            29:        movl    $0xaabbccdd,tab1+4
        !            30:        movl    $0xccddeeff,tab1+8
        !            31:        movl    $0xeeeecaca,tab1+12
        !            32: 
        !            33:        movl    $0x00000001,tab2
        !            34:        movl    $0x20000000,tab2+4
        !            35:        movl    $0x06ffffff,tab2+8
        !            36: 
        !            37:        movl    $0,tab3
        !            38:        movl    $0xffff0000,tab3+4
        !            39:        movl    $0xaaaaaaaa,tab3+8
        !            40:        movl    $0xcc00eeff,tab3+12     
        !            41:        movl    $0xffffffff,tab3+16
        !            42: 
        !            43:        movl    $0x3fffffff,result
        !            44:        movl    $0x20000000,result+4
        !            45:        movl    $0xffffffb0,result+8
        !            46:        movl    $0xcce0eeff,result+12
        !            47:        movl    $0xcaccffff,result+16
        !            48: 
        !            49:        movl    $1,r1           /* R1 : indidate which part of the test */
        !            50:        clrl    r3              /* R3 = 0; R4 = 1; R5 = 2 */
        !            51:        movl    $1,r4
        !            52:        movl    $2,r5
        !            53:        addl3   tab1[r3],tab2[r4],tab3[r5]
        !            54:        cmpl    tab3+8,result   /* compare result       */
        !            55:        jeql    i2              /* error if not equal; z flag not set */
        !            56:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            57:        movl    $1,_ercode      /* error code data miscompare */
        !            58:        movl    tab3+8,_actual  /* actual data */
        !            59:        movl    result,_expected        /* expected data */
        !            60:        jmp     *badrtn
        !            61: 
        !            62: i2:
        !            63:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            64: ai2:   callf   $4,_setjmp      /* save context for error return */
        !            65:        movab   ai2,_stpc       /* save starting address of subtest */
        !            66:        movl    $2,_subtst      /* subtst number */
        !            67: 0:     addw3   tab1[r3],tab2[r4],tab3[r5]
        !            68:        cmpl    tab3+4,result+4 /* compare result       */
        !            69:        jeql    i3              /* error if not equal; z flag not set */
        !            70:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            71:        movl    $1,_ercode      /* error code data miscompare */
        !            72:        movl    tab3+4,_actual  /* actual data */
        !            73:        movl    result+4,_expected      /* expected data */
        !            74:        jmp     *badrtn
        !            75: 
        !            76: i3:
        !            77:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            78: ai3:   callf   $4,_setjmp      /* save context for error return */
        !            79:        movab   ai3,_stpc       /* save starting address of subtest */
        !            80:        movl    $3,_subtst      /* subtst number */
        !            81:        movl    $2,_no_opr      /* number of operands in use */
        !            82:        movl    $4,_opr         /* first operand */
        !            83:        movl    $8,_opr + 4     /* second operand */
        !            84: 0:     movl    $4,r3           /* R3 = 4; R4 = 8 */
        !            85:        movl    $8,r4
        !            86:        addb3   tab1[r3],tab2[r4],r5
        !            87:        cmpl    r5,result+8     /* compare result       */
        !            88:        jeql    i4              /* error if not equal; z flag not set */
        !            89:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !            90:        movl    $1,_ercode      /* error code data miscompare */
        !            91:        movl    r5,_actual      /* actual data */
        !            92:        movl    result+8,_expected      /* expected data */
        !            93:        jmp     *badrtn
        !            94: 
        !            95: i4:
        !            96:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !            97: ai4:   callf   $4,_setjmp      /* save context for error return */
        !            98:        movab   ai4,_stpc       /* save starting address of subtest */
        !            99:        movl    $4,_subtst      /* subtst number */
        !           100:        movl    $3,_no_opr      /* number of operands in use */
        !           101:        movl    $9,_opr         /* first operand */
        !           102:        movl    $3,_opr + 4     /* second operand */
        !           103:        movl    $13,_opr + 8    /* third operand */
        !           104: 0:     movl    $9,r3           /* R3 = 9; R5 = 13 */
        !           105:        movl    $13,r5
        !           106:        movl    $3,r4
        !           107:        addb3   tab1[r3],r4,tab3[r5]
        !           108:        cmpl    tab3+12,result+12       /* compare result       */
        !           109:        jeql    i5              /* error if not equal; z flag not set */
        !           110:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           111:        movl    $1,_ercode      /* error code data miscompare */
        !           112:        movl    tab3+12,_actual /* actual data */
        !           113:        movl    result+12,_expected     /* expected data */
        !           114:        jmp     *badrtn
        !           115: 
        !           116: i5:
        !           117:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           118: ai5:   callf   $4,_setjmp      /* save context for error return */
        !           119:        movab   ai5,_stpc       /* save starting address of subtest */
        !           120:        movl    $5,_subtst      /* subtst number */
        !           121:        movl    $3,_no_opr      /* number of operands in use */
        !           122:        movl    $2,_opr         /* first operand */
        !           123:        movl    $7,_opr + 4     /* second operand */
        !           124:        movl    $8,_opr + 8     /* third operand */
        !           125: 0:     movl    $7,r4           /* R4 = 7; R5 = 8 */
        !           126:        movl    $8,r5
        !           127:        movl    $2,r3
        !           128:        addw3   r3,tab1[r4],tab3[r5]
        !           129:        cmpl    tab3+16,result+16       /* compare result       */
        !           130:        jeql    aldn            /* error if not equal; z flag not set */
        !           131:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           132:        movl    $1,_ercode      /* error code data miscompare */
        !           133:        movl    tab3+12,_actual /* actual data */
        !           134:        movl    result+12,_expected     /* expected data */
        !           135:        jmp     *badrtn
        !           136: 
        !           137: 
        !           138: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           139:        jmp     *return
        !           140: /*     test data               */
        !           141:        .align  2
        !           142: tab1:
        !           143:        .long   0x1fffffff
        !           144:        .long   0xaabbccdd
        !           145:        .long   0xccddeeff
        !           146:        .long   0xeeeecaca
        !           147: tab2:
        !           148:        .long   0x00000001
        !           149:        .long   0x20000000
        !           150:        .long   0x06ffffff
        !           151: tab3:
        !           152:        .long   0
        !           153:        .long   0xffff0000      /* should have expected result of 0x20000000 */
        !           154:        .long   0xaaaaaaaa      /* should have expected result of 0x3fffffff */
        !           155:        .long   0xcc00eeff      /* should have expected result of 0xcce0eeff */
        !           156:        .long   0xffffffff
        !           157: result:                                /* Table contains expected results      */
        !           158:        .long   0x3fffffff
        !           159:        .long   0x20000000
        !           160:        .long   0xffffffb0
        !           161:        .long   0xcce0eeff
        !           162:        .long   0xcaccffff
        !           163: 

unix.superglobalmegacorp.com

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