|
|
Power 6/32 Unix version 1.2b
/* This program tests the instruction STORER */ # R2 = error code # 1 = error in flags # 2 = register did not get stored correctly # 3 = storer stored more than expected # .set N,8 .set Z,4 .set V,2 .set C,1 .globl _storer _storer: callf $4,_setjmp /* save context for error return */ movab _storer,_stpc /* starting address of subtest */ movl $1,_subtst /* indicate which subtest */ movl $1,_no_opr /* number of operands in use */ movl $0,_opr /* first operand */ 0: movl $0,r0 /* load r0 - r14 with known data */ movl $0x11111111,r1 movl $0x22222222,r2 movl $0x33333333,r3 movl $0x44444444,r4 movl $0x55555555,r5 movl $0x66666666,r6 movl $0x77777777,r7 movl $0x88888888,r8 movl $0x99999999,r9 movl $0xaaaaaaaa,r10 movl $0xbbbbbbbb,r11 movl $0xcccccccc,r12 movl $0xdddddddd,r13 movl $0,mask /* set mask */ movl $0xffffffff,l0 /* init memory */ movl $0xffffffff,l1 /* init memory */ movl $0xffffffff,l2 /* init memory */ movl $0xffffffff,l3 /* init memory */ movl $0xffffffff,l4 /* init memory */ movl $0xffffffff,l5 /* init memory */ movl $0xffffffff,l6 /* init memory */ movl $0xffffffff,l7 /* init memory */ movl $0xffffffff,l8 /* init memory */ movl $0xffffffff,l9 /* init memory */ movl $0xffffffff,l10 /* init memory */ movl $0xffffffff,l11 /* init memory */ movl $0xffffffff,l12 /* init memory */ movl $0xffffffff,l13 /* init memory */ movl $0xabababab,l14 /* init memory */ bicpsw $(Z|V) /* clear z,v flags */ bispsw $(N|C) /* set n,c flag */ storer mask,l0 /* this is the tested instruction */ jeql error0 /* error if Z set */ jvs error0 /* error if V set */ jgeq error0 /* error if N not set */ jcc error0 /* error if C not set */ jmp 1f error0: movpsl _actual /* actual = ps maybe incorrect */ bbs $0,_scoplp,0b /* if set scope loop on error */ movl $2,_ercode /* werror code flag failure */ jmp *badrtn 1: cmpl $0,mask /* check if mask changed */ jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /* error code operand miscompare */ movl mask,_actual /* actaul data */ movl $0,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l0 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l0,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l1 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l1,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l2 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l2,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l3 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l3,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l4 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l4,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l5 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l5,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l6 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l6,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l7 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l7,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l8 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l8,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l9 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l9,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l10 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l10,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l11 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l11,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l12 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l12,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l13 jeql next bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l13,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn next: bbs $0,_force_lp,0b /* if set loop on last subtest */ as2: callf $4,_setjmp /* save context for error return */ movab as2,_stpc /* starting address of subtest */ movl $2,_subtst /* indicate which subtest */ movl $1,_no_opr /* number of operands in use */ movl $0x2ad5,_opr /* first operand */ 0: movw $0x2ad5,mask /* Set mask to store r0,r2,r4,r6,r7,r9,r11,r13 */ movw mask,r10 /* load mask value into r10 */ bicpsw $(Z|V|N|C) /* clear all flags */ storer r10,l0 /* this is the tested instruction */ jeql error1 /* error if Z set */ jvs error1 /* error if V set */ jlss error1 /* error if N set */ jcs error1 /* error if C set */ jmp 1f error1: movpsl _actual /* actual = ps maybe incorrect */ bbs $0,_scoplp,0b /* if set scope loop on error */ movl $2,_ercode /* werror code flag failure */ jmp *badrtn 1: cmpl $0x00002ad5,r10 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl r10,_actual /* actaul data */ movl $0x00002ad5,_expected /* expected data */ jmp *badrtn 1: cmpl $0,l0 /* Check if registers is stored correctly */ jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l0,_actual /* actaul data */ movl $0,_expected /* expected data */ jmp *badrtn 1: cmpl $0x22222222,l1 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l1,_actual /* actaul data */ movl $0x22222222,_expected /* expected data */ jmp *badrtn 1: cmpl $0x44444444,l2 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l2,_actual /* actaul data */ movl $0x44444444,_expected /* expected data */ jmp *badrtn 1: cmpl $0x66666666,l3 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l3,_actual /* actaul data */ movl $0x66666666,_expected /* expected data */ jmp *badrtn 1: cmpl $0x77777777,l4 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l4,_actual /* actaul data */ movl $0x77777777,_expected /* expected data */ jmp *badrtn 1: cmpl $0x99999999,l5 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l5,_actual /* actaul data */ movl $0x99999999,_expected /* expected data */ jmp *badrtn 1: cmpl $0xbbbbbbbb,l6 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l6,_actual /* actaul data */ movl $0xbbbbbbbb,_expected /* expected data */ jmp *badrtn 1: cmpl $0xdddddddd,l7 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l7,_actual /* actaul data */ movl $0xdddddddd,_expected /* expected data */ jmp *badrtn 1: cmpl $0xffffffff,l8 jeql next1 bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l8,_actual /* actaul data */ movl $0xffffffff,_expected /* expected data */ jmp *badrtn next1: bbs $0,_force_lp,0b /* if set loop on last subtest */ as3: callf $4,_setjmp /* save context for error return */ movab as3,_stpc /* starting address of subtest */ movl $3,_subtst /* indicate which subtest */ movl $1,_no_opr /* number of operands in use */ movl $0x3ffff,_opr /* first operand */ 0: movl $0xffffffff,l0 /* load l0 - l13 with known data */ movl l0,l1 movl l1,l2 movl l2,l3 movl l3,l4 movl l4,l5 movl l5,l6 movl l6,l7 movl l7,l8 movl l8,l9 movl l9,l10 movl l10,l11 movl l11,l12 movl l12,l13 movl $0xaaaaaaaa,r10 /* restore value in register r10 */ movw $0x3fff,mask /* Set mask to store all registers */ bicpsw $(Z|V|N|C) /* clear all flags */ storer mask,l0 /* this is the tested instruction */ jeql error2 /* error if Z set */ jvs error2 /* error if V set */ jlss error2 /* error if N set */ jcs error2 /* error if C set */ jmp 1f error2: movpsl _actual /* actual = ps maybe incorrect */ bbs $0,_scoplp,0b /* if set scope loop on error */ movl $2,_ercode /* werror code flag failure */ jmp *badrtn 1: cmpl $0x3fff0000,mask jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $3,_ercode /* error code operand miscompare */ movl mask,_actual /* actaul data */ movl $0x3fff0000,_expected /* expected data */ jmp *badrtn 1: cmpl $0,l0 /* Check if registers loaded correctly */ jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l0,_actual /* actaul data */ movl $0,_expected /* expected data */ jmp *badrtn 1: cmpl $0x11111111,l1 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l1,_actual /* actaul data */ movl $0x11111111,_expected /* expected data */ jmp *badrtn 1: cmpl $0x22222222,l2 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l2,_actual /* actaul data */ movl $0x22222222,_expected /* expected data */ jmp *badrtn 1: cmpl $0x33333333,l3 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l3,_actual /* actaul data */ movl $0x33333333,_expected /* expected data */ jmp *badrtn 1: cmpl $0x44444444,l4 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l4,_actual /* actaul data */ movl $0x44444444,_expected /* expected data */ jmp *badrtn 1: cmpl $0x55555555,l5 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l5,_actual /* actaul data */ movl $0x55555555,_expected /* expected data */ jmp *badrtn 1: cmpl $0x66666666,l6 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l6,_actual /* actaul data */ movl $0x66666666,_expected /* expected data */ jmp *badrtn 1: cmpl $0x77777777,l7 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l7,_actual /* actaul data */ movl $0x77777777,_expected /* expected data */ jmp *badrtn 1: cmpl $0x88888888,l8 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l8,_actual /* actaul data */ movl $0x88888888,_expected /* expected data */ jmp *badrtn 1: cmpl $0x99999999,l9 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l9,_actual /* actaul data */ movl $0x99999999,_expected /* expected data */ jmp *badrtn 1: cmpl $0xaaaaaaaa,l10 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l10,_actual /* actaul data */ movl $0xaaaaaaaa,_expected /* expected data */ jmp *badrtn 1: cmpl $0xbbbbbbbb,l11 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l11,_actual /* actaul data */ movl $0xbbbbbbbb,_expected /* expected data */ jmp *badrtn 1: cmpl $0xcccccccc,l12 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l12,_actual /* actaul data */ movl $0xcccccccc,_expected /* expected data */ jmp *badrtn 1: cmpl $0xdddddddd,l13 jeql 1f bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l13,_actual /* actaul data */ movl $0xdddddddd,_expected /* expected data */ jmp *badrtn 1: cmpl $0xabababab,l14 /* check mark at end */ jeql aldn bbs $0,_scoplp,0b /* if set scope loop on error */ movl $1,_ercode /* error code data miscompare */ movl l14,_actual /* actaul data */ movl $0xabababab,_expected /* expected data */ jmp *badrtn aldn: bbs $0,_force_lp,0b /* if set loop on last subtest */ jmp *return /* data space */ .align 2 mask: .long 0 l0: .long 0xffffffff l1: .long 0xffffffff l2: .long 0xffffffff l3: .long 0xffffffff l4: .long 0xffffffff l5: .long 0xffffffff l6: .long 0xffffffff l7: .long 0xffffffff l8: .long 0xffffffff l9: .long 0xffffffff l10: .long 0xffffffff l11: .long 0xffffffff l12: .long 0xffffffff l13: .long 0xffffffff l14: .long 0xabababab where: .long 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.