File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / entry / comb_disp.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,WORD,LONGWORD) DISPLACEMENT DEFERED ADDRESSING MODES 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	_dispd_mode
_dispd_mode:
	callf	$4,_setjmp		/* save context */
	movab	_dispd_mode,_stpc	/* save pc of subtest start */
	movl	$1,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
	movl	base_add,_opr		/* first operand */
0:	movl	base_add,r3			/*base of the address_table*/
	movl	*b^4(r3),r4			/*byte disp deferred mode*/
	cmpl	r4,$0x33221100
	beql	1f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	r4,_actual		/* actual data */
	movl	$0x33221100,_expected	/*expected data*/
	jmp	*badrtn

1:	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
1:	callf	$4,_setjmp		/* save context */
	movab	1b,_stpc	/* save pc of subtest start */
	movl	$2,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movl	$0x55555555,r4
	movl	r4,*b^4(r3)
	cmpl	bbase1,$0x55555555	/*this is the actual location	*/
	beql	2f			/* changed by the previous inst. */
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	bbase1,_actual		/* actual data */
	movl	$0x55555555,_expected	/*expected data*/
	jmp	*badrtn
2:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
2:	callf	$4,_setjmp		/* save context */
	movab	2b,_stpc	/* save pc of subtest start */
	movl	$3,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movl	$0x33221100,bbase1		/* Restore original value */
	movl	*w^32012(r3),r4			/*word disp deferred mode*/
	cmpl	r4,$0xaaaaaaaa
	beql	3f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	r4,_actual		/* actual data */
	movl	$0xaaaaaaaa,_expected	/*expected data*/
	jmp	*badrtn		/*byte disp def mode did not move right value*/	
3:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
3:	callf	$4,_setjmp		/* save context */
	movab	3b,_stpc	/* save pc of subtest start */
	movl	$4,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movl	$0x55555555,r4
	movl	r4,*w^32012(r3)
	cmpl	bbase2,$0x55555555	/*this is the actual location	*/
	beql	4f			/* changed by the previous inst. */
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	bbase2,_actual		/* actual data */
	movl	$0x55555555,_expected	/*expected data*/
	jmp	*badrtn		/*byte disp def mode did not move right value*/	
4:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
4:	callf	$4,_setjmp		/* save context */
	movab	4b,_stpc	/* save pc of subtest start */
	movl	$5,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movl	$0xaaaaaaaa,bbase2		/* Restore original value */
	movl	$0xbbbbbbbb,bbase3	/* rload bbase3 changed by subtst 5*/
	movl	*l^66020(r3),r4			/*longword disp deferred mode*/
	cmpl	r4,$0xbbbbbbbb
	beql	5f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	r4,_actual		/* actual data */
	movl	$0xbbbbbbbb,_expected	/*expected data*/
	jmp	*badrtn		/*byte disp def mode did not move right value*/	
5:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
5:	callf	$4,_setjmp		/* save context */
	movab	5b,_stpc	/* save pc of subtest start */
	movl	$6,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movl	$0x55555555,r4
	movl	r4,*l^66020(r3)
	cmpl	bbase3,$0x55555555	/*this is the actual location	*/
	beql	6f			/* changed by the previous inst. */
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	bbase3,_actual		/* actual data */
	movl	$0x55555555,_expected	/*expected data*/
	jmp	*badrtn	/*byte disp def mode did not move right value	*/	
6:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
	movl	$0,r2			/*no error*/
	jmp	*return			/*end of test			*/
#
#
#
/*	LONGWORD  DISPLACEMENT ADDRESSING MODE TEST			*/
/*									*/
/*									*/
/*									*/

	.globl	_ldisp_mode
_ldisp_mode:
	callf	$4,_setjmp		/* save context */
	movab	_ldisp_mode,_stpc	/* save pc of subtest start */
	movl	$1,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
	movl	base_add,_opr		/* first operand */
0:	movl	base_add,r3		/*move address of label bbase1	*/
	movl	$0xffffffff,lbasel	/* initialize data changed by tst */
	movb	$0x55,l^65539(r3)	/*change byte 127 of bbase1	*/
	cmpl	lbasel,$0xffffff55	/*see if it happened		*/
	beql	1f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	lbasel,_actual		/* actual data */
	movl	$0xffffff55,_expected	/*expected data*/
	jmp	*badrtn			/*longword disp mode did not 	*/
1:
	cmpl	r3,$add_table		/*check r3 did not changed	*/
	beql	2f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$3,_ercode		/*error code operand was changed*/
	movl	r3,_actual		/* actual data */
	movl	$add_table,_expected	/*expected data*/
	jmp	*badrtn			/*longword disp changed base in r1*/
2:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
2:	callf	$4,_setjmp		/* save context */
	movab	2b,_stpc	/* save pc of subtest start */
	movl	$2,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movb	l^32768(r3),l^65538(r3)
	cmpl	lbasel,$0xffff1155
	beql	3f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode			/*error code data miscompare*/
	movl	lbasel,_actual		/* actual data */
	movl	$0xffff1155,_expected	/*expected data*/
	jmp	*badrtn			/*longword disp mode did not 	*/
					/*changed byte correctly	*/
3:
	cmpl	r3,$add_table
	beql	4f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$3,_ercode		/*error code operand was changed*/
	movl	r3,_actual		/* actual data */
	movl	$add_table,_expected	/*expected data*/
	jmp	*badrtn			/*longword disp changed base in r1*/
4:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
4:	callf	$4,_setjmp		/* save context */
	movab	4b,_stpc	/* save pc of subtest start */
	movl	$3,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movb	l^32770(r3),l^65537(r3)
	cmpl	lbasel,$0xff111155
	beql	5f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode		/*error code data miscompare*/
	movl	lbasel,_actual		/* actual data */
	movl	$0xff111155,_expected	/*expected data*/
	jmp	*badrtn			/*longword disp mode did not 	*/
					/*changed byte correctly	*/
5:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
	jmp	*return			/*end of test - goto monitor	*/
#
#
#
/*	WORD DISPLACEMENT ADDRESSING MODE TEST				*/
/*									*/
/*									*/
/*									*/
	.globl	_wdisp_mode
_wdisp_mode:
	callf	$4,_setjmp		/* save context */
	movab	_wdisp_mode,_stpc	/* save pc of subtest start */
	movl	$1,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
	movl	base_add,_opr			/* first operand */
0:	movl	base_add,r3		/*move address of label bbase1	*/
	movl	$0xffffffff,wbasel	/* initialize wbasel */
	movb	$0x55,w^32767(r3)	/*change byte 32767 of bbase1	*/
	cmpl	wbasel,$0xffffff55	/*see if it happened		*/
	beql	1f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode		/*error code data miscompare*/
	movl	wbasel,_actual		/* actual data */
	movl	$0xffffff55,_expected	/*expected data*/
	jmp	*badrtn		/* Word disp mode did not move right byte */
1:
	cmpl	r3,$add_table		/*check r3 did not changed	*/
	beql	2f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$3,_ercode		/*error code operand was changed*/
	movl	r3,_actual		/* actual data */
	movl	$add_table,_expected	/*expected data*/
	jmp	*badrtn		/* Word disp mode changed base */
2:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
2:	callf	$4,_setjmp		/* save context */
	movab	2b,_stpc	/* save pc of subtest start */
	movl	$2,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movb	w^134(r3),w^32766(r3)
	cmpl	wbasel,$0xffff0055
	beql	3f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode		/*error code data miscompare*/
	movl	wbasel,_actual		/* actual data */
	movl	$0xffff0055,_expected	/*expected data*/
	jmp	*badrtn		/* Word disp mode did not move right byte */
3:
	cmpl	r3,$add_table
	beql	4f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$3,_ercode		/*error code operand was changed*/
	movl	r3,_actual		/* actual data */
	movl	$add_table,_expected	/*expected data*/
	jmp	*badrtn		/* Word disp mode changed base */
4:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
4:	callf	$4,_setjmp		/* save context */
	movab	4b,_stpc	/* save pc of subtest start */
	movl	$3,_subtst		/* subtest number */
	movl	$1,_no_opr		/* number of operands in use */
0:	movb	w^132(r3),w^32765(r3)
	cmpl	wbasel,$0xff110055
	beql	5f
	bbs	$0,_scoplp,0b		/* if set scope loop on error */
	movl	$1,_ercode		/*error code data miscompare*/
	movl	wbasel,_actual		/* actual data */
	movl	$0xff110055,_expected	/*expected data*/
	jmp	*badrtn		/* Word disp mode did not move right byte */
5:
	bbs	$0,_force_lp,0b		/* if set loop on last subtest */
	movl	$0,_ercode			/*no error*/
	jmp	*return			/*end of test - goto monitor	*/


/*	Variables							*/

	.align	2
bbase1:	.long	0x33221100		/*relative location 0*/
bbase2:	.long	0xaaaaaaaa		/*rl 4			*/
bbase3:	.long	0xbbbbbbbb		/*rl 8			*/

	.align	2
base_add:
	.long	add_table

	.align	2
add_table:
	.long	0
	.long	bbase1		/* relative location 4		*/

	.space	124
	.long	0x11110000	/*relative location 132		*/

	.space	(32004-128)
	.long	bbase2		/*relative location 32012	*/

	.space	748
wbasel:
	.long	0xffffffff	/*relative location 32764	*/
	.long	0x11111111	/*relative location 32768	*/

	.space	32764
lbasel:
	.long	0xffffffff	/*relative location 65536	*/

	.space	480
	.long	bbase3		/*relative location 66020	*/

/*end of file			*/



unix.superglobalmegacorp.com

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