csdiv.cgs

来自「这个是LINUX下的GDB调度工具的源码」· CGS 代码 · 共 191 行

CGS
191
字号
# frv testcase for csdiv $GRi,$GRj,$GRk,$CCi,$cond# mach: all	.include "testutils.inc"	start	.global csdivcsdiv:	set_spr_immed	0x1b1b,cccr	; simple division 12 / 3	set_gr_immed   	3,gr3	set_gr_immed   	12,gr1	csdiv      	gr1,gr3,gr2,cc4,1	test_gr_immed  	4,gr2	; Random example	set_gr_limmed  	0x0123,0x4567,gr3	set_gr_limmed  	0xfedc,0xba98,gr1	csdiv      	gr1,gr3,gr2,cc4,1	test_gr_immed  	-1,gr2	; Special case from the Arch Spec Vol 2	and_spr_immed	-33,isr		; turn off isr.edem	; set up exception handler	set_psr_et	1	and_spr_immed	-4081,tbr	; clear tbr.tt	set_gr_spr	tbr,gr17	inc_gr_immed	0x170,gr17	; address of exception handler	set_bctrlr_0_0  gr17	set_spr_immed	128,lcr	set_gr_immed	0,gr15	; divide will cause overflow	set_spr_addr	ok1,lr	set_gr_addr	e1,gr17	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1e1:	csdiv      	gr1,gr3,gr2,cc4,1	test_gr_immed	1,gr15	test_gr_limmed 	0x8000,0x0000,gr2	; Special case from the Arch Spec Vol 2	or_spr_immed	0x20,isr	; turn on isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc4,1	test_gr_limmed 	0x7fff,0xffff,gr2	; simple division 12 / 3	set_gr_immed   	3,gr3	set_gr_immed   	12,gr1	csdiv      	gr1,gr3,gr2,cc4,0	test_gr_limmed 	0x7fff,0xffff,gr2	; Random example	set_gr_limmed  	0x0123,0x4567,gr3	set_gr_limmed  	0xfedc,0xba98,gr1	csdiv      	gr1,gr3,gr2,cc4,0	test_gr_limmed 	0x7fff,0xffff,gr2	; Special case from the Arch Spec Vol 2	and_spr_immed	-33,isr		; turn off isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc4,0	test_gr_limmed 	0x7fff,0xffff,gr2	or_spr_immed	0x20,isr	; turn on isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc4,0	test_gr_limmed 	0x7fff,0xffff,gr2	; simple division 12 / 3	set_gr_immed   	3,gr3	set_gr_immed   	12,gr1	csdiv      	gr1,gr3,gr2,cc5,0	test_gr_immed  	4,gr2	; Random example	set_gr_limmed  	0x0123,0x4567,gr3	set_gr_limmed  	0xfedc,0xba98,gr1	csdiv      	gr1,gr3,gr2,cc5,0	test_gr_immed  	-1,gr2	; Special case from the Arch Spec Vol 2	and_spr_immed	-33,isr		; turn off isr.edem	; divide will cause overflow	set_spr_addr	ok1,lr	set_gr_addr	e2,gr17	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1e2:	csdiv      	gr1,gr3,gr2,cc5,0	test_gr_immed	2,gr15	test_gr_limmed 	0x8000,0x0000,gr2	; Special case from the Arch Spec Vol 2	or_spr_immed	0x20,isr	; turn on isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc5,0	test_gr_limmed 	0x7fff,0xffff,gr2	; simple division 12 / 3	set_gr_immed   	3,gr3	set_gr_immed   	12,gr1	csdiv      	gr1,gr3,gr2,cc5,1	test_gr_limmed 	0x7fff,0xffff,gr2	; Random example	set_gr_limmed  	0x0123,0x4567,gr3	set_gr_limmed  	0xfedc,0xba98,gr1	csdiv      	gr1,gr3,gr2,cc5,1	test_gr_limmed 	0x7fff,0xffff,gr2	; Special case from the Arch Spec Vol 2	and_spr_immed	-33,isr		; turn off isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc5,1	test_gr_limmed 	0x7fff,0xffff,gr2	or_spr_immed	0x20,isr	; turn on isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc5,1	test_gr_limmed 	0x7fff,0xffff,gr2	; simple division 12 / 3	set_gr_immed   	3,gr3	set_gr_immed   	12,gr1	csdiv      	gr1,gr3,gr2,cc6,0	test_gr_limmed 	0x7fff,0xffff,gr2	; Random example	set_gr_limmed  	0x0123,0x4567,gr3	set_gr_limmed  	0xfedc,0xba98,gr1	csdiv      	gr1,gr3,gr2,cc6,0	test_gr_limmed 	0x7fff,0xffff,gr2	; Special case from the Arch Spec Vol 2	and_spr_immed	-33,isr		; turn off isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc6,0	test_gr_limmed 	0x7fff,0xffff,gr2	or_spr_immed	0x20,isr	; turn on isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc6,0	test_gr_limmed 	0x7fff,0xffff,gr2	; simple division 12 / 3	set_gr_immed   	3,gr3	set_gr_immed   	12,gr1	csdiv      	gr1,gr3,gr2,cc7,1	test_gr_limmed 	0x7fff,0xffff,gr2	; Random example	set_gr_limmed  	0x0123,0x4567,gr3	set_gr_limmed  	0xfedc,0xba98,gr1	csdiv      	gr1,gr3,gr2,cc7,1	test_gr_limmed 	0x7fff,0xffff,gr2	; Special case from the Arch Spec Vol 2	and_spr_immed	-33,isr		; turn off isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc7,1	test_gr_limmed 	0x7fff,0xffff,gr2	or_spr_immed	0x20,isr	; turn on isr.edem	set_gr_immed  	-1,gr3	set_gr_limmed  	0x8000,0x0000,gr1	csdiv      	gr1,gr3,gr2,cc7,1	test_gr_limmed 	0x7fff,0xffff,gr2	passok1:	; exception handler for overflow	test_spr_bits	0x18,3,0x2,isr		; isr.dtt is set	test_spr_gr	epcr0,gr17		; return address set	test_spr_bits	0x0001,0,0x1,esr0	; esr0 is valid	test_spr_bits	0x003e,1,0x13,esr0	; esr0.ec is set	inc_gr_immed	1,gr15	rett		0	fail

⌨️ 快捷键说明

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