1//Original:testcases/core/c_ldst_ld_d_p_mm_xh/c_ldst_ld_d_p_mm_xh.dsp
2// Spec Reference: c_ldst ld d [p++/--]  h b xh xb
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8// set all regs
9INIT_I_REGS -1;
10INIT_R_REGS 0;
11init_b_regs 0;
12init_l_regs 0;
13init_m_regs -1;
14I0 = P3;
15I2 = SP;
16
17// initial values
18	I1 = P3; P3 = I0; I3 = SP; SP = I2;
19	loadsym p5, DATA_ADDR_1, 0x08;
20	loadsym p1, DATA_ADDR_2, 0x08;
21	loadsym p2, DATA_ADDR_3, 0x08;
22	loadsym i1, DATA_ADDR_4, 0x08;
23	loadsym p4, DATA_ADDR_5, 0x08;
24	loadsym fp, DATA_ADDR_6, 0x08;
25	loadsym i3, DATA_ADDR_7, 0x08;
26	P3 = I1; SP = I3;
27
28	R4 = W [ P5 -- ] (X);
29	R5 = W [ P1 -- ] (X);
30	R6 = W [ P2 -- ] (X);
31	R7 = W [ P3 -- ] (X);
32	R0 = W [ P4 -- ] (X);
33	R1 = W [ FP -- ] (X);
34	R2 = W [ SP -- ] (X);
35	CHECKREG r0, 0xFFFF8A8B;
36	CHECKREG r1, 0x00000A0B;
37	CHECKREG r2, 0xFFFF8A8B;
38	CHECKREG r3, 0x00000000;
39	CHECKREG r4, 0x00000A0B;
40	CHECKREG r5, 0x00002A2B;
41	CHECKREG r6, 0x00004A4B;
42	CHECKREG r7, 0x00006A6B;
43
44	R5 = W [ P5 -- ] (X);
45	R6 = W [ P1 -- ] (X);
46	R7 = W [ P2 -- ] (X);
47	R0 = W [ P3 -- ] (X);
48	R1 = W [ P4 -- ] (X);
49	R2 = W [ FP -- ] (X);
50	R3 = W [ SP -- ] (X);
51	CHECKREG r0, 0x00006465;
52	CHECKREG r1, 0xFFFF8485;
53	CHECKREG r2, 0x00000405;
54	CHECKREG r3, 0xFFFF8485;
55	CHECKREG r4, 0x00000A0B;
56	CHECKREG r5, 0x00000405;
57	CHECKREG r6, 0x00002425;
58	CHECKREG r7, 0x00004445;
59
60	R6 = W [ P5 -- ] (X);
61	R7 = W [ P1 -- ] (X);
62	R0 = W [ P2 -- ] (X);
63	R1 = W [ P3 -- ] (X);
64	R2 = W [ P4 -- ] (X);
65	R3 = W [ FP -- ] (X);
66	R4 = W [ SP -- ] (X);
67	CHECKREG r0, 0x00004647;
68	CHECKREG r1, 0x00006667;
69	CHECKREG r2, 0xFFFF8687;
70	CHECKREG r3, 0x00000607;
71	CHECKREG r4, 0xFFFF8687;
72	CHECKREG r5, 0x00000405;
73	CHECKREG r6, 0x00000607;
74	CHECKREG r7, 0x00002627;
75
76	R7 = W [ P5 -- ] (X);
77	R0 = W [ P1 -- ] (X);
78	R1 = W [ P2 -- ] (X);
79	R2 = W [ P3 -- ] (X);
80	R3 = W [ P4 -- ] (X);
81	R4 = W [ FP -- ] (X);
82	R5 = W [ SP -- ] (X);
83	CHECKREG r0, 0x00002021;
84	CHECKREG r1, 0x00004041;
85	CHECKREG r2, 0x00006061;
86	CHECKREG r3, 0xFFFF8081;
87	CHECKREG r4, 0x00000001;
88	CHECKREG r5, 0xFFFF8081;
89	CHECKREG r6, 0x00000607;
90	CHECKREG r7, 0x00000001;
91
92	P3 = I0; SP = I2;
93	pass
94
95// Pre-load memory with known data
96// More data is defined than will actually be used
97
98	.data
99DATA_ADDR_1:
100	.dd 0x00010203
101	.dd 0x04050607
102	.dd 0x08090A0B
103	.dd 0x0C0D0E0F
104	.dd 0x10111213
105	.dd 0x14151617
106	.dd 0x18191A1B
107	.dd 0x1C1D1E1F
108	.dd 0x11223344
109	.dd 0x55667788
110	.dd 0x99717273
111	.dd 0x74757677
112	.dd 0x82838485
113	.dd 0x86878889
114	.dd 0x80818283
115	.dd 0x84858687
116	.dd 0x01020304
117	.dd 0x05060708
118	.dd 0x09101112
119	.dd 0x14151617
120	.dd 0x18192021
121	.dd 0x22232425
122	.dd 0x26272829
123	.dd 0x30313233
124	.dd 0x34353637
125	.dd 0x38394041
126	.dd 0x42434445
127	.dd 0x46474849
128	.dd 0x50515253
129	.dd 0x54555657
130	.dd 0x58596061
131	.dd 0x62636465
132	.dd 0x66676869
133	.dd 0x74555657
134	.dd 0x78596067
135	.dd 0x72636467
136	.dd 0x76676867
137
138DATA_ADDR_2:
139	.dd 0x20212223
140	.dd 0x24252627
141	.dd 0x28292A2B
142	.dd 0x2C2D2E2F
143	.dd 0x30313233
144	.dd 0x34353637
145	.dd 0x38393A3B
146	.dd 0x3C3D3E3F
147	.dd 0x91929394
148	.dd 0x95969798
149	.dd 0x99A1A2A3
150	.dd 0xA5A6A7A8
151	.dd 0xA9B0B1B2
152	.dd 0xB3B4B5B6
153	.dd 0xB7B8B9C0
154	.dd 0x70717273
155	.dd 0x74757677
156	.dd 0x78798081
157	.dd 0x82838485
158	.dd 0x86C283C4
159	.dd 0x81C283C4
160	.dd 0x82C283C4
161	.dd 0x83C283C4
162	.dd 0x84C283C4
163	.dd 0x85C283C4
164	.dd 0x86C283C4
165	.dd 0x87C288C4
166	.dd 0x88C283C4
167	.dd 0x89C283C4
168	.dd 0x80C283C4
169	.dd 0x81C283C4
170	.dd 0x82C288C4
171	.dd 0x94555659
172	.dd 0x98596069
173	.dd 0x92636469
174	.dd 0x96676869
175
176DATA_ADDR_3:
177	.dd 0x40414243
178	.dd 0x44454647
179	.dd 0x48494A4B
180	.dd 0x4C4D4E4F
181	.dd 0x50515253
182	.dd 0x54555657
183	.dd 0x58595A5B
184	.dd 0xC5C6C7C8
185	.dd 0xC9CACBCD
186	.dd 0xCFD0D1D2
187	.dd 0xD3D4D5D6
188	.dd 0xD7D8D9DA
189	.dd 0xDBDCDDDE
190	.dd 0xDFE0E1E2
191	.dd 0xE3E4E5E6
192	.dd 0x91E899EA
193	.dd 0x92E899EA
194	.dd 0x93E899EA
195	.dd 0x94E899EA
196	.dd 0x95E899EA
197	.dd 0x96E899EA
198	.dd 0x97E899EA
199	.dd 0x98E899EA
200	.dd 0x99E899EA
201	.dd 0x91E899EA
202	.dd 0x92E899EA
203	.dd 0x93E899EA
204	.dd 0x94E899EA
205	.dd 0x95E899EA
206	.dd 0x96E899EA
207	.dd 0x977899EA
208	.dd 0xa455565a
209	.dd 0xa859606a
210	.dd 0xa263646a
211	.dd 0xa667686a
212
213DATA_ADDR_4:
214	.dd 0x60616263
215	.dd 0x64656667
216	.dd 0x68696A6B
217	.dd 0x6C6D6E6F
218	.dd 0x70717273
219	.dd 0x74757677
220	.dd 0x78797A7B
221	.dd 0x7C7D7E7F
222	.dd 0xEBECEDEE
223	.dd 0xF3F4F5F6
224	.dd 0xF7F8F9FA
225	.dd 0xFBFCFDFE
226	.dd 0xFF000102
227	.dd 0x03040506
228	.dd 0x0708090A
229	.dd 0x0B0CAD0E
230	.dd 0xAB0CAD01
231	.dd 0xAB0CAD02
232	.dd 0xAB0CAD03
233	.dd 0xAB0CAD04
234	.dd 0xAB0CAD05
235	.dd 0xAB0CAD06
236	.dd 0xAB0CAA07
237	.dd 0xAB0CAD08
238	.dd 0xAB0CAD09
239	.dd 0xAB0CAD0E
240	.dd 0xAB0CAD0E
241	.dd 0xAB0CAD0E
242	.dd 0xAB0CAD0E
243	.dd 0xAB0CAD0E
244	.dd 0xAB0CAD0E
245	.dd 0xAB0CAD0E
246	.dd 0xB455565B
247	.dd 0xB859606B
248	.dd 0xB263646B
249	.dd 0xB667686B
250
251DATA_ADDR_5:
252	.dd 0x80818283
253	.dd 0x84858687
254	.dd 0x88898A8B
255	.dd 0x8C8D8E8F
256	.dd 0x90919293
257	.dd 0x94959697
258	.dd 0x98999A9B
259	.dd 0x9C9D9E9F
260	.dd 0x0F101213
261	.dd 0x14151617
262	.dd 0x18191A1B
263	.dd 0x1C1D1E1F
264	.dd 0x20212223
265	.dd 0x24252627
266	.dd 0x28292A2B
267	.dd 0x2C2D2E2F
268	.dd 0xBC0DBE21
269	.dd 0xBC1DBE22
270	.dd 0xBC2DBE23
271	.dd 0xBC3DBE24
272	.dd 0xBC4DBE65
273	.dd 0xBC5DBE27
274	.dd 0xBC6DBE28
275	.dd 0xBC7DBE29
276	.dd 0xBC8DBE2F
277	.dd 0xBC9DBE20
278	.dd 0xBCADBE21
279	.dd 0xBCBDBE2F
280	.dd 0xBCCDBE23
281	.dd 0xBCDDBE24
282	.dd 0xBCFDBE25
283	.dd 0xC455565C
284	.dd 0xC859606C
285	.dd 0xC263646C
286	.dd 0xC667686C
287	.dd 0xCC0DBE2C
288
289DATA_ADDR_6:
290	.dd 0x00010203
291	.dd 0x04050607
292	.dd 0x08090A0B
293	.dd 0x0C0D0E0F
294	.dd 0x10111213
295	.dd 0x14151617
296	.dd 0x18191A1B
297	.dd 0x1C1D1E1F
298	.dd 0x20212223
299	.dd 0x24252627
300	.dd 0x28292A2B
301	.dd 0x2C2D2E2F
302	.dd 0x30313233
303	.dd 0x34353637
304	.dd 0x38393A3B
305	.dd 0x3C3D3E3F
306	.dd 0x40414243
307	.dd 0x44454647
308	.dd 0x48494A4B
309	.dd 0x4C4D4E4F
310	.dd 0x50515253
311	.dd 0x54555657
312	.dd 0x58595A5B
313	.dd 0x5C5D5E5F
314	.dd 0x60616263
315	.dd 0x64656667
316	.dd 0x68696A6B
317	.dd 0x6C6D6E6F
318	.dd 0x70717273
319	.dd 0x74757677
320	.dd 0x78797A7B
321	.dd 0x7C7D7E7F
322
323DATA_ADDR_7:
324	.dd 0x80818283
325	.dd 0x84858687
326	.dd 0x88898A8B
327	.dd 0x8C8D8E8F
328	.dd 0x90919293
329	.dd 0x94959697
330	.dd 0x98999A9B
331	.dd 0x9C9D9E9F
332	.dd 0xA0A1A2A3
333	.dd 0xA4A5A6A7
334	.dd 0xA8A9AAAB
335	.dd 0xACADAEAF
336	.dd 0xB0B1B2B3
337	.dd 0xB4B5B6B7
338	.dd 0xB8B9BABB
339	.dd 0xBCBDBEBF
340	.dd 0xC0C1C2C3
341	.dd 0xC4C5C6C7
342	.dd 0xC8C9CACB
343	.dd 0xCCCDCECF
344	.dd 0xD0D1D2D3
345	.dd 0xD4D5D6D7
346	.dd 0xD8D9DADB
347	.dd 0xDCDDDEDF
348	.dd 0xE0E1E2E3
349	.dd 0xE4E5E6E7
350	.dd 0xE8E9EAEB
351	.dd 0xECEDEEEF
352	.dd 0xF0F1F2F3
353	.dd 0xF4F5F6F7
354	.dd 0xF8F9FAFB
355	.dd 0xFCFDFEFF
356