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