|
|
Power 6/32 Unix version 1.2b
/* andl3 mask,src,dest */ /* Combination = 3,3,4 & (4,4,3) */ /* mask src dest */ /* ---- --- ---- */ /* 3 3 4 */ /* 3 4 3 illegal */ /* 4 3 3 illegal */ /* 4 4 3 illegal */ /* 4 3 4 */ /* 3 4 4 */ /* where 1 = register mode */ /* 2 = (register) mode */ /* 3 = immidiate mode */ /* 4 = longword displacement deferred mode */ /* Constants */ .set MASK,0x55555555 .set SRC,0xaaaaaaaa .set DEST,-1 /* */ /* 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 _ca334 _ca334: callf $4,_setjmp /* save context */ movab _ca334,_stpc /* save subtest pc */ movl $1,_subtst /* save subtest number */ movl $4,_no_opr /* four operands in use */ 0: movl base_add,r3 movl $3,r4 movl $MASK,_opr /* first operand */ movl $SRC,_opr + 4 /* second operand */ movl r3,_opr + 8 /* third operand */ movl r4,_opr + 12 /* fourth operand */ andl3 $MASK,$SRC,*l^64020(r3)[r4] cmpl $0,dest beql 1f er1: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 334 */ 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 /* save subtest number */ movl $4,_no_opr /* four operands in use */ 0: movl $1,r5 movl $DEST,dest movl r3,_opr /* first operand */ movl r5,_opr + 4 /* second operand */ movl $SRC,_opr + 8 /* third operand */ movl r4,_opr + 12 /* fourth operand */ andl3 *l^64020(r3)[r5],$SRC,*l^64020(r3)[r4] cmpl $0,dest beql 2f er2: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 434 */ 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 /* save subtest number */ movl $4,_no_opr /* four operands in use */ 0: movl $2,r5 movl $DEST,dest movl $MASK,_opr /* first operand */ movl r3,_opr + 4 /* second operand */ movl r5,_opr + 8 /* third operand */ movl r4,_opr + 12 /* fourth operand */ andl3 $MASK,*l^64020(r3)[r5],*l^64020(r3)[r4] cmpl $0,dest beql 3f er3: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl dest,_actual /* actual data */ movl $0,_expected /* expected data */ jmp *badrtn /*error - mode = 344 */ 3: bbs $0,_force_lp,0b /* if set loop on last subtest */ movl $0,_ercode /* no error */ 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.