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


/*	BYTE DISPLACEMENT 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	_bdisp_mode
_bdisp_mode:
	callf	$4,_setjmp		/* save context for error return */
	movab	_bdisp_mode,_stpc	/* save subtest pc */
	movl	$1,_subtst		/* subttest number */
	movl	$1,_no_opr		/* number of operands */
	movl	bb1,_opr		/* operand used in test */
0:	bicpsw	$PSWMASK
	movl	bb1,r3			/*move address of label bbase1	*/
	movb	$0x55,b^127(r3)		/*change byte 127 of bbase1	*/
	cmpl	bbasel,$0xffffff55	/*see if it happened		*/
	beql	1f
er1:
	bbs	$0,_scoplp,0b		/* if set tight loop for scope */
	movl	$1,_ercode			/*error code*/
	movl	bbasel,_actual		/*observed*/
	movl	$0xffffff55,_expected	/*expected*/
	jmp	*badrtn				/*byte disp mode did not change	*/
					/*right byte			*/
1:	cmpl	r3,bb1			/*check r3 did not changed	*/
	beql	2f
er2:
	bbs	$0,_scoplp,0b		/* if set tight loop for scope */
	movl	$3,_ercode		/*error code operand miscompare */
	movl	r3,_actual		/*observed*/
	movl	bb1,_expected		/*expected*/
	jmp	*badrtn			/*byte disp mode changed the base*/
					/*which was r3; r3 = changed base*/
					/*r4 = original base loaded in r3*/
2:	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
2:	callf	$4,_setjmp		/* save context for error return */
	movab	2b,_stpc		/* save subtest pc */
	movl	$2,_subtst		/* subttest number */
	movl	$1,_no_opr		/* number of operands */
	movl	r3,_opr			/* operand used in test */
0:	movb	b^1(r3),b^126(r3)
	cmpl	bbasel,$0xffff2255
	beql	3f
er3:
	bbs	$0,_scoplp,0b		/* if set tight loop for scope */
	movl	$1,_ercode		/*error code - data miscompare */
	movl	bbase1,_actual		/*observed*/
	movl	$0xffff2255,_expected	/*expected*/
	jmp	*badrtn				/*byte disp mode did not change	*/
					/*right byte			*/
3:	cmpl	r3,bb1
	beql	4f
er4:
	bbs	$0,_scoplp,0b		/* if set tight loop for scope */
	movl	$3,_ercode		/*error code operand miscompare */
	movl	r3,_actual		/*observed*/
	movl	bb1,_expected		/*expected*/
	jmp	*badrtn				/*byte disp mode changed the base*/
					/*which was r3; r3 = changed base*/
					/*r4 = original base loaded in r3*/
4:	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
4:	callf	$4,_setjmp		/* save context for error return */
	movab	4b,_stpc		/* save subtest pc */
	movl	$3,_subtst		/* subttest number */
	movl	$1,_no_opr		/* number of operands */
	movl	r3,_opr			/* operand used in test */
0:	movb	2(r3),125(r3)
	cmpl	bbasel,$0xff112255
	beql	5f
er5:
	bbs	$0,_scoplp,0b		/* if set tight loop for scope */
	movl	$1,_ercode		/*error code - data miscompare */
	movl	bbase1,_actual		/*observed*/
	movl	$0xff112255,_expected	/*expected*/
	jmp	*badrtn				/*byte disp mode did not change	*/
					/*right byte			*/
5:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
	movl	$0,_ercode		/*no error*/
	movl	$0x33221100,bbase1
	movl	$0xaaaaaaaa,bbase2
	movl	$0xbbbbbbbb,bbase3
	movl	$0xffffffff,bbasel
	jmp	*return
					/*end of test - goto monitor	*/



/*	Variables							*/
	.align	2
bbase1:	.fill	1,4,0x33221100		/*relative location 0*/
bbase2:	.fill	1,4,0xaaaaaaaa		/*rl 4			*/
bbase3:	.fill	1,4,0xbbbbbbbb		/*rl 8			*/
	.space	112
bbasel:	.fill	1,4,0xffffffff		/*rl 124		*/

bb1:	.long	bbase1
bbl:	.long	bbasel


unix.superglobalmegacorp.com

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