1# frv testcase for stdfi $FRk,@($GRi,$GRj)
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global stdfi
9stdfi:
10	set_mem_limmed	0xdead,0xbeef,sp
11	set_gr_gr	sp,gr20
12	inc_gr_immed	-4,sp
13	set_mem_limmed	0xbeef,0xdead,sp
14	set_gr_gr	sp,gr21
15	inc_gr_immed	-4,sp
16	set_mem_limmed	0x1234,0x5678,sp
17	set_gr_gr	sp,gr22
18	inc_gr_immed	-4,sp
19	set_mem_limmed	0x8765,0x4321,sp
20	set_gr_gr	sp,gr23
21	inc_gr_immed	-4,sp
22	set_mem_limmed	0xfedc,0xba98,sp
23	set_gr_gr	sp,gr24
24	inc_gr_immed	-4,sp
25	set_mem_limmed	0x89ab,0xcdef,sp
26	set_gr_gr	sp,gr25
27	set_fr_iimmed	0xffff,0xffff,fr8
28	set_fr_iimmed	0xffff,0xffff,fr9
29
30	stdfi		fr8,@(sp,0)
31	test_mem_limmed	0xffff,0xffff,gr25
32	test_mem_limmed	0xffff,0xffff,gr24
33	test_mem_limmed	0x8765,0x4321,gr23
34	test_mem_limmed	0x1234,0x5678,gr22
35	test_mem_limmed	0xbeef,0xdead,gr21
36	test_mem_limmed	0xdead,0xbeef,gr20
37
38	inc_gr_immed	0x808,sp	; 2056
39	stdfi		fr8,@(sp,-2048)
40	test_mem_limmed	0xffff,0xffff,gr25
41	test_mem_limmed	0xffff,0xffff,gr24
42	test_mem_limmed	0xffff,0xffff,gr23
43	test_mem_limmed	0xffff,0xffff,gr22
44	test_mem_limmed	0xbeef,0xdead,gr21
45	test_mem_limmed	0xdead,0xbeef,gr20
46
47	inc_gr_immed	-4080,sp
48	stdfi		fr8,@(sp,0x7f8)
49	test_mem_limmed	0xffff,0xffff,gr25
50	test_mem_limmed	0xffff,0xffff,gr24
51	test_mem_limmed	0xffff,0xffff,gr23
52	test_mem_limmed	0xffff,0xffff,gr22
53	test_mem_limmed	0xffff,0xffff,gr21
54	test_mem_limmed	0xffff,0xffff,gr20
55
56	pass
57