|
|
Power 6/32 Unix version 1.2b
/* BYTE DISPLACEMENT 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 .globl _bdisp_mode _bdisp_mode: callf $4,_setjmp /* save context for error return */ movab _bdisp_mode,_stpc /* save subtest pc */ movl $1,_subtst /* subttest number */ movl $1,_no_opr /* number of operands */ movl bb1,_opr /* operand used in test */ 0: bicpsw $PSWMASK movl bb1,r3 /*move address of label bbase1 */ movb $0x55,b^127(r3) /*change byte 127 of bbase1 */ cmpl bbasel,$0xffffff55 /*see if it happened */ beql 1f er1: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /*error code*/ movl bbasel,_actual /*observed*/ movl $0xffffff55,_expected /*expected*/ jmp *badrtn /*byte disp mode did not change */ /*right byte */ 1: cmpl r3,bb1 /*check r3 did not changed */ beql 2f er2: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $3,_ercode /*error code operand miscompare */ movl r3,_actual /*observed*/ movl bb1,_expected /*expected*/ jmp *badrtn /*byte disp mode changed the base*/ /*which was r3; r3 = changed base*/ /*r4 = original base loaded in r3*/ 2: bbs $0,_force_lp,0b /* if set loop on last subtest */ 2: callf $4,_setjmp /* save context for error return */ movab 2b,_stpc /* save subtest pc */ movl $2,_subtst /* subttest number */ movl $1,_no_opr /* number of operands */ movl r3,_opr /* operand used in test */ 0: movb b^1(r3),b^126(r3) cmpl bbasel,$0xffff2255 beql 3f er3: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /*error code - data miscompare */ movl bbase1,_actual /*observed*/ movl $0xffff2255,_expected /*expected*/ jmp *badrtn /*byte disp mode did not change */ /*right byte */ 3: cmpl r3,bb1 beql 4f er4: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $3,_ercode /*error code operand miscompare */ movl r3,_actual /*observed*/ movl bb1,_expected /*expected*/ jmp *badrtn /*byte disp mode changed the base*/ /*which was r3; r3 = changed base*/ /*r4 = original base loaded in r3*/ 4: bbs $0,_force_lp,0b /* if set loop on last subtest */ 4: callf $4,_setjmp /* save context for error return */ movab 4b,_stpc /* save subtest pc */ movl $3,_subtst /* subttest number */ movl $1,_no_opr /* number of operands */ movl r3,_opr /* operand used in test */ 0: movb 2(r3),125(r3) cmpl bbasel,$0xff112255 beql 5f er5: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /*error code - data miscompare */ movl bbase1,_actual /*observed*/ movl $0xff112255,_expected /*expected*/ jmp *badrtn /*byte disp mode did not change */ /*right byte */ 5: bbs $0,_force_lp,0b /* if set loop on last subtest */ movl $0,_ercode /*no error*/ movl $0x33221100,bbase1 movl $0xaaaaaaaa,bbase2 movl $0xbbbbbbbb,bbase3 movl $0xffffffff,bbasel jmp *return /*end of test - goto monitor */ /* Variables */ .align 2 bbase1: .fill 1,4,0x33221100 /*relative location 0*/ bbase2: .fill 1,4,0xaaaaaaaa /*rl 4 */ bbase3: .fill 1,4,0xbbbbbbbb /*rl 8 */ .space 112 bbasel: .fill 1,4,0xffffffff /*rl 124 */ bb1: .long bbase1 bbl: .long bbasel
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.