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