|
|
Power 6/32 Unix version 1.2b
/* RELATIVE ADDRESSING MODE TEST */ /* */ /* */ /* */ /* 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 rel_mode: .globl _rel_mode _rel_mode: callf $4,_setjmp /* save context */ movab _rel_mode,_stpc /* save subtest pc */ movl $1,_subtst /* subtest number */ movl $1,_no_opr /* number of operands used */ 0: movl bloc,_opr /* first operand */ movl bloc,r3 /*r3 = (bloc) */ cmpl r3,$0xaaaaaaaa /*r3 = literal value? */ beql 1f /*if yes, goto next test */ er1: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare */ movl r3,_actual /* actual data */ movl $0xaaaaaaaa,_expected /*expected; r3 = observed*/ jmp *badrtn /*error - dislay error */ 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 $1,_no_opr /* number of operands used */ 0: movl wloc,_opr /* first operand */ bicpsw $PSWMASK /*psw = 0 */ movl wloc,r3 /*r3 = (wloc) */ cmpl r3,$0xbbbbbbbb /*r3 = literal value? */ beql 2f /*if yes, goto next test */ er2: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare */ movl r3,_actual /* actual data */ movl $0xbbbbbbbb,_expected /*expected; r3 = observed*/ jmp *badrtn /*error - dislay error */ 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 $1,_no_opr /* number of operands used */ 0: bicpsw $PSWMASK /*psw = 0 */ movl $0x55555555,lloc movl lloc,_opr /* first operand */ movl lloc,r3 /*r3 = (lloc) */ cmpl r3,$0x55555555 /*r3 = literal value? */ beql 3f /*if yes, goto next test */ er3: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare */ movl r3,_actual /* actual data */ movl $0x55555555,_expected /*expected; r3 = observed*/ jmp *badrtn /*error - dislay error */ 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 $1,_no_opr /* number of operands used */ 0: bicpsw $PSWMASK /*relative addressing in */ /*second operand */ movl $-1,_opr /* first operand */ movl $-1,lloc cmpl lloc,$-1 beql 4f er4: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare */ movl lloc,_actual /* actual data */ movl $-1,_expected /*expected; r3 = observed*/ jmp *badrtn /*error - dislay error */ 4: bbs $0,_force_lp,0b /* if set loop on last subtest */ movl $0,_ercode /*no error*/ jmp *return /*end of test - goto monitor */ /* Variables list */ .align 2 bloc: .fill 4,1,0xaa .align 2 bloc1: .long bloc empty1: .space 255 /*255 bytes of zeros */ /*to force word addressing */ .align 2 wloc: .fill 1,4,0xbbbbbbbb wloc1: .long wloc empty2: .space 16565 /*to force long word addressing */ .align 2 lloc: .fill 1,4,0x55555555 lloc1: .long lloc /* End of file */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.