1# frv testcase for cstfu $FRk,@($GRi,$GRj),$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cstfu
9cstfu:
10	set_spr_immed	0x1b1b,cccr
11	set_gr_gr	sp,gr20
12
13	set_mem_limmed	0xdead,0xbeef,sp
14	set_gr_gr	sp,gr21
15	set_gr_immed	0,gr7
16	set_fr_iimmed	0xffff,0xffff,fr8
17	cstfu		fr8,@(sp,gr7),cc0,1
18	test_mem_limmed	0xffff,0xffff,gr20
19	test_gr_gr	sp,gr21
20
21	set_gr_immed	4,gr7
22	inc_gr_immed	-4,sp
23	set_fr_iimmed	0xeeee,0xeeee,fr8
24	cstfu		fr8,@(sp,gr7),cc0,1
25	test_mem_limmed	0xeeee,0xeeee,gr20
26	test_gr_gr	sp,gr21
27
28	set_gr_immed	-4,gr7
29	inc_gr_immed	4,sp
30	set_fr_iimmed	0xdddd,0xdddd,fr8
31	cstfu		fr8,@(sp,gr7),cc4,1
32	test_mem_limmed	0xdddd,0xdddd,gr20
33	test_gr_gr	sp,gr21
34
35	set_gr_gr	gr20,sp
36	set_mem_limmed	0xdead,0xbeef,sp
37	set_gr_gr	sp,gr21
38	set_gr_immed	0,gr7
39	set_fr_iimmed	0xffff,0xffff,fr8
40	cstfu		fr8,@(sp,gr7),cc0,0
41	test_mem_limmed	0xdead,0xbeef,gr20
42	test_gr_gr	sp,gr21
43
44	set_gr_immed	4,gr7
45	inc_gr_immed	-4,sp
46	inc_gr_immed	-4,gr21
47	set_fr_iimmed	0xeeee,0xeeee,fr8
48	cstfu		fr8,@(sp,gr7),cc0,0
49	test_mem_limmed	0xdead,0xbeef,gr20
50	test_gr_gr	sp,gr21
51
52	set_gr_immed	-4,gr7
53	inc_gr_immed	8,sp
54	inc_gr_immed	8,gr21
55	set_fr_iimmed	0xdddd,0xdddd,fr8
56	cstfu		fr8,@(sp,gr7),cc4,0
57	test_mem_limmed	0xdead,0xbeef,gr20
58	test_gr_gr	sp,gr21
59
60	set_gr_gr	gr20,sp
61	set_mem_limmed	0xdead,0xbeef,sp
62	set_gr_gr	sp,gr21
63	set_gr_immed	0,gr7
64	set_fr_iimmed	0xffff,0xffff,fr8
65	cstfu		fr8,@(sp,gr7),cc1,0
66	test_mem_limmed	0xffff,0xffff,gr20
67	test_gr_gr	sp,gr21
68
69	set_gr_immed	4,gr7
70	inc_gr_immed	-4,sp
71	set_fr_iimmed	0xeeee,0xeeee,fr8
72	cstfu		fr8,@(sp,gr7),cc1,0
73	test_mem_limmed	0xeeee,0xeeee,gr20
74	test_gr_gr	sp,gr21
75
76	set_gr_immed	-4,gr7
77	inc_gr_immed	4,sp
78	set_fr_iimmed	0xdddd,0xdddd,fr8
79	cstfu		fr8,@(sp,gr7),cc5,0
80	test_mem_limmed	0xdddd,0xdddd,gr20
81	test_gr_gr	sp,gr21
82
83	set_gr_gr	gr20,sp
84	set_mem_limmed	0xdead,0xbeef,sp
85	set_gr_gr	sp,gr21
86	set_gr_immed	0,gr7
87	set_fr_iimmed	0xffff,0xffff,fr8
88	cstfu		fr8,@(sp,gr7),cc1,1
89	test_mem_limmed	0xdead,0xbeef,gr20
90	test_gr_gr	sp,gr21
91
92	set_gr_immed	4,gr7
93	inc_gr_immed	-4,sp
94	inc_gr_immed	-4,gr21
95	set_fr_iimmed	0xeeee,0xeeee,fr8
96	cstfu		fr8,@(sp,gr7),cc1,1
97	test_mem_limmed	0xdead,0xbeef,gr20
98	test_gr_gr	sp,gr21
99
100	set_gr_immed	-4,gr7
101	inc_gr_immed	8,sp
102	inc_gr_immed	8,gr21
103	set_fr_iimmed	0xdddd,0xdddd,fr8
104	cstfu		fr8,@(sp,gr7),cc5,1
105	test_mem_limmed	0xdead,0xbeef,gr20
106	test_gr_gr	sp,gr21
107
108	set_gr_gr	gr20,sp
109	set_mem_limmed	0xdead,0xbeef,sp
110	set_gr_gr	sp,gr21
111	set_gr_immed	0,gr7
112	set_fr_iimmed	0xffff,0xffff,fr8
113	cstfu		fr8,@(sp,gr7),cc2,0
114	test_mem_limmed	0xdead,0xbeef,gr20
115	test_gr_gr	sp,gr21
116
117	set_gr_immed	4,gr7
118	inc_gr_immed	-4,sp
119	inc_gr_immed	-4,gr21
120	set_fr_iimmed	0xeeee,0xeeee,fr8
121	cstfu		fr8,@(sp,gr7),cc2,1
122	test_mem_limmed	0xdead,0xbeef,gr20
123	test_gr_gr	sp,gr21
124
125	set_gr_immed	-4,gr7
126	inc_gr_immed	8,sp
127	inc_gr_immed	8,gr21
128	set_fr_iimmed	0xdddd,0xdddd,fr8
129	cstfu		fr8,@(sp,gr7),cc6,0
130	test_mem_limmed	0xdead,0xbeef,gr20
131	test_gr_gr	sp,gr21
132
133	set_gr_gr	gr20,sp
134	set_mem_limmed	0xdead,0xbeef,sp
135	set_gr_gr	sp,gr21
136	set_gr_immed	0,gr7
137	set_fr_iimmed	0xffff,0xffff,fr8
138	cstfu		fr8,@(sp,gr7),cc3,1
139	test_mem_limmed	0xdead,0xbeef,gr20
140	test_gr_gr	sp,gr21
141
142	set_gr_immed	4,gr7
143	inc_gr_immed	-4,sp
144	inc_gr_immed	-4,gr21
145	set_fr_iimmed	0xeeee,0xeeee,fr8
146	cstfu		fr8,@(sp,gr7),cc3,0
147	test_mem_limmed	0xdead,0xbeef,gr20
148	test_gr_gr	sp,gr21
149
150	set_gr_immed	-4,gr7
151	inc_gr_immed	8,sp
152	inc_gr_immed	8,gr21
153	set_fr_iimmed	0xdddd,0xdddd,fr8
154	cstfu		fr8,@(sp,gr7),cc7,1
155	test_mem_limmed	0xdead,0xbeef,gr20
156	test_gr_gr	sp,gr21
157
158	pass
159