|
|
Power 6/32 Unix version 1.2b
/* AUTOINCREMENT DEFERRED 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 _aincd_mode _aincd_mode: callf $4,_setjmp /* save context for error return */ movl $tloc3,i1 /* initialize test data for loop */ movl $tloc2,i2 /* initialize test data for loop */ movl $tloc2,i3 /* initialize test data for loop */ movl $tloc1,i4 /* initialize test data for loop */ movab _aincd_mode,_stpc /* save subtest pc */ movl $1,_no_opr /* number of operands used */ movl $1,_subtst /* subtest number */ movl spb16,_opr /* test operand */ 0: bicpsw $PSWMASK movl spb16,sp movl *(sp)+,r3 cmpl r3,$0xddeeff00 beql 1f er1: bbs $0,_scoplp,0b /* tight loop for scope if set */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data read */ movl $0xddeeff00,_expected /* expected data */ jmp *badrtn /*display error */ /*auto inc def mode did not fetch right */ /* byte */ 1: bbs $0,_force_lp,0b /* if set loop on subtest */ 1: callf $4,_setjmp /* save context for error return */ movab 1b,_stpc /* save subtest pc */ movl $2,_subtst /* subtest number */ movl spb12,_opr /* test operand */ 0: movab (sp),r3 cmpl r3,spb12 beql 2f er2: bbs $0,_scoplp,0b /* tight loop for scope if set */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data read */ movl spb12,_expected /* expected data */ jmp *badrtn /*display error */ /*auto inc def mode did not increment */ /*sp properly */ 2: bbs $0,_force_lp,0b /* if set loop on subtest */ 2: callf $4,_setjmp /* save context for error return */ movab 2b,_stpc /* save subtest pc */ movl $3,_subtst /* subtest number */ movl $0xffff99aa,_opr /* test operand */ 0: clrl r3 movw *(sp)+,r3 cmpl r3,$0xffff99aa beql 3f er3: bbs $0,_scoplp,0b /* tight loop for scope if set */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data read */ movl $0xffff99aa,_expected /* expected data */ jmp *badrtn /*display error */ /*auto inc def mode did not fetch right */ /* byte */ 3: bbs $0,_force_lp,0b /* if set loop on subtest */ 3: callf $4,_setjmp /* save context for error return */ movab 3b,_stpc /* save subtest pc */ movl $4,_subtst /* subtest number */ movl spb8,_opr /* test operand */ 0: movab (sp),r3 cmpl r3,spb8 beql 4f er4: bbs $0,_scoplp,0b /* tight loop for scope if set */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data read */ movl spb8,_expected /* expected data */ jmp *badrtn /*display error */ /*auto inc def mode did not increment */ /*sp properly */ 4: bbs $0,_force_lp,0b /* if set loop on subtest */ 4: callf $4,_setjmp /* save context for error return */ movab 4b,_stpc /* save subtest pc */ movl $5,_subtst /* subtest number */ movl $0xffffff99,_opr /* test operand */ 0: clrl r3 movb *(sp)+,r3 cmpl r3,$0xffffff99 beql 5f er5: bbs $0,_scoplp,0b /* tight loop for scope if set */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data read */ movl $0xffffff99,_expected /* expected data */ jmp *badrtn /*display error */ /*auto inc def mode did not fetch right */ /* byte */ 5: bbs $0,_force_lp,0b /* if set loop on subtest */ 5: callf $4,_setjmp /* save context for error return */ movab 5b,_stpc /* save subtest pc */ movl $6,_subtst /* subtest number */ movl $spb4,_opr /* test operand */ 0: movab (sp),r3 cmpl r3,spb4 beql 6f er6: bbs $0,_scoplp,0b /* tight loop for scope if set */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data read */ movl spb4,_expected /* expected data */ jmp *badrtn /*display error */ /*auto inc def mode did not increment */ /*sp properly */ /*autoincrementdeferred addressing mode*/ /*in second operand */ 6: bbs $0,_force_lp,0b /* if set loop on subtest */ movl $0,_ercode /*no error*/ jmp *return /*end of test*/ /* Variables */ .align 2 tloc: .fill 1,4,0x11223344 tloc1: .fill 1,4,0x55667788 tloc2: .fill 1,4,0x99aabbcc tloc3: .fill 1,4,0xddeeff00 .align 2 splimit: .space 100 .align 2 i1: .long tloc3 i2: .long tloc2 i3: .long tloc2 i4: .long tloc1 spbase: .long tloc spb: .long spbase spb1: .long spbase - 1 spb2: .long spbase - 2 spb3: .long spbase - 3 spb4: .long spbase - 4 spb5: .long spbase - 5 spb6: .long spbase - 6 spb7: .long spbase - 7 spb8: .long spbase - 8 spb9: .long spbase - 9 spb10: .long spbase - 10 spb11: .long spbase - 11 spb12: .long spbase - 12 spb13: .long spbase - 13 spb14: .long spbase - 14 spb15: .long spbase - 15 spb16: .long spbase - 16 spb17: .long spbase - 17 spb18: .long spbase - 18 spb19: .long spbase - 19 /* End of file */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.