⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regtest.s

📁 The GRLIB IP Library is an integrated set of reusable IP cores, designed for system-on-chip (SOC) de
💻 S
字号:
	.text	.align 4	.global _regtest, regtest	.proc	04_regtest:regtest:#ifndef _FLAT	save %sp, -96, %sp#endif/*	set PREGS, %l0	ld [%l0 + ECTRL], %g2	! get configuration status	srl %g2, RFE_CONF_BIT, %g3	andcc %g3, 3, %g3	be 1f	nop	mov	%asr16, %g4	! skip EDAC test if err-injection is on	andcc %g4, 0xe00, %g4	bne 1f	subcc %g3, 3, %g0	mov 0x6, %l1	be,a 	2f	mov 0x32, %l12:	mov %l1, %asr16		! regfile EDAC test mode enable	mov %g0, %l3	mov %g0, %asr16		or %l3, 0, %l4	mov %asr16, %l5	or %l3, 0, %l6	mov %asr16, %l7	subcc %l4, 0, %g0	! %l4 should be zero	bne err1	andcc %l5, 0xe00, %l5	! data-forwarding should not trigger EDAC error	subcc %l5, %g0, %g0		bne err1	subcc %l6, 0, %g0	! %l6 should be 0 (corrected)	bne err1	and %l7, 0xe00, %l7	subcc %l7, 0x200, %g0	! error counter should be incremented	bne err1	nop	mov %g0, %l0		! correctable EDAC error in LD	mov %l1, %asr16			mov %g0, %l3		mov %g0, %asr16		ldd [%g0], %l4	mov %g0, %l6	mov %g0, %l7	ld [%l3], %l6	ld [%l3 + 4], %l7	cmp %l4, %l6	bne err1	cmp %l5, %l7	bne err1	nop	mov %asr16, %l2	and %l2, 0xe00, %l2	subcc %l2, 0x200, %g0	! error counter should be incremented	bne err1	nop	mov %g0, %l0		! 2 correctable EDAC errors in LD	mov %l1, %asr16			mov %g0, %l2		mov %g0, %l3		mov %g0, %asr16		ldd [%g0], %l4	mov %g0, %l6	mov %g0, %l7	ld [%l3 + %l2], %l6	ld [%l3 + 4], %l7	cmp %l4, %l6	bne err1	cmp %l5, %l7	bne err1	nop	mov %asr16, %l2	and %l2, 0xe00, %l2	subcc %l2, 0x200, %g0	! error counter should be incremented	bl err1	nop	set 0x40000000, %l0		! 4 correctable EDAC errors in STD	ldd [%l0], %l6	set 0x41000000, %l0	mov %l1, %asr16			mov %l0, %l2		mov %g0, %l3		mov %g0, %l6		mov %g0, %l7		mov %g0, %asr16		std %l6, [%l2 + %l3]	mov %g0, %l6	mov %g0, %l7	ldd [%l3 + %l2], %l4	cmp %l4, %l6	bne err1	cmp %l5, %l7	bne err1	nop	mov %asr16, %l2	and %l2, 0xe00, %l2	subcc %l2, 0x400, %g0	! error counter should be incremented	ble err1	nop	ba 1f	noperr1:	ba last	mov %g0, %i0	*/	! flush all register windows (maximum 32)1:	mov 	%asr17, %g5	and	%g5, 0x1f, %g5	subcc	%g5, 1, %g0	be 	4f	mov	%g5, %g62:	save %sp, -96, %sp	subcc	%g5, 1, %g5	bge	2b	nop3:	restore	subcc	%g6, 1, %g6	bge	3b	nop	! save global and input registers4:	nop; nop	set	regbuf, %l0	mov	%psr, %l1	st	%l1, [%l0]	st	%g1, [%l0+4]	std	%g2, [%l0+8]	std	%g4, [%l0+16]	std	%g6, [%l0+24]	std	%i0, [%l0+32]	std	%i2, [%l0+40]	std	%i4, [%l0+48]	std	%i6, [%l0+56]	std	%o0, [%l0+64]	std	%o2, [%l0+72]	std	%o4, [%l0+80]	std	%o6, [%l0+88]	mov	%wim, %l2	st	%l2, [%l0+96]	! test gloabal registers	mov	8, %g0	mov	1, %g1	mov	2, %g2	mov	3, %g3	mov	4, %g4	mov	5, %g5	mov	6, %g6	mov	7, %g7	mov	%g0, %wim	andn	%l1, 0x1f, %l2	mov	%l2, %psr	nop; nop; nop		! fill all registers	set	0x01010101, %g1	mov	%g0, %g2	mov	%g0, %g3	mov 	%asr17, %g4	and	%g4, 0x1f, %g4	mov	%g4, %g34:	mov	%g2, %l0	add	%g1, %g2, %g2	mov	%g2, %l1	add	%g1, %g2, %g2	mov	%g2, %l2	add	%g1, %g2, %g2	mov	%g2, %l3	add	%g1, %g2, %g2	mov	%g2, %l4	add	%g1, %g2, %g2	mov	%g2, %l5	add	%g1, %g2, %g2	mov	%g2, %l6	add	%g1, %g2, %g2	mov	%g2, %l7	add	%g1, %g2, %g2	mov	%g2, %o0	add	%g1, %g2, %g2	mov	%g2, %o1	add	%g1, %g2, %g2	mov	%g2, %o2	add	%g1, %g2, %g2	mov	%g2, %o3	add	%g1, %g2, %g2	mov	%g2, %o4	add	%g1, %g2, %g2	mov	%g2, %o5	add	%g1, %g2, %g2	mov	%g2, %o6	add	%g1, %g2, %g2	mov	%g2, %o7	add	%g1, %g2, %g2	save	subcc	%g3, 1, %g3	bge	4b	nop		! check values	set	0x01010101, %g1	mov	%g0, %g2	mov	%g4, %g35:	cmp	%l0, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l1, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l2, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l3, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l4, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l5, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l6, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%l7, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o0, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o1, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o2, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o3, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o4, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o5, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o6, %g2	bne	fail	add	%g1, %g2, %g2	cmp	%o7, %g2	bne	fail	add	%g1, %g2, %g2		save	subcc	%g3, 1, %g3	bge	5b	nop		subcc	%g0, 0, %g0	bne	fail	subcc	%g3, -1, %g0	bne	fail	subcc	%g5, 5, %g0	bne	fail	subcc	%g6, 6, %g0	bne	fail	subcc	%g7, 7, %g0	bne	fail	noptestok:	set	regbuf, %l0	ba	exit	st	%g0, [%l0+32]fail:	set	regbuf, %l0	mov	1, %o0	ba	exit	st	%o0, [%l0+32]exit:	! restore state	set	regbuf, %g1	ld	[%g1], %g2	mov	%g2, %psr	nop; nop; nop	ldd	[%g1+8], %g2	ldd	[%g1+16], %g4	ldd	[%g1+24], %g6	ldd	[%g1+32], %i0	ldd	[%g1+40], %i2	ldd	[%g1+48], %i4	ldd	[%g1+56], %i6	ldd	[%g1+64], %o0	ldd	[%g1+72], %o2	ldd	[%g1+80], %o4	ldd	[%g1+88], %o6	ld	[%g1+96], %l2	ld	[%g1+4], %g1	mov	%l2, %wim	nop; nop; noplast:	set	regbuf, %l0#ifndef _FLAT	ld	[%l0+32], %i0	ret	restore#else	retl	ld	[%l0+32], %o0#endif	.align 8.common   regbuf, 168,"bss".align 32

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -