1# frv testcase for cstdu $GRk,@($GRi,$GRj),$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cstdu
9cstdu:
10	set_spr_immed	0x1b1b,cccr
11
12	set_mem_limmed	0xbeef,0xdead,sp
13	inc_gr_immed	-4,sp
14	set_mem_limmed	0xdead,0xbeef,sp
15	set_gr_gr	sp,gr20
16	set_gr_gr	sp,gr21
17
18	set_gr_immed	0,gr7
19	set_gr_limmed	0xbeef,0xdead,gr8
20	set_gr_limmed	0xdead,0xbeef,gr9
21	cstdu		gr8,@(sp,gr7),cc0,1
22	test_mem_limmed	0xbeef,0xdead,gr21
23	inc_gr_immed	4,gr21
24	test_mem_limmed	0xdead,0xbeef,gr21
25	test_gr_gr	sp,gr20
26
27	set_gr_gr	gr20,gr21
28	inc_gr_immed	-8,sp
29	set_gr_immed	8,gr7
30	set_gr_limmed	0xaaaa,0xaaaa,gr8
31	set_gr_limmed	0xbbbb,0xbbbb,gr9
32	cstdu		gr8,@(sp,gr7),cc0,1
33	test_mem_limmed	0xaaaa,0xaaaa,gr21
34	inc_gr_immed	4,gr21
35	test_mem_limmed	0xbbbb,0xbbbb,gr21
36	test_gr_gr	sp,gr20
37
38	set_gr_gr	gr20,gr21
39	inc_gr_immed	8,sp
40	set_gr_immed	-8,gr7
41	set_gr_limmed	0xcccc,0xcccc,gr8
42	set_gr_limmed	0xdddd,0xdddd,gr9
43	cstdu		gr8,@(sp,gr7),cc4,1
44	test_mem_limmed	0xcccc,0xcccc,gr21
45	inc_gr_immed	4,gr21
46	test_mem_limmed	0xdddd,0xdddd,gr21
47	test_gr_gr	sp,gr20
48
49	set_gr_gr	gr20,gr21
50	set_gr_gr	gr20,sp
51	set_mem_limmed	0xdead,0xbeef,sp
52	inc_gr_immed	4,sp
53	set_mem_limmed	0xbeef,0xdead,sp
54	inc_gr_immed	-4,sp
55
56	set_gr_gr	sp,gr22
57	set_gr_immed	0,gr7
58	set_gr_limmed	0xbeef,0xdead,gr8
59	set_gr_limmed	0xdead,0xbeef,gr9
60	cstdu		gr8,@(sp,gr7),cc0,0
61	test_mem_limmed	0xdead,0xbeef,gr21
62	inc_gr_immed	4,gr21
63	test_mem_limmed	0xbeef,0xdead,gr21
64	test_gr_gr	sp,gr22
65
66	set_gr_gr	gr20,gr21
67	inc_gr_immed	-8,sp
68	set_gr_gr	sp,gr22
69	set_gr_immed	8,gr7
70	set_gr_limmed	0xaaaa,0xaaaa,gr8
71	set_gr_limmed	0xbbbb,0xbbbb,gr9
72	cstdu		gr8,@(sp,gr7),cc0,0
73	test_mem_limmed	0xdead,0xbeef,gr21
74	inc_gr_immed	4,gr21
75	test_mem_limmed	0xbeef,0xdead,gr21
76	test_gr_gr	sp,gr22
77
78	set_gr_gr	gr20,gr21
79	inc_gr_immed	16,sp
80	set_gr_gr	sp,gr22
81	set_gr_immed	-8,gr7
82	set_gr_limmed	0xcccc,0xcccc,gr8
83	set_gr_limmed	0xdddd,0xdddd,gr9
84	cstdu		gr8,@(sp,gr7),cc4,0
85	test_mem_limmed	0xdead,0xbeef,gr21
86	inc_gr_immed	4,gr21
87	test_mem_limmed	0xbeef,0xdead,gr21
88	test_gr_gr	sp,gr22
89
90	set_gr_gr	gr20,gr21
91	set_gr_gr	gr20,sp
92	set_mem_limmed	0xdead,0xbeef,sp
93	inc_gr_immed	4,sp
94	set_mem_limmed	0xbeef,0xdead,sp
95	inc_gr_immed	-4,sp
96
97	set_gr_immed	0,gr7
98	set_gr_limmed	0xbeef,0xdead,gr8
99	set_gr_limmed	0xdead,0xbeef,gr9
100	cstdu		gr8,@(sp,gr7),cc1,0
101	test_mem_limmed	0xbeef,0xdead,gr21
102	inc_gr_immed	4,gr21
103	test_mem_limmed	0xdead,0xbeef,gr21
104	test_gr_gr	sp,gr20
105
106	set_gr_gr	gr20,gr21
107	inc_gr_immed	-8,sp
108	set_gr_immed	8,gr7
109	set_gr_limmed	0xaaaa,0xaaaa,gr8
110	set_gr_limmed	0xbbbb,0xbbbb,gr9
111	cstdu		gr8,@(sp,gr7),cc1,0
112	test_mem_limmed	0xaaaa,0xaaaa,gr21
113	inc_gr_immed	4,gr21
114	test_mem_limmed	0xbbbb,0xbbbb,gr21
115	test_gr_gr	sp,gr20
116
117	set_gr_gr	gr20,gr21
118	inc_gr_immed	8,sp
119	set_gr_immed	-8,gr7
120	set_gr_limmed	0xcccc,0xcccc,gr8
121	set_gr_limmed	0xdddd,0xdddd,gr9
122	cstdu		gr8,@(sp,gr7),cc5,0
123	test_mem_limmed	0xcccc,0xcccc,gr21
124	inc_gr_immed	4,gr21
125	test_mem_limmed	0xdddd,0xdddd,gr21
126	test_gr_gr	sp,gr20
127
128	set_gr_gr	gr20,gr21
129	set_gr_gr	gr20,sp
130	set_mem_limmed	0xdead,0xbeef,sp
131	inc_gr_immed	4,sp
132	set_mem_limmed	0xbeef,0xdead,sp
133	inc_gr_immed	-4,sp
134
135	set_gr_gr	sp,gr22
136	set_gr_immed	0,gr7
137	set_gr_limmed	0xbeef,0xdead,gr8
138	set_gr_limmed	0xdead,0xbeef,gr9
139	cstdu		gr8,@(sp,gr7),cc1,1
140	test_mem_limmed	0xdead,0xbeef,gr21
141	inc_gr_immed	4,gr21
142	test_mem_limmed	0xbeef,0xdead,gr21
143	test_gr_gr	sp,gr22
144
145	set_gr_gr	gr20,gr21
146	inc_gr_immed	-8,sp
147	set_gr_gr	sp,gr22
148	set_gr_immed	8,gr7
149	set_gr_limmed	0xaaaa,0xaaaa,gr8
150	set_gr_limmed	0xbbbb,0xbbbb,gr9
151	cstdu		gr8,@(sp,gr7),cc1,1
152	test_mem_limmed	0xdead,0xbeef,gr21
153	inc_gr_immed	4,gr21
154	test_mem_limmed	0xbeef,0xdead,gr21
155	test_gr_gr	sp,gr22
156
157	set_gr_gr	gr20,gr21
158	inc_gr_immed	16,sp
159	set_gr_gr	sp,gr22
160	set_gr_immed	-8,gr7
161	set_gr_limmed	0xcccc,0xcccc,gr8
162	set_gr_limmed	0xdddd,0xdddd,gr9
163	cstdu		gr8,@(sp,gr7),cc5,1
164	test_mem_limmed	0xdead,0xbeef,gr21
165	inc_gr_immed	4,gr21
166	test_mem_limmed	0xbeef,0xdead,gr21
167	test_gr_gr	sp,gr22
168
169	set_gr_gr	gr20,gr21
170	set_gr_gr	gr20,sp
171	set_mem_limmed	0xdead,0xbeef,sp
172	inc_gr_immed	4,sp
173	set_mem_limmed	0xbeef,0xdead,sp
174	inc_gr_immed	-4,sp
175
176	set_gr_gr	sp,gr22
177	set_gr_immed	0,gr7
178	set_gr_limmed	0xbeef,0xdead,gr8
179	set_gr_limmed	0xdead,0xbeef,gr9
180	cstdu		gr8,@(sp,gr7),cc2,0
181	test_mem_limmed	0xdead,0xbeef,gr21
182	inc_gr_immed	4,gr21
183	test_mem_limmed	0xbeef,0xdead,gr21
184	test_gr_gr	sp,gr22
185
186	set_gr_gr	gr20,gr21
187	inc_gr_immed	-8,sp
188	set_gr_gr	sp,gr22
189	set_gr_immed	8,gr7
190	set_gr_limmed	0xaaaa,0xaaaa,gr8
191	set_gr_limmed	0xbbbb,0xbbbb,gr9
192	cstdu		gr8,@(sp,gr7),cc2,1
193	test_mem_limmed	0xdead,0xbeef,gr21
194	inc_gr_immed	4,gr21
195	test_mem_limmed	0xbeef,0xdead,gr21
196	test_gr_gr	sp,gr22
197
198	set_gr_gr	gr20,gr21
199	inc_gr_immed	16,sp
200	set_gr_gr	sp,gr22
201	set_gr_immed	-8,gr7
202	set_gr_limmed	0xcccc,0xcccc,gr8
203	set_gr_limmed	0xdddd,0xdddd,gr9
204	cstdu		gr8,@(sp,gr7),cc6,0
205	test_mem_limmed	0xdead,0xbeef,gr21
206	inc_gr_immed	4,gr21
207	test_mem_limmed	0xbeef,0xdead,gr21
208	test_gr_gr	sp,gr22
209
210	set_gr_gr	gr20,gr21
211	set_gr_gr	gr20,sp
212	set_mem_limmed	0xdead,0xbeef,sp
213	inc_gr_immed	4,sp
214	set_mem_limmed	0xbeef,0xdead,sp
215	inc_gr_immed	-4,sp
216
217	set_gr_gr	sp,gr22
218	set_gr_immed	0,gr7
219	set_gr_limmed	0xbeef,0xdead,gr8
220	set_gr_limmed	0xdead,0xbeef,gr9
221	cstdu		gr8,@(sp,gr7),cc3,1
222	test_mem_limmed	0xdead,0xbeef,gr21
223	inc_gr_immed	4,gr21
224	test_mem_limmed	0xbeef,0xdead,gr21
225	test_gr_gr	sp,gr22
226
227	set_gr_gr	gr20,gr21
228	inc_gr_immed	-8,sp
229	set_gr_gr	sp,gr22
230	set_gr_immed	8,gr7
231	set_gr_limmed	0xaaaa,0xaaaa,gr8
232	set_gr_limmed	0xbbbb,0xbbbb,gr9
233	cstdu		gr8,@(sp,gr7),cc3,0
234	test_mem_limmed	0xdead,0xbeef,gr21
235	inc_gr_immed	4,gr21
236	test_mem_limmed	0xbeef,0xdead,gr21
237	test_gr_gr	sp,gr22
238
239	set_gr_gr	gr20,gr21
240	inc_gr_immed	16,sp
241	set_gr_gr	sp,gr22
242	set_gr_immed	-8,gr7
243	set_gr_limmed	0xcccc,0xcccc,gr8
244	set_gr_limmed	0xdddd,0xdddd,gr9
245	cstdu		gr8,@(sp,gr7),cc7,1
246	test_mem_limmed	0xdead,0xbeef,gr21
247	inc_gr_immed	4,gr21
248	test_mem_limmed	0xbeef,0xdead,gr21
249	test_gr_gr	sp,gr22
250
251	pass
252