File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / entry / loadr.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:19 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v12b, v121, HEAD
Power 6/32 Unix version 1.2b

/*	This program tests the instruction LOADR.	*/
#	R2 : error code
#	     1 = error in flags
#	     2 = mask operand changed
#	     3 = register did not get loaded correctly

	.set	N,8
	.set	Z,4
	.set	V,2
	.set	C,1
	
	.globl	_loadr
_loadr:
	callf	$4,_setjmp	/* save context for return from error */
	movab	_loadr,_stpc	/* save subtest starting address */
	movl	$1,_subtst	/* subtest number */
	movl	$1,_no_opr	/* number of operands in use */
	movl	$0,_opr		/* first operand */
0:	movl	$0xffffffff,r0		/* load r0 - r13 with known data */
	movl	r0,r1
	movl	r1,r2
	movl	r2,r3
	movl	r3,r4
	movl	r4,r5
	movl	r5,r6
	movl	r6,r7
	movl	r7,r8
	movl	r8,r9
	movl	r9,r10
	movl	r10,r11
	movl	r11,r12
	movl	r12,r13

	movl	$0,mask		/* set mask */
	bicpsw	$(Z|V)		/* clear z,v flags      		*/
	bispsw  $(N|C)		/* set n,c flag		*/
	loadr	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 = psl MAYBE it is incorrect */
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$2,_ercode	/* error 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 was changed */
	movl	mask,_actual	/* actual data */
	movl	$0,_expected	/* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r0
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r0,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r1
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r1,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r2
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r2,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r3
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r3,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r4
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r4,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r5
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r5,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r6
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r6,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r7
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r7,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r8
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r8,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r9
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r9,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r10
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r10,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r11
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r11,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r12
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r12,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r13
	jeql	next
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r13,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn

next:
	bbs	$0,_force_lp,0b	/* if set loop on last subtest */
al2:	callf	$4,_setjmp	/* save context for return from error */
	movab	al2,_stpc	/* save subtest starting address */
	movl	$2,_subtst	/* subtest number */
	movl	$1,_no_opr	/* number of operands in use */
	movl	$0x2ad5,_opr		/* first operand */
0:	movw	$0x2ad5,mask	/* Set mask to load r0,r2,r4,r6,r7,r9,r11,r13 */
	movw	mask,r10	/* use a register to contain mask */
	bicpsw	$(Z|V|N|C)	/* clear all flags      		*/
	loadr	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 = psl MAYBE it is incorrect */
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$2,_ercode	/* error code flag failure */
	jmp	*badrtn

1:	cmpl	$0x2ad5,r10
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$3,_ercode	/* error code operand was changed */
	movl	r10,_actual	/* actual data */
	movl	$0x2ad5,_expected	/* expected data */
	jmp	*badrtn
1:	cmpl	$0,r0		/* 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	r0,_actual	/* actual data */
	movl	$0,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r1
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r1,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x11111111,r2
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r2,_actual	/* actual data */
	movl	$0x11111111,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r3
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r3,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x22222222,r4
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r4,_actual	/* actual data */
	movl	$0x22222222,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r5
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r5,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x33333333,r6
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r6,_actual	/* actual data */
	movl	$0x33333333,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x44444444,r7
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r7,_actual	/* actual data */
	movl	$0x44444444,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r8
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r8,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x55555555,r9
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r9,_actual	/* actual data */
	movl	$0x55555555,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x66666666,r11
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r11,_actual	/* actual data */
	movl	$0x66666666,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xffffffff,r12
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r12,_actual	/* actual data */
	movl	$0xffffffff,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x77777777,r13
	jeql	next1
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r13,_actual	/* actual data */
	movl	$0x77777777,_expected /* expected data */
	jmp	*badrtn
	
next1:
	bbs	$0,_force_lp,0b	/* if set loop on last subtest */
al3:	callf	$4,_setjmp	/* save context for return from error */
	movab	al3,_stpc	/* save subtest starting address */
	movl	$3,_subtst	/* subtest number */
	movl	$1,_no_opr	/* number of operands in use */
	movl	$0x3fff,_opr		/* first operand */
0:	movl	$0xffffffff,r0		/* load r0 - r13 with known data */
	movl	r0,r1
	movl	r1,r2
	movl	r2,r3
	movl	r3,r4
	movl	r4,r5
	movl	r5,r6
	movl	r6,r7
	movl	r7,r8
	movl	r8,r9
	movl	r9,r10
	movl	r10,r11
	movl	r11,r12
	movl	r12,r13

	movw	$0x3fff,mask	/* Set mask to load all registers */
	bicpsw	$(Z|V|N|C)	/* clear all flags      		*/
	loadr	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 = psl MAYBE it is incorrect */
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$2,_ercode	/* error 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 was changed */
	movl	mask,_actual	/* actual data */
	movl	$0x3fff0000,_expected	/* expected data */
	jmp	*badrtn
1:	cmpl	$0,r0		/* 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	r0,_actual	/* actual data */
	movl	$0,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x11111111,r1
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r1,_actual	/* actual data */
	movl	$0x11111111,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x22222222,r2
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r2,_actual	/* actual data */
	movl	$0x22222222,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x33333333,r3
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r3,_actual	/* actual data */
	movl	$0x33333333,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x44444444,r4
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r4,_actual	/* actual data */
	movl	$0x44444444,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x55555555,r5
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r5,_actual	/* actual data */
	movl	$0x55555555,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x66666666,r6
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r6,_actual	/* actual data */
	movl	$0x66666666,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x77777777,r7
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r7,_actual	/* actual data */
	movl	$0x77777777,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x88888888,r8
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r8,_actual	/* actual data */
	movl	$0x88888888,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0x99999999,r9
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r9,_actual	/* actual data */
	movl	$0x99999999,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xaaaaaaaa,r10
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r10,_actual	/* actual data */
	movl	$0xaaaaaaaa,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xbbbbbbbb,r11
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r11,_actual	/* actual data */
	movl	$0xbbbbbbbb,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xcccccccc,r12
	jeql	1f
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r12,_actual	/* actual data */
	movl	$0xcccccccc,_expected /* expected data */
	jmp	*badrtn
1:	cmpl	$0xdddddddd,r13
	jeql	aldn
	bbs	$0,_scoplp,0b	/* if set scope loop on error */
	movl	$1,_ercode	/* error code data miscompare */
	movl	r13,_actual	/* actual data */
	movl	$0xdddddddd,_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	0
l1:	.long	0x11111111
l2:	.long	0x22222222
l3:	.long	0x33333333
l4:	.long	0x44444444
l5:	.long	0x55555555
l6:	.long	0x66666666
l7:	.long	0x77777777
l8:	.long	0x88888888
l9:	.long	0x99999999
l10:	.long	0xaaaaaaaa
l11:	.long	0xbbbbbbbb
l12:	.long	0xcccccccc
l13:	.long	0xdddddddd
	.long	0xabababab
where:	.long	0

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.