1# frv testcase for bcnelr $ICCi,$ccond,$hint
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global bcnelr
9bcnelr:
10	; ccond is true
11	set_spr_immed	128,lcr
12	set_spr_addr	ok1,lr
13	set_icc		0x0 0
14	bcnelr		icc0,0,0
15	fail
16ok1:
17	set_spr_addr	ok2,lr
18	set_icc		0x1 1
19	bcnelr		icc1,0,1
20	fail
21ok2:
22	set_spr_addr	ok3,lr
23	set_icc		0x2 2
24	bcnelr		icc2,0,2
25	fail
26ok3:
27	set_spr_addr	ok4,lr
28	set_icc		0x3 3
29	bcnelr		icc3,0,3
30	fail
31ok4:
32	set_spr_addr	bad,lr
33	set_icc		0x4 0
34	bcnelr		icc0,0,0
35
36	set_spr_addr	bad,lr
37	set_icc		0x5 1
38	bcnelr		icc1,0,1
39
40	set_spr_addr	bad,lr
41	set_icc		0x6 2
42	bcnelr		icc2,0,2
43
44	set_spr_addr	bad,lr
45	set_icc		0x7 3
46	bcnelr		icc3,0,3
47
48	set_spr_addr	ok9,lr
49	set_icc		0x8 0
50	bcnelr		icc0,0,0
51	fail
52ok9:
53	set_spr_addr	oka,lr
54	set_icc		0x9 1
55	bcnelr		icc1,0,1
56	fail
57oka:
58	set_spr_addr	okb,lr
59	set_icc		0xa 2
60	bcnelr		icc2,0,2
61	fail
62okb:
63	set_spr_addr	okc,lr
64	set_icc		0xb 3
65	bcnelr		icc3,0,3
66	fail
67okc:
68	set_spr_addr	bad,lr
69	set_icc		0xc 0
70	bcnelr		icc0,0,0
71
72	set_spr_addr	bad,lr
73	set_icc		0xd 1
74	bcnelr		icc1,0,1
75
76	set_spr_addr	bad,lr
77	set_icc		0xe 2
78	bcnelr		icc2,0,2
79
80	set_spr_addr	bad,lr
81	set_icc		0xf 3
82	bcnelr		icc3,0,3
83
84	; ccond is true
85	set_spr_immed	1,lcr
86	set_spr_addr	okh,lr
87	set_icc		0x0 0
88	bcnelr		icc0,1,0
89	fail
90okh:
91	set_spr_immed	1,lcr
92	set_spr_addr	oki,lr
93	set_icc		0x1 1
94	bcnelr		icc1,1,1
95	fail
96oki:
97	set_spr_immed	1,lcr
98	set_spr_addr	okj,lr
99	set_icc		0x2 2
100	bcnelr		icc2,1,2
101	fail
102okj:
103	set_spr_immed	1,lcr
104	set_spr_addr	okk,lr
105	set_icc		0x3 3
106	bcnelr		icc3,1,3
107	fail
108okk:
109	set_spr_immed	1,lcr
110	set_spr_addr	bad,lr
111	set_icc		0x4 0
112	bcnelr		icc0,1,0
113
114	set_spr_immed	1,lcr
115	set_spr_addr	bad,lr
116	set_icc		0x5 1
117	bcnelr		icc1,1,1
118
119	set_spr_immed	1,lcr
120	set_spr_addr	bad,lr
121	set_icc		0x6 2
122	bcnelr		icc2,1,2
123
124	set_spr_immed	1,lcr
125	set_spr_addr	bad,lr
126	set_icc		0x7 3
127	bcnelr		icc3,1,3
128
129	set_spr_immed	1,lcr
130	set_spr_addr	okp,lr
131	set_icc		0x8 0
132	bcnelr		icc0,1,0
133	fail
134okp:
135	set_spr_immed	1,lcr
136	set_spr_addr	okq,lr
137	set_icc		0x9 1
138	bcnelr		icc1,1,1
139	fail
140okq:
141	set_spr_immed	1,lcr
142	set_spr_addr	okr,lr
143	set_icc		0xa 2
144	bcnelr		icc2,1,2
145	fail
146okr:
147	set_spr_immed	1,lcr
148	set_spr_addr	oks,lr
149	set_icc		0xb 3
150	bcnelr		icc3,1,3
151	fail
152oks:
153	set_spr_immed	1,lcr
154	set_spr_addr	bad,lr
155	set_icc		0xc 0
156	bcnelr		icc0,1,0
157
158	set_spr_immed	1,lcr
159	set_spr_addr	bad,lr
160	set_icc		0xd 1
161	bcnelr		icc1,1,1
162
163	set_spr_immed	1,lcr
164	set_spr_addr	bad,lr
165	set_icc		0xe 2
166	bcnelr		icc2,1,2
167
168	set_spr_immed	1,lcr
169	set_spr_addr	bad,lr
170	set_icc		0xf 3
171	bcnelr		icc3,1,3
172
173	; ccond is false
174	set_spr_immed	128,lcr
175	set_spr_addr	bad,lr
176	set_icc		0x0 0
177	bcnelr		icc0,1,0
178
179	set_icc		0x1 1
180	bcnelr		icc1,1,1
181
182	set_icc		0x2 2
183	bcnelr		icc2,1,2
184
185	set_icc		0x3 3
186	bcnelr		icc3,1,3
187
188	set_icc		0x4 0
189	bcnelr		icc0,1,0
190
191	set_icc		0x5 1
192	bcnelr		icc1,1,1
193
194	set_icc		0x6 2
195	bcnelr		icc2,1,2
196
197	set_icc		0x7 3
198	bcnelr		icc3,1,3
199
200	set_icc		0x8 0
201	bcnelr		icc0,1,0
202
203	set_icc		0x9 1
204	bcnelr		icc1,1,1
205
206	set_icc		0xa 2
207	bcnelr		icc2,1,2
208
209	set_icc		0xb 3
210	bcnelr		icc3,1,3
211
212	set_icc		0xc 0
213	bcnelr		icc0,1,0
214
215	set_icc		0xd 1
216	bcnelr		icc1,1,1
217
218	set_icc		0xe 2
219	bcnelr		icc2,1,2
220
221	set_icc		0xf 3
222	bcnelr		icc3,1,3
223
224	; ccond is false
225	set_spr_immed	1,lcr
226	set_spr_addr	bad,lr
227	set_icc		0x0 0
228	bcnelr		icc0,0,0
229
230	set_spr_immed	1,lcr
231	set_icc		0x1 1
232	bcnelr		icc1,0,1
233
234	set_spr_immed	1,lcr
235	set_icc		0x2 2
236	bcnelr		icc2,0,2
237
238	set_spr_immed	1,lcr
239	set_icc		0x3 3
240	bcnelr		icc3,0,3
241
242	set_spr_immed	1,lcr
243	set_icc		0x4 0
244	bcnelr		icc0,0,0
245
246	set_spr_immed	1,lcr
247	set_icc		0x5 1
248	bcnelr		icc1,0,1
249
250	set_spr_immed	1,lcr
251	set_icc		0x6 2
252	bcnelr		icc2,0,2
253
254	set_spr_immed	1,lcr
255	set_icc		0x7 3
256	bcnelr		icc3,0,3
257
258	set_spr_immed	1,lcr
259	set_icc		0x8 0
260	bcnelr		icc0,0,0
261
262	set_spr_immed	1,lcr
263	set_icc		0x9 1
264	bcnelr		icc1,0,1
265
266	set_spr_immed	1,lcr
267	set_icc		0xa 2
268	bcnelr		icc2,0,2
269
270	set_spr_immed	1,lcr
271	set_icc		0xb 3
272	bcnelr		icc3,0,3
273
274	set_spr_immed	1,lcr
275	set_icc		0xc 0
276	bcnelr		icc0,0,0
277
278	set_spr_immed	1,lcr
279	set_icc		0xd 1
280	bcnelr		icc1,0,1
281
282	set_spr_immed	1,lcr
283	set_icc		0xe 2
284	bcnelr		icc2,0,2
285
286	set_spr_immed	1,lcr
287	set_icc		0xf 3
288	bcnelr		icc3,0,3
289
290	pass
291bad:
292	fail
293