xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/frv/nudiv.cgs (revision 70f7362772ba52b749c976fb5e86e39a8b2c9afc)
1# frv testcase for nudiv $GRi,$GRj,$GRk
2# mach: fr500 fr550 frv
3
4	.include "testutils.inc"
5
6	start
7
8	.global nudiv
9nudiv:
10	set_spr_immed	0,gner0
11	set_spr_immed	0,gner1
12
13	; simple division 12 / 3
14	set_gr_immed   	0x00000003,gr2
15	set_gr_immed   	0x0000000c,gr3
16	nudiv      	gr3,gr2,gr3
17	test_gr_immed  	0x00000003,gr2
18	test_gr_immed  	0x00000004,gr3
19	test_spr_immed	0,gner0
20	test_spr_immed	0,gner1
21
22	; example 1 from the fr30 manual
23	set_gr_limmed  	0x0123,0x4567,gr2
24	set_gr_limmed  	0xfedc,0xba98,gr3
25	nudiv      	gr3,gr2,gr3
26	test_gr_limmed 	0x0123,0x4567,gr2
27	test_gr_immed  	0x000000e0,gr3
28	test_spr_immed	0,gner0
29	test_spr_immed	0,gner1
30
31	or_spr_immed	0x20,isr	; turn on isr.edem
32	nudiv      	gr1,gr0,gr32	; divide by zero
33	test_spr_immed	1,gner0
34	test_spr_immed	0,gner1
35
36	and_spr_immed	-33,isr		; turn off isr.edem
37	nudiv      	gr1,gr0,gr10	; divide by zero
38	test_spr_immed	1,gner0
39	test_spr_immed	0x00000400,gner1
40
41	; simple division 12 / 3 -- should turn off ne flag
42	set_gr_immed   	12,gr1
43	set_gr_immed   	3,gr3
44	nudiv      	gr1,gr3,gr10
45	test_gr_immed  	4,gr10
46	test_spr_immed	1,gner0
47	test_spr_immed	0,gner1
48
49	pass
50