|
|
Power 6/32 Unix version 1.2b
/* REGISTER DEFERRED INDEXED 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 _rdi_mode _rdi_mode: callf $4,_setjmp /* save context */ movab _rdi_mode,_stpc /* save subtest pc */ movl $1,_subtst /* subtest number */ movl $3,_no_opr /* number of operands in use */ 0: clrl r5 movl dta,r3 /*data table address - base */ movb $3,r4 /*index */ movl r3,_opr /* first operand */ movl r4,_opr + 4 /* second operand */ movl r5,_opr + 8 /* third operand */ movb (r3)[r4],r5 /*get third byte from data_table*/ cmpl r5,$0x44 /*which is 0x44 */ beql 1f er1: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl r5,_actual /* actual data */ movl $0x44,_expected /* expected data */ jmp *badrtn /*display error */ 1: cmpl r3,dta /*check r3 did not changed */ beql 2f er2: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /* error code operand was changed */ movl r3,_actual /* actual data */ movl dta,_expected /* expected data */ jmp *badrtn /*display error */ 2: cmpl $3,r4 /*check index reg r5 unchanged */ beql 3f er3: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /* error code operand was changed */ movl r4,_actual /* actual data */ movl $3,_expected /* expected data */ jmp *badrtn /*display 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 $2,_subtst /* subtest number */ movl $3,_no_opr /* number of operands in use */ movl r3,_opr /* first operand */ movl r4,_opr + 4 /* second operand */ movl r5,_opr + 8 /* third operand */ 0: movw (r3)[r4],r5 /*get third word from data_table*/ cmpl r5,$0x7788 /*which is 0x7788 */ beql 4f er4: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl r5,_actual /* actual data */ movl $0x7788,_expected /* expected data */ jmp *badrtn /*display error */ 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 $3,_subtst /* subtest number */ movl $3,_no_opr /* number of operands in use */ movl r3,_opr /* first operand */ movl r4,_opr + 4 /* second operand */ movl r5,_opr + 8 /* third operand */ 0: movl (r3)[r4],r5 /*get third longword from table */ cmpl r5,$0xddeeff00 /*which is 0xddeeff00 */ beql 5f er5: bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl r5,_actual /* actual data */ movl $0xddeeff00,_expected /* expected data */ jmp *badrtn /*display error */ 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 disp: .space 4 data_table: .fill 1,4,0x11223344 /*relative location 0*/ .fill 1,4,0x55667788 /*rl 4 */ .fill 1,4,0x99aabbcc /*rl 8 */ .fill 1,4,0xddeeff00 /*rl 12 */ .fill 1,4,0x00000000 .align 2 dta: .long data_table dta1: .long disp /* end of file */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.