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