1# frv testcase for nldqfu @($GRi,$GRj),$GRk
2# mach: frv
3# as(frv): -mcpu=frv
4
5	.include "testutils.inc"
6
7	start
8
9	.global nldqfu
10nldqfu:
11	set_mem_limmed	0xdead,0xbeef,sp
12	inc_gr_immed	-4,sp
13	set_mem_limmed	0xbeef,0xdead,sp
14	inc_gr_immed	-4,sp
15	set_mem_limmed	0x1234,0x5678,sp
16	inc_gr_immed	-4,sp
17	set_mem_limmed	0x9abc,0xdef0,sp
18	set_gr_gr	sp,gr20
19	set_fr_iimmed	0xdead,0xbeef,fr8
20	set_fr_iimmed	0xbeef,0xdead,fr9
21	set_fr_iimmed	0x1234,0x5678,fr10
22	set_fr_iimmed	0x9abc,0xdef0,fr11
23
24	set_gr_immed	0,gr7
25	nldqfu 		@(sp,gr7),fr8
26	test_fr_limmed	0x9abc,0xdef0,fr8
27	test_fr_limmed	0x1234,0x5678,fr9
28	test_fr_limmed	0xbeef,0xdead,fr10
29	test_fr_limmed	0xdead,0xbeef,fr11
30	test_gr_gr	sp,gr20
31	test_spr_limmed	0xc8c0,0x0001,nesr0
32	test_spr_gr	neear0,gr20
33	test_spr_limmed	0x0000,0x0000,fner1
34	test_spr_limmed	0x0000,0x0000,fner0
35
36	set_fr_iimmed	0xdead,0xbeef,fr8
37	set_fr_iimmed	0xbeef,0xdead,fr9
38	set_fr_iimmed	0x1234,0x5678,fr10
39	set_fr_iimmed	0x9abc,0xdef0,fr11
40	inc_gr_immed	-16,sp
41	set_gr_immed	16,gr7
42	nldqfu 		@(sp,gr7),fr8
43	test_fr_limmed	0x9abc,0xdef0,fr8
44	test_fr_limmed	0x1234,0x5678,fr9
45	test_fr_limmed	0xbeef,0xdead,fr10
46	test_fr_limmed	0xdead,0xbeef,fr11
47	test_gr_gr	sp,gr20
48	test_spr_limmed	0xc8c0,0x0401,nesr1
49	test_spr_gr	neear1,gr20
50	test_spr_limmed	0x0000,0x0000,fner1
51	test_spr_limmed	0x0000,0x0000,fner0
52
53	set_fr_iimmed	0xdead,0xbeef,fr8
54	set_fr_iimmed	0xbeef,0xdead,fr9
55	set_fr_iimmed	0x1234,0x5678,fr10
56	set_fr_iimmed	0x9abc,0xdef0,fr11
57	inc_gr_immed	16,sp
58	set_gr_immed	-16,gr7
59	nldqfu 		@(sp,gr7),fr8
60	test_fr_limmed	0x9abc,0xdef0,fr8
61	test_fr_limmed	0x1234,0x5678,fr9
62	test_fr_limmed	0xbeef,0xdead,fr10
63	test_fr_limmed	0xdead,0xbeef,fr11
64	test_gr_gr	sp,gr20
65	test_spr_limmed	0xc8c0,0x0801,nesr2
66	test_spr_gr	neear2,gr20
67	test_spr_limmed	0x0000,0x0000,fner1
68	test_spr_limmed	0x0000,0x0000,fner0
69
70	pass
71