|
|
Power 6/32 Unix version 1.2b
/* (BYTE,WORD,LONGWORD) DISPLACEMENT DEFERED ADDRESSING MODES 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 _dispd_mode _dispd_mode: callf $4,_setjmp /* save context */ movab _dispd_mode,_stpc /* save pc of subtest start */ movl $1,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl base_add,_opr /* first operand */ 0: movl base_add,r3 /*base of the address_table*/ movl *b^4(r3),r4 /*byte disp deferred mode*/ cmpl r4,$0x33221100 beql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl r4,_actual /* actual data */ movl $0x33221100,_expected /*expected data*/ jmp *badrtn 1: bbs $0,_force_lp,0b /* if set loop on last subtest */ 1: callf $4,_setjmp /* save context */ movab 1b,_stpc /* save pc of subtest start */ movl $2,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movl $0x55555555,r4 movl r4,*b^4(r3) cmpl bbase1,$0x55555555 /*this is the actual location */ beql 2f /* changed by the previous inst. */ bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl bbase1,_actual /* actual data */ movl $0x55555555,_expected /*expected data*/ jmp *badrtn 2: bbs $0,_force_lp,0b /* if set loop on last subtest */ 2: callf $4,_setjmp /* save context */ movab 2b,_stpc /* save pc of subtest start */ movl $3,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movl $0x33221100,bbase1 /* Restore original value */ movl *w^32012(r3),r4 /*word disp deferred mode*/ cmpl r4,$0xaaaaaaaa beql 3f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl r4,_actual /* actual data */ movl $0xaaaaaaaa,_expected /*expected data*/ jmp *badrtn /*byte disp def mode did not move right value*/ 3: bbs $0,_force_lp,0b /* if set loop on last subtest */ 3: callf $4,_setjmp /* save context */ movab 3b,_stpc /* save pc of subtest start */ movl $4,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movl $0x55555555,r4 movl r4,*w^32012(r3) cmpl bbase2,$0x55555555 /*this is the actual location */ beql 4f /* changed by the previous inst. */ bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl bbase2,_actual /* actual data */ movl $0x55555555,_expected /*expected data*/ jmp *badrtn /*byte disp def mode did not move right value*/ 4: bbs $0,_force_lp,0b /* if set loop on last subtest */ 4: callf $4,_setjmp /* save context */ movab 4b,_stpc /* save pc of subtest start */ movl $5,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movl $0xaaaaaaaa,bbase2 /* Restore original value */ movl $0xbbbbbbbb,bbase3 /* rload bbase3 changed by subtst 5*/ movl *l^66020(r3),r4 /*longword disp deferred mode*/ cmpl r4,$0xbbbbbbbb beql 5f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl r4,_actual /* actual data */ movl $0xbbbbbbbb,_expected /*expected data*/ jmp *badrtn /*byte disp def mode did not move right value*/ 5: bbs $0,_force_lp,0b /* if set loop on last subtest */ 5: callf $4,_setjmp /* save context */ movab 5b,_stpc /* save pc of subtest start */ movl $6,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movl $0x55555555,r4 movl r4,*l^66020(r3) cmpl bbase3,$0x55555555 /*this is the actual location */ beql 6f /* changed by the previous inst. */ bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl bbase3,_actual /* actual data */ movl $0x55555555,_expected /*expected data*/ jmp *badrtn /*byte disp def mode did not move right value */ 6: bbs $0,_force_lp,0b /* if set loop on last subtest */ movl $0,r2 /*no error*/ jmp *return /*end of test */ # # # /* LONGWORD DISPLACEMENT ADDRESSING MODE TEST */ /* */ /* */ /* */ .globl _ldisp_mode _ldisp_mode: callf $4,_setjmp /* save context */ movab _ldisp_mode,_stpc /* save pc of subtest start */ movl $1,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl base_add,_opr /* first operand */ 0: movl base_add,r3 /*move address of label bbase1 */ movl $0xffffffff,lbasel /* initialize data changed by tst */ movb $0x55,l^65539(r3) /*change byte 127 of bbase1 */ cmpl lbasel,$0xffffff55 /*see if it happened */ beql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl lbasel,_actual /* actual data */ movl $0xffffff55,_expected /*expected data*/ jmp *badrtn /*longword disp mode did not */ 1: cmpl r3,$add_table /*check r3 did not changed */ beql 2f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /*error code operand was changed*/ movl r3,_actual /* actual data */ movl $add_table,_expected /*expected data*/ jmp *badrtn /*longword disp changed base in r1*/ 2: bbs $0,_force_lp,0b /* if set loop on last subtest */ 2: callf $4,_setjmp /* save context */ movab 2b,_stpc /* save pc of subtest start */ movl $2,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movb l^32768(r3),l^65538(r3) cmpl lbasel,$0xffff1155 beql 3f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl lbasel,_actual /* actual data */ movl $0xffff1155,_expected /*expected data*/ jmp *badrtn /*longword disp mode did not */ /*changed byte correctly */ 3: cmpl r3,$add_table beql 4f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /*error code operand was changed*/ movl r3,_actual /* actual data */ movl $add_table,_expected /*expected data*/ jmp *badrtn /*longword disp changed base in r1*/ 4: bbs $0,_force_lp,0b /* if set loop on last subtest */ 4: callf $4,_setjmp /* save context */ movab 4b,_stpc /* save pc of subtest start */ movl $3,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movb l^32770(r3),l^65537(r3) cmpl lbasel,$0xff111155 beql 5f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl lbasel,_actual /* actual data */ movl $0xff111155,_expected /*expected data*/ jmp *badrtn /*longword disp mode did not */ /*changed byte correctly */ 5: bbs $0,_force_lp,0b /* if set loop on last subtest */ jmp *return /*end of test - goto monitor */ # # # /* WORD DISPLACEMENT ADDRESSING MODE TEST */ /* */ /* */ /* */ .globl _wdisp_mode _wdisp_mode: callf $4,_setjmp /* save context */ movab _wdisp_mode,_stpc /* save pc of subtest start */ movl $1,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl base_add,_opr /* first operand */ 0: movl base_add,r3 /*move address of label bbase1 */ movl $0xffffffff,wbasel /* initialize wbasel */ movb $0x55,w^32767(r3) /*change byte 32767 of bbase1 */ cmpl wbasel,$0xffffff55 /*see if it happened */ beql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl wbasel,_actual /* actual data */ movl $0xffffff55,_expected /*expected data*/ jmp *badrtn /* Word disp mode did not move right byte */ 1: cmpl r3,$add_table /*check r3 did not changed */ beql 2f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /*error code operand was changed*/ movl r3,_actual /* actual data */ movl $add_table,_expected /*expected data*/ jmp *badrtn /* Word disp mode changed base */ 2: bbs $0,_force_lp,0b /* if set loop on last subtest */ 2: callf $4,_setjmp /* save context */ movab 2b,_stpc /* save pc of subtest start */ movl $2,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movb w^134(r3),w^32766(r3) cmpl wbasel,$0xffff0055 beql 3f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl wbasel,_actual /* actual data */ movl $0xffff0055,_expected /*expected data*/ jmp *badrtn /* Word disp mode did not move right byte */ 3: cmpl r3,$add_table beql 4f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /*error code operand was changed*/ movl r3,_actual /* actual data */ movl $add_table,_expected /*expected data*/ jmp *badrtn /* Word disp mode changed base */ 4: bbs $0,_force_lp,0b /* if set loop on last subtest */ 4: callf $4,_setjmp /* save context */ movab 4b,_stpc /* save pc of subtest start */ movl $3,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: movb w^132(r3),w^32765(r3) cmpl wbasel,$0xff110055 beql 5f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /*error code data miscompare*/ movl wbasel,_actual /* actual data */ movl $0xff110055,_expected /*expected data*/ jmp *badrtn /* Word disp mode did not move right byte */ 5: bbs $0,_force_lp,0b /* if set loop on last subtest */ movl $0,_ercode /*no error*/ jmp *return /*end of test - goto monitor */ /* Variables */ .align 2 bbase1: .long 0x33221100 /*relative location 0*/ bbase2: .long 0xaaaaaaaa /*rl 4 */ bbase3: .long 0xbbbbbbbb /*rl 8 */ .align 2 base_add: .long add_table .align 2 add_table: .long 0 .long bbase1 /* relative location 4 */ .space 124 .long 0x11110000 /*relative location 132 */ .space (32004-128) .long bbase2 /*relative location 32012 */ .space 748 wbasel: .long 0xffffffff /*relative location 32764 */ .long 0x11111111 /*relative location 32768 */ .space 32764 lbasel: .long 0xffffffff /*relative location 65536 */ .space 480 .long bbase3 /*relative location 66020 */ /*end of file */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.