|
|
Power 6/32 Unix version 1.2b
/* AUTODECREMENT/INCREMENT 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 _adec_mode _adec_mode: callf $4,_setjmp /* save context for error return */ movab _adec_mode,_stpc /* save subtest pc */ movl $1,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl spb4,_opr /* test operand */ 0: movl $0x11223344,spbase-4 movl $0x55667788,spbase-8 movl $0x99aabbcc,spbase-12 movl $0xddeeff00,spbase-16 bicpsw $PSWMASK movl spb,sp /* sp = stack base */ movl $-1,r3 movl r3,-(sp) movab (sp),r3 cmpl r3,spb4 /*check sp = oldsp - 4 */ beql 8f er8: bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $1,_ercode /*error code*/ movl r3,_actual /* actual data */ movl spb4,_expected /*expected */ jmp *badrtn /*display error */ /*sp not decremented by 4 on-(sp) mode */ 8: cmpl $-1,(sp) beql 9f er9: bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $3,_ercode /* error code operand modified */ movl (sp),_actual /* actual data */ movl $-1,_expected /*expected */ jmp *badrtn /*-(sp) did not push correct value on stack*/ 9: bbs $0,_force_lp,0b /* if set loop on subtest */ 9: callf $4,_setjmp /* save context for error return */ movab 9b,_stpc /* save subtest pc */ movl $2,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl spb16,_opr /* test operand */ 0: movl $1,-(sp) movl $2,-(sp) movl $3,-(sp) movab (sp),r3 cmpl r3,spb16 beql 1f bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $1,_ercode /* error code data miscompare */ movl (sp),_actual /* actual data */ movl $spb16,_expected /*expected */ jmp *badrtn /*sp not decremented by 12 after 3 pushes*/ 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 $3,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl $3,_opr /* test operand */ 0: movl $3,r4 movl (sp)+,r3 cmpl r3,r4 beql 1f bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl $3,_expected /*expected */ jmp *badrtn /*-(sp) did not push correct value*/ /*or (sp)+ did not pop correct value*/ 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 $4,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl spb12,_opr /* test operand */ 0: movl spb12,r4 movab (sp),r3 cmpl r3,r4 beql 1f bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl spb12,_expected /*expected */ jmp *badrtn /*sp not incremented properly in (sp)+ mode*/ 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 $5,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl $2,_opr /* test operand */ 0: movl $2,r4 movl (sp)+,r3 cmpl r3,r4 beql 1f bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl $2,_expected /*expected */ jmp *badrtn /*-(sp) did not push correct value*/ /*or (sp)+ did not pop correct value*/ 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 $6,_subtst /* subtest number */ movl $1,_no_opr /* number of operands in use */ movl spb8,_opr /* test operand */ 0: movl spb8,r4 movab (sp),r3 cmpl r3,r4 beql 1f bbs $0,_scoplp,0b /* tight loop for scope loop */ movl $1,_ercode /* error code data miscompare */ movl r3,_actual /* actual data */ movl spb8,_expected /*expected */ jmp *badrtn /*sp not incremented properly in (sp)+ mode*/ 1: bbs $0,_force_lp,0b /* if set loop on subtest */ movl $0,_ercode /*no error*/ jmp *return /*end of test - goto monitor */ /* Variables */ /* */ /* */ .align 2 splimit: .space 100 .align 2 .fill 1,4,0xddeeff00 .fill 1,4,0x99aabbcc .fill 1,4,0x55667788 .fill 1,4,0x11223344 .align 2 spbase: .space 4 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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.