|
|
Power 6/32 Unix version 1.2b
/* RELATIVE 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 _reldi_mode _reldi_mode: callf $4,_setjmp /* save context */ movab _reldi_mode,_stpc movl $1,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ 0: clrl r5 movb $3,r4 /*index */ movl r4,_opr /* first operand */ movb *dta[r4],r5 /*get third byte from data_table*/ cmpl r5,$0x44 /*which is 0x44 */ beql 1f er1: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare*/ movl r5,_actual /* actual data */ movl $0x0044,_expected /*expected; r5 = observed*/ jmp *badrtn /*display error */ 1: cmpl $3,r4 /*check index reg r4 unchanged */ beql 3f er3: bbs $0,_scoplp,0b /* if set loop on error */ movl $3,_ercode /*error code operand was modified */ movl r4,_actual /* actual data */ movl $3,_expected /*expected; r4 = observed*/ 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 $1,_no_opr /* number of operands in use */ movl r4,_opr /* first operand */ 0: movw *dta[r4],r5 /*get third word from data_table*/ cmpl r5,$0x7788 /*which is 0x7788 */ beql 4f er4: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare*/ movl r5,_actual /* actual data */ movl $0x7788,_expected /*expected; r5 = observed*/ 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 $1,_no_opr /* number of operands in use */ movl r4,_opr /* first operand */ 0: movl *dta[r4],r5 /*get third longword from table */ cmpl r5,$0xddeeff00 /*which is 0xddeeff00 */ beql 5f er5: bbs $0,_scoplp,0b /* if set loop on error */ movl $1,_ercode /*error code data miscompare*/ movl r5,_actual /* actual data */ movl $0xddeeff00,_expected /*expected; r5 = observed*/ 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.