1# frv testcase for cxorcc $GRi,$GRj,$GRk,$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cxorcc
9cxorcc:
10	set_spr_immed	0x1b1b,cccr
11
12	set_gr_limmed   0xaaaa,0xaaaa,gr7
13	set_gr_limmed   0x5555,0x5555,gr8
14	set_icc         0x07,0		; Set mask opposite of expected
15	cxorcc      	gr7,gr8,gr8,cc0,1
16	test_icc	1 0 1 1 icc0
17	test_gr_limmed 	0xffff,0xffff,gr8
18
19	set_gr_immed	0x00000000,gr7
20	set_gr_immed	0x00000000,gr8
21	set_icc         0x08,0		; Set mask opposite of expected
22	cxorcc		gr7,gr8,gr8,cc0,1
23	test_icc	0 1 0 0 icc0
24	test_gr_immed  	0x00000000,gr8
25
26	set_gr_limmed   0xaaaa,0xaaaa,gr7
27	set_gr_limmed   0xaaaa,0xaaaa,gr8
28	set_icc         0x0b,0		; Set mask opposite of expected
29	cxorcc      	gr7,gr8,gr8,cc4,1
30	test_icc	0 1 1 1 icc0
31	test_gr_immed  	0x00000000,gr8
32
33	set_gr_limmed   0xdead,0x0000,gr7
34	set_gr_limmed   0x0000,0xbeef,gr8
35	set_icc         0x05,0		; Set mask opposite of expected
36	cxorcc		gr7,gr8,gr8,cc4,1
37	test_icc	1 0 0 1 icc0
38	test_gr_limmed  0xdead,0xbeef,gr8
39
40	set_gr_limmed   0xaaaa,0xaaaa,gr7
41	set_gr_limmed   0x5555,0x5555,gr8
42	set_icc         0x07,0		; Set mask opposite of expected
43	cxorcc      	gr7,gr8,gr8,cc0,0
44	test_icc	0 1 1 1 icc0
45	test_gr_limmed 	0x5555,0x5555,gr8
46
47	set_gr_immed	0x00007fff,gr7
48	set_gr_immed	0x00000000,gr8
49	set_icc         0x08,0		; Set mask opposite of expected
50	cxorcc		gr7,gr8,gr8,cc0,0
51	test_icc	1 0 0 0 icc0
52	test_gr_immed  	0x00000000,gr8
53
54	set_gr_limmed   0xaaaa,0xaaaa,gr7
55	set_gr_limmed   0xaaaa,0xaaaa,gr8
56	set_icc         0x0b,0		; Set mask opposite of expected
57	cxorcc      	gr7,gr8,gr8,cc4,0
58	test_icc	1 0 1 1 icc0
59	test_gr_limmed 	0xaaaa,0xaaaa,gr8
60
61	set_gr_limmed   0xdead,0x0000,gr7
62	set_gr_limmed   0x0000,0xbeef,gr8
63	set_icc         0x05,0		; Set mask opposite of expected
64	cxorcc		gr7,gr8,gr8,cc4,0
65	test_icc	0 1 0 1 icc0
66	test_gr_limmed  0x0000,0xbeef,gr8
67
68	set_gr_limmed   0xaaaa,0xaaaa,gr7
69	set_gr_limmed   0x5555,0x5555,gr8
70	set_icc         0x07,1		; Set mask opposite of expected
71	cxorcc      	gr7,gr8,gr8,cc1,0
72	test_icc	1 0 1 1 icc1
73	test_gr_limmed 	0xffff,0xffff,gr8
74
75	set_gr_immed	0x00000000,gr7
76	set_gr_immed	0x00000000,gr8
77	set_icc         0x08,1		; Set mask opposite of expected
78	cxorcc		gr7,gr8,gr8,cc1,0
79	test_icc	0 1 0 0 icc1
80	test_gr_immed  	0x00000000,gr8
81
82	set_gr_limmed   0xaaaa,0xaaaa,gr7
83	set_gr_limmed   0xaaaa,0xaaaa,gr8
84	set_icc         0x0b,1		; Set mask opposite of expected
85	cxorcc      	gr7,gr8,gr8,cc5,0
86	test_icc	0 1 1 1 icc1
87	test_gr_immed  	0x00000000,gr8
88
89	set_gr_limmed   0xdead,0x0000,gr7
90	set_gr_limmed   0x0000,0xbeef,gr8
91	set_icc         0x05,1		; Set mask opposite of expected
92	cxorcc		gr7,gr8,gr8,cc5,0
93	test_icc	1 0 0 1 icc1
94	test_gr_limmed  0xdead,0xbeef,gr8
95
96	set_gr_limmed   0xaaaa,0xaaaa,gr7
97	set_gr_limmed   0x5555,0x5555,gr8
98	set_icc         0x07,1		; Set mask opposite of expected
99	cxorcc      	gr7,gr8,gr8,cc1,1
100	test_icc	0 1 1 1 icc1
101	test_gr_limmed 	0x5555,0x5555,gr8
102
103	set_gr_immed	0x00007fff,gr7
104	set_gr_immed	0x00000000,gr8
105	set_icc         0x08,1		; Set mask opposite of expected
106	cxorcc		gr7,gr8,gr8,cc1,1
107	test_icc	1 0 0 0 icc1
108	test_gr_immed  	0x00000000,gr8
109
110	set_gr_limmed   0xaaaa,0xaaaa,gr7
111	set_gr_limmed   0xaaaa,0xaaaa,gr8
112	set_icc         0x0b,1		; Set mask opposite of expected
113	cxorcc      	gr7,gr8,gr8,cc5,1
114	test_icc	1 0 1 1 icc1
115	test_gr_limmed 	0xaaaa,0xaaaa,gr8
116
117	set_gr_limmed   0xdead,0x0000,gr7
118	set_gr_limmed   0x0000,0xbeef,gr8
119	set_icc         0x05,1		; Set mask opposite of expected
120	cxorcc		gr7,gr8,gr8,cc5,1
121	test_icc	0 1 0 1 icc1
122	test_gr_limmed  0x0000,0xbeef,gr8
123
124	set_gr_limmed   0xaaaa,0xaaaa,gr7
125	set_gr_limmed   0x5555,0x5555,gr8
126	set_icc         0x07,2		; Set mask opposite of expected
127	cxorcc      	gr7,gr8,gr8,cc2,0
128	test_icc	0 1 1 1 icc2
129	test_gr_limmed 	0x5555,0x5555,gr8
130
131	set_gr_immed	0x00007fff,gr7
132	set_gr_immed	0x00000000,gr8
133	set_icc         0x08,2		; Set mask opposite of expected
134	cxorcc		gr7,gr8,gr8,cc2,0
135	test_icc	1 0 0 0 icc2
136	test_gr_immed  	0x00000000,gr8
137
138	set_gr_limmed   0xaaaa,0xaaaa,gr7
139	set_gr_limmed   0xaaaa,0xaaaa,gr8
140	set_icc         0x0b,2		; Set mask opposite of expected
141	cxorcc      	gr7,gr8,gr8,cc6,1
142	test_icc	1 0 1 1 icc2
143	test_gr_limmed 	0xaaaa,0xaaaa,gr8
144
145	set_gr_limmed   0xdead,0x0000,gr7
146	set_gr_limmed   0x0000,0xbeef,gr8
147	set_icc         0x05,2		; Set mask opposite of expected
148	cxorcc		gr7,gr8,gr8,cc6,1
149	test_icc	0 1 0 1 icc2
150	test_gr_limmed  0x0000,0xbeef,gr8
151
152	set_gr_limmed   0xaaaa,0xaaaa,gr7
153	set_gr_limmed   0x5555,0x5555,gr8
154	set_icc         0x07,3		; Set mask opposite of expected
155	cxorcc      	gr7,gr8,gr8,cc3,0
156	test_icc	0 1 1 1 icc3
157	test_gr_limmed 	0x5555,0x5555,gr8
158
159	set_gr_immed	0x00007fff,gr7
160	set_gr_immed	0x00000000,gr8
161	set_icc         0x08,3		; Set mask opposite of expected
162	cxorcc		gr7,gr8,gr8,cc3,0
163	test_icc	1 0 0 0 icc3
164	test_gr_immed  	0x00000000,gr8
165
166	set_gr_limmed   0xaaaa,0xaaaa,gr7
167	set_gr_limmed   0xaaaa,0xaaaa,gr8
168	set_icc         0x0b,3		; Set mask opposite of expected
169	cxorcc      	gr7,gr8,gr8,cc7,1
170	test_icc	1 0 1 1 icc3
171	test_gr_limmed 	0xaaaa,0xaaaa,gr8
172
173	set_gr_limmed   0xdead,0x0000,gr7
174	set_gr_limmed   0x0000,0xbeef,gr8
175	set_icc         0x05,3		; Set mask opposite of expected
176	cxorcc		gr7,gr8,gr8,cc7,1
177	test_icc	0 1 0 1 icc3
178	test_gr_limmed  0x0000,0xbeef,gr8
179
180	pass
181