|
|
Power 6/32 Unix version 1.2b
/* ABSOLUTE 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 _absi_mode _absi_mode: callf $4,_setjmp /* save context for error return */ movab _absi_mode,_stpc /* save subtest program counter */ movl $1,_no_opr /* number of operands used */ movl $1,_subtst /* sub test number */ 0: bicpsw $PSWMASK movb $data_table + 3,_opr /* test operand */ clrl r3 movb $3,r2 /*index */ movb *$data_table[r2],r3 /*get third byte from data_table*/ cmpl r3,$0x44 /*which is 0x44 */ beql 1f er1: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl $0x44,_expected /* expected data */ jmp *badrtn /*display error */ 1: cmpl $3,r2 /*check index reg r3 unchanged */ beql 3f er3: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $3,_ercode /* error code operand miscompare */ movl r2,_actual /* actual data */ movl $3,_expected /* expected data */ jmp *badrtn /*display error */ 3: bbs $0,_force_lp,0b /* loop on subtest if set */ 3: callf $4,_setjmp /* save context for error return */ movab 3b,_stpc /* save subtest program counter */ movl $2,_subtst /* sub test number */ movw $data_table + 3,_opr /* test operand */ 0: movw *$data_table[r2],r3 /*get third word from data_table*/ cmpl r3,$0x7788 /*which is 0x7788 */ beql 4f er4: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code operand miscompare */ movl r3,_actual /* actual data */ movl $0x7788,_expected /* expected data */ jmp *badrtn /*display error */ 4: bbs $0,_force_lp,0b /* loop on subtest if set */ 4: callf $4,_setjmp /* save context for error return */ movab 4b,_stpc /* save subtest program counter */ movl $3,_subtst /* sub test number */ movl $data_table + 3,_opr /* test operand */ 0: movl *$data_table[r2],r3 /*get third longword from table */ cmpl r3,$0xddeeff00 /*which is 0xddeeff00 */ beql 5f er5: bbs $0,_scoplp,0b /* if set tight loop for scope */ movl $1,_ercode /* error code operand miscompare */ movl r3,_actual /* actual data */ movl $0xddeeff00,_expected /* expected data */ jmp *badrtn /*display error */ 5: bbs $0,_force_lp,0b /* loop on subtest if set */ 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 dta1: .long disp add_table: .space 5 .align 2 .long data_table .space 02 .align 2 .long data_table .space 32003 .align 2 .long data_table .align 2 base_add: .long add_table /* end of file */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.