|
|
Power 6/32 Unix version 1.2b
/* andl3 mask,src,dest */ /* Combination = 1,2,4 */ /* mask src dest */ /* ---- --- ---- */ /* 1 2 4 */ /* 1 4 2 */ /* 2 1 4 */ /* 2 4 1 */ /* 4 1 2 */ /* 4 2 1 */ /* where 1 = register mode */ /* 2 = (register) mode */ /* 3 = immidiate mode */ /* 4 = longword displacement deferred mode */ /* */ /* Syst.s - Constants */ /* */ .set IPL,8 .set HIGH,31 .set ZERO,0 .set ONES,0xffffffff .set N,8 .set Z,4 .set V,2 .set C,1 .set T,16 .set IV,32 .set FU,64 .set DV,128 .set PSWMASK,0x003f .globl _ca124 _ca124: callf $4,_setjmp /* save context */ movab _ca124,_stpc /* save subtest pc */ movl $1,_subtst /* subtest number */ movl $4,_no_opr /* number of operands used */ 0: bicpsw $PSWMASK movl base_add,r5 /*address of add_table */ movl $0x55555555,r3 /*mask */ movl $0xaaaaaaaa,src movl sa,r4 /*source */ movl $-1,dest movl $3,r6 /*index for destination */ movl r3,_opr /* first operand */ movl r4,_opr + 4 /* second operand */ movl r5,_opr + 8 /* third operand */ movl r6,_opr + 12 /* fourth operand */ andl3 r3,(r4),*l^64020(r5)[r6] cmpl $0,dest beql 1f er1: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error, mode = 124 */ 1: bbs $0,_force_lp,0b /* if set loop on last subtest */ 1: callf $4,_setjmp /* save context */ movab 1b,_stpc /* save subtest pc */ movl $2,_subtst /* subtest number */ movl $4,_no_opr /* number of operands used */ 0: movl $0x55555555,r3 /*mask */ movl $2,r6 /*index for source */ movl $0xaaaaaaaa,src /*source */ movl $-1,dest movl da,r4 /*dest address */ movl r3,_opr /* first operand */ movl r5,_opr + 4 /* second operand */ movl r6,_opr + 8 /* third operand */ movl r4,_opr + 12 /* fourth operand */ andl3 r3,*l^64020(r5)[r6],(r4) cmpl $0,dest beql 2f er2: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 142 */ 2: bbs $0,_force_lp,0b /* if set loop on last subtest */ 2: callf $4,_setjmp /* save context */ movab 2b,_stpc /* save subtest pc */ movl $3,_subtst /* subtest number */ movl $4,_no_opr /* number of operands used */ 0: movl $0x55555555,mask movl ma,r4 /*mask address */ movl $0xaaaaaaaa,r3 /*source */ movl $3,r6 /*index for destination */ movl $-1,dest movl r4,_opr /* first operand */ movl r3,_opr + 4 /* second operand */ movl r5,_opr + 8 /* third operand */ movl r6,_opr + 12 /* fourth operand */ andl3 (r4),r3,*l^64020(r5)[r6] cmpl $0,dest beql 3f er3: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 214 */ 3: bbs $0,_force_lp,0b /* if set loop on last subtest */ 3: callf $4,_setjmp /* save context */ movab 3b,_stpc /* save subtest pc */ movl $4,_subtst /* subtest number */ movl $4,_no_opr /* number of operands used */ 0: movl $0x55555555,mask movl ma,r4 /*mask address */ movl $-1,r3 /*destination */ movl $2,r6 /*index for source */ movl $0xaaaaaaaa,src movl r4,_opr /* first operand */ movl r5,_opr + 4 /* second operand */ movl r6,_opr + 8 /* third operand */ movl r3,_opr + 12 /* fourth operand */ andl3 (r4),*l^64020(r5)[r6],r3 cmpl $0,r3 beql 4f er4: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 241 */ 4: bbs $0,_force_lp,0b /* if set loop on last subtest */ 4: callf $4,_setjmp /* save context */ movab 4b,_stpc /* save subtest pc */ movl $5,_subtst /* subtest number */ movl $4,_no_opr /* number of operands used */ movl $1,r6 /*index for mask */ 0: movl $0x55555555,mask movl $0xaaaaaaaa,r3 /*source */ movl $-1,dest movl da,r4 /*destination address */ movl r5,_opr /* first operand */ movl r6,_opr + 4 /* second operand */ movl r3,_opr + 8 /* third operand */ movl r4,_opr + 12 /* fourth operand */ andl3 *l^64020(r5)[r6],r3,(r4) cmpl $0,dest beql 5f er5: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 412 */ 5: bbs $0,_force_lp,0b /* if set loop on last subtest */ 5: callf $4,_setjmp /* save context */ movab 5b,_stpc /* save subtest pc */ movl $6,_subtst /* subtest number */ movl $4,_no_opr /* number of operands used */ 0: movl $1,r6 /*index for mask movl $0x55555555,mask movl $0xaaaaaaaa,src movl sa,r4 /*source */ movl $-1,r3 /*dest */ movl r5,_opr /* first operand */ movl r6,_opr + 4 /* second operand */ movl r4,_opr + 8 /* third operand */ movl r3,_opr + 12 /* fourth operand */ andl3 *l^64020(r5)[r6],(r4),r3 cmpl $0,r3 beql 6f er6: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 421 */ 6: bbs $0,_force_lp,0b /* if set loop on last subtest */ movl $0,_ercode jmp *return /*end of test - goto */ /*monitor */ /* end of file */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.