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