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