|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.