|
|
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: movl $1,r1 /* subtest number */ bicpsw $PSWMASK clrl r3 movb $3,r4 /*index */ movb *$data_table[r4],r3 /*get third byte from data_table*/ cmpl r3,$0x44 /*which is 0x44 */ beql 1f er1: movpsl r5 movl $1,r2 /*error code*/ movl $0x44,r4 /*expected data; r3 = observed */ jmp *badrtn /*display error */ 1: cmpl $3,r4 /*check index reg r4 unchanged */ beql 3f er3: movpsl r5 movl $2,r2 /*error code*/ movl r4,r4 /*expected data; r3 = observed */ movl $3,r4 jmp *badrtn /*display error */ 3: movl $2,r1 movw *$data_table[r4],r3 /*get third word from data_table*/ cmpl r3,$0x7788 /*which is 0x7788 */ beql 4f er4: movpsl r5 movl $3,r2 /*error code*/ movl $0x7788,r4 /*expected data; r3 = observed */ jmp *badrtn /*display error */ 4: movl $3,r1 movl *$data_table[r4],r3 /*get third longword from table */ cmpl r3,$0xddeeff00 /*which is 0xddeeff00 */ beql 5f er5: movpsl r5 movl $4,r2 /*error code*/ movl $0xddeeff00,r4 /*expected data; r3 = observed */ jmp *badrtn /*display error */ 5: movl $0,r2 /*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 12 .align 2 .long data_table .space 13 .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.