File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / entry / autodi_mode.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


/*		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




unix.superglobalmegacorp.com

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