|
|
Power 6/32 Unix version 1.2b
/* (BYTE, WORD, LONGWORD) DISPLACEMENT 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: movl $1,r1 /* subtest number */ movl base_add,r3 /*base of the address_table*/ movl *b^4(r3),r4 /*byte disp deferred mode*/ cmpl r4,$0x33221100 beql 1f er1: movl $1,r2 /*error code*/ movl bbase1,r3 /*expected; r4 = observed*/ jmp *badrtn /*byte disp def mode did not move right value */ 1: movl $2,r1 /* subtest number */ movl $0x55555555,r4 movl r4,*b^4(r3) cmpl bbase1,$0x55555555 /*this is the actual location */ /*changed by the previous inst */ beql 2f er2: movl $2,r2 /*error code*/ movl bbase1,r3 /*observed; r4 = expected*/ jmp *badrtn /*byte disp def mode did not move right value */ 2: movl $3,r1 /* subtest number */ movl base_add,r3 /*base of the address_table*/ movl *w^32012(r3),r4 /*word disp deferred mode*/ cmpl r4,$0xaaaaaaaa beql 3f er3: movl $3,r2 /*error code*/ movl bbase2,r3 /*expected; r4 = observed*/ jmp *badrtn /*byte disp def mode did not move right value */ 3: movl $4,r1 /* subtest number */ movl $0x55555555,r4 movl r4,*w^32012(r3) cmpl bbase2,$0x55555555 /*this is the actual location */ /*changed by the previous inst */ beql 4f er4: movl $4,r2 /*error code*/ movl bbase2,r3 /*observed; r4 = expected*/ jmp *badrtn /*byte disp def mode did not move right value */ 4: movl $5,r1 /* subtest number */ movl base_add,r3 /*base of the address_table*/ movl *l^64020(r3),r4 /*longword disp deferred mode*/ cmpl r4,$0xbbbbbbbb beql 5f er5: movl $5,r2 /*error code*/ movl bbase3,r3 /*expected; r2 = observed*/ jmp *badrtn /*byte disp def mode did not move right value */ 5: movl $6,r1 /* subtest number */ movl $0x55555555,r4 movl r4,*l^64020(r3) cmpl bbase3,$0x55555555 /*this is the actual location */ /*changed by the previous inst */ beql 6f er6: movl $6,r2 /*error code*/ movl bbase3,r3 /*observed; r2 = expected*/ jmp *badrtn /*byte disp def mode did not move right value */ 6: movl $0,r2 /*no error*/ movl $0x33221100,bbase1 movl $0xaaaaaaaa,bbase2 movl $0xbbbbbbbb,bbase3 jmp *return /*end of test */ /* Variables */ .align 2 bbase1: .fill 1,4,0x33221100 /*relative location 0*/ bbase2: .fill 1,4,0xaaaaaaaa /*rl 4 */ bbase3: .fill 1,4,0xbbbbbbbb /*rl 8 */ .space 112 bbasel: .fill 1,4,0xffffffff /*rl 124 */ bb1: .long bbase1 bbl: .long bbasel /*address table */ .align 2 add_table: .space 4 .align 2 .long bbase1 /* relative location 4 */ .space 32002 .align 2 .long bbase2 /*relative location 32012 */ .space 32003 .align 2 .long bbase3 /*relative location 64020 */ 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.