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

📄 cache.s

📁 gdb-6.8 Linux下的调试程序 最新版本
💻 S
字号:
# run with --memory-region 0xff000000,4 --memory-region 0xfe000000,00404000; Exit with return code	.macro exit rc	setlos.p	#1,gr7	setlos          \rc,gr8	tira		gr0,#0	.endm; Pass the test case	.macro passpass:	setlos.p	#5,gr10	setlos		#1,gr8	setlos		#5,gr7	sethi.p		%hi(passmsg),gr9	setlo		%lo(passmsg),gr9	tira		gr0,#0	exit		#0	.endm; Fail the testcase	.macro failfail\@:	setlos.p	#5,gr10	setlos		#1,gr8	setlos		#5,gr7	sethi.p		%hi(failmsg),gr9	setlo		%lo(failmsg),gr9	tira		gr0,#0	exit		#1	.endm	.datafailmsg:	.ascii "fail\n"passmsg:	.ascii "pass\n"	.text	.global _start_start:	movsg		hsr0,gr10	; enable insn and data caches	sethi.p		0xc800,gr11	; in copy-back mode	setlo		0x0000,gr11	or		gr10,gr11,gr10	movgs		gr10,hsr0		sethi.p		0x7,sp	setlo		0x0000,sp	; fill the cache	sethi.p		%hi(done1),gr10	setlo		%lo(done1),gr10	movgs		gr10,lr	setlos.p	0x1000,gr10	setlos		0x0,gr11	movgs		gr10,lcrwrite1:	st.p		gr11,@(sp,gr11)	addi.p		gr11,4,gr11	bctrlr.p	1,0	bra		write1done1:	; read it back	sethi.p		%hi(done2),gr10	setlo		%lo(done2),gr10	movgs		gr10,lr	setlos.p	0x1000,gr10	setlos		0x0,gr11	movgs		gr10,lcrread1:	ld		@(sp,gr11),gr12	cmp		gr11,gr12,icc0	bne		icc0,1,fail	addi.p		gr11,4,gr11	bctrlr.p	1,0	bra		read1done2:			; fill the cache twice	sethi.p		%hi(done3),gr10	setlo		%lo(done3),gr10	movgs		gr10,lr	setlos.p	0x2000,gr10	setlos		0x0,gr11	movgs		gr10,lcrwrite3:	st.p		gr11,@(sp,gr11)	addi.p		gr11,4,gr11	bctrlr.p	1,0	bra		write3done3:	; read it back	sethi.p		%hi(done4),gr10	setlo		%lo(done4),gr10	movgs		gr10,lr	setlos.p	0x2000,gr10	setlos		0x0,gr11	movgs		gr10,lcrread4:	ld		@(sp,gr11),gr12	cmp		gr11,gr12,icc0	bne		icc0,1,fail	addi.p		gr11,4,gr11	bctrlr.p	1,0	bra		read4done4:		; read it back in reverse	sethi.p		%hi(done5),gr10	setlo		%lo(done5),gr10	movgs		gr10,lr	setlos.p	0x2000,gr10	setlos		0x7ffc,gr11	movgs		gr10,lcrread5:	ld		@(sp,gr11),gr12	cmp		gr11,gr12,icc0	bne		icc0,1,fail	subi.p		gr11,4,gr11	bctrlr.p	1,0	bra		read5done5:		; access data and insns in non-cache areas	sethi.p		0x8038,gr11		; bctrlr 0,0	setlo		0x2000,gr11	sethi.p		0xff00,gr10		; documented area	setlo		0x0000,gr10	sti		gr11,@(gr10,0)	jmpl		@(gr10,gr0)	;  enable RAM mode	movsg		hsr0,gr10	sethi.p		0x0040,gr12	setlo		0x0000,gr12	or		gr10,gr12,gr10	movgs		gr10,hsr0	sethi.p		0xfe00,gr10		; documented area	setlo		0x0400,gr10	sti		gr11,@(gr10,0)	jmpl		@(gr10,gr0)	sethi.p		0xfe40,gr10		; documented area	setlo		0x0400,gr10	sti		gr11,@(gr10,0)	dcf		@(gr10,gr0)	jmpl		@(gr10,gr0)	sethi.p		0x0007,gr10		; non RAM area	setlo		0x0000,gr10	sti		gr11,@(gr10,0)	jmpl		@(gr10,gr0)	sethi.p		0xfe00,gr10		; insn RAM area	setlo		0x0000,gr10	sti		gr11,@(gr10,0)	jmpl		@(gr10,gr0)	sethi.p		0xfe40,gr10		; data RAM area	setlo		0x0000,gr10	sti		gr11,@(gr10,0)	dcf		@(gr10,gr0)	jmpl		@(gr10,gr0)		passfail:	fail

⌨️ 快捷键说明

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