1//Original:testcases/core/c_ldst_st_p_d_mm_h/c_ldst_st_p_d_mm_h.dsp
2// Spec Reference: c_ldst st_p-- h half
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	imm32 r0, 0x0a231507;
18	imm32 r1, 0x1b342618;
19	imm32 r2, 0x2c453729;
20	imm32 r3, 0x3d56483a;
21	imm32 r4, 0x4e67594b;
22	imm32 r5, 0x5f786a5c;
23	imm32 r6, 0x60897b6d;
24	imm32 r7, 0x719a8c7e;
25
26// reset  values
27	I1 = P3; P3 = I0; I3 = SP; SP = I2;
28	loadsym p5, DATA_ADDR_1, 0x20;
29	loadsym p1, DATA_ADDR_2, 0x20;
30	loadsym p2, DATA_ADDR_3, 0x20;
31	loadsym i1, DATA_ADDR_4, 0x20;
32	loadsym p4, DATA_ADDR_5, 0x20;
33	loadsym fp, DATA_ADDR_6, 0x20;
34	loadsym i3, DATA_ADDR_7, 0x20;
35	P3 = I1; SP = I3;
36
37	W [ P5 -- ] = R0;
38	W [ P1 -- ] = R1;
39	W [ P2 -- ] = R2;
40	W [ P3 -- ] = R3;
41	W [ P4 -- ] = R4;
42	W [ FP -- ] = R5;
43	W [ SP -- ] = R6;
44
45	W [ P5 -- ] = R1;
46	W [ P1 -- ] = R2;
47	W [ P2 -- ] = R3;
48	W [ P3 -- ] = R4;
49	W [ P4 -- ] = R5;
50	W [ FP -- ] = R6;
51	W [ SP -- ] = R7;
52
53	W [ P5 -- ] = R2;
54	W [ P1 -- ] = R3;
55	W [ P2 -- ] = R4;
56	W [ P3 -- ] = R5;
57	W [ P4 -- ] = R6;
58	W [ FP -- ] = R7;
59	W [ SP -- ] = R0;
60
61	W [ P5 -- ] = R3;
62	W [ P1 -- ] = R4;
63	W [ P2 -- ] = R5;
64	W [ P3 -- ] = R6;
65	W [ P4 -- ] = R7;
66	W [ FP -- ] = R0;
67	W [ SP -- ] = R1;
68
69	W [ P5 -- ] = R4;
70	W [ P1 -- ] = R5;
71	W [ P2 -- ] = R6;
72	W [ P3 -- ] = R7;
73	W [ P4 -- ] = R0;
74	W [ FP -- ] = R1;
75	W [ SP -- ] = R2;
76
77	W [ P5 -- ] = R5;
78	W [ P1 -- ] = R6;
79	W [ P2 -- ] = R7;
80	W [ P3 -- ] = R0;
81	W [ P4 -- ] = R1;
82	W [ FP -- ] = R2;
83	W [ SP -- ] = R3;
84
85	W [ P5 -- ] = R6;
86	W [ P1 -- ] = R7;
87	W [ P2 -- ] = R0;
88	W [ P3 -- ] = R1;
89	W [ P4 -- ] = R2;
90	W [ FP -- ] = R3;
91	W [ SP -- ] = R4;
92
93	W [ P5 -- ] = R7;
94	W [ P1 -- ] = R0;
95	W [ P2 -- ] = R1;
96	W [ P3 -- ] = R2;
97	W [ P4 -- ] = R3;
98	W [ FP -- ] = R4;
99	W [ SP -- ] = R5;
100
101	I1 = P3; P3 = I0; I3 = SP; SP = I2;
102	loadsym p5, DATA_ADDR_1, 0x20;
103	loadsym p1, DATA_ADDR_2, 0x20;
104	loadsym p2, DATA_ADDR_3, 0x20;
105	loadsym i1, DATA_ADDR_4, 0x20;
106	loadsym p4, DATA_ADDR_5, 0x20;
107	loadsym fp, DATA_ADDR_6, 0x20;
108	loadsym i3, DATA_ADDR_7, 0x20;
109	 P3 = I1; SP = I3;
110
111	R0 = [ P1 -- ];
112	R1 = [ P2 -- ];
113	R2 = [ P3 -- ];
114	R3 = [ P4 -- ];
115	R4 = [ P5 -- ];
116	R5 = [ FP -- ];
117	R6 = [ SP -- ];
118	CHECKREG r1, 0x00003729;
119	CHECKREG r2, 0x0000483A;
120	CHECKREG r3, 0x0000594B;
121	CHECKREG r4, 0x00001507;
122	CHECKREG r5, 0x00006A5C;
123	CHECKREG r6, 0xE0E17B6D;
124	CHECKREG r7, 0x719A8C7E;
125	R1 = [ P1 -- ];
126	R2 = [ P2 -- ];
127	R3 = [ P3 -- ];
128	R4 = [ P4 -- ];
129	R5 = [ P5 -- ];
130	R6 = [ FP -- ];
131	R7 = [ SP -- ];
132	CHECKREG r1, 0x3729483A;
133	CHECKREG r2, 0x483A594B;
134	CHECKREG r3, 0x594B6A5C;
135	CHECKREG r4, 0x6A5C7B6D;
136	CHECKREG r5, 0x26183729;
137	CHECKREG r6, 0x7B6D8C7E;
138	CHECKREG r7, 0x8C7E1507;
139	R3 = [ P1 -- ];
140	R4 = [ P2 -- ];
141	R5 = [ P3 -- ];
142	R6 = [ P4 -- ];
143	R7 = [ P5 -- ];
144	R0 = [ FP -- ];
145	R1 = [ SP -- ];
146	CHECKREG r1, 0x26183729;
147	CHECKREG r2, 0x483A594B;
148	CHECKREG r3, 0x594B6A5C;
149	CHECKREG r4, 0x6A5C7B6D;
150	CHECKREG r5, 0x7B6D8C7E;
151	CHECKREG r6, 0x8C7E1507;
152	CHECKREG r7, 0x483A594B;
153	R3 = [ P1 -- ];
154	R4 = [ P2 -- ];
155	R5 = [ P3 -- ];
156	R6 = [ P4 -- ];
157	R7 = [ P5 -- ];
158	R0 = [ FP -- ];
159	R1 = [ SP -- ];
160	CHECKREG r1, 0x483A594B;
161	CHECKREG r2, 0x483A594B;
162	CHECKREG r3, 0x7B6D8C7E;
163	CHECKREG r4, 0x8C7E1507;
164	CHECKREG r5, 0x15072618;
165	CHECKREG r6, 0x26183729;
166	CHECKREG r7, 0x6A5C7B6D;
167	R4 = [ P1 -- ];
168	R5 = [ P2 -- ];
169	R6 = [ P3 -- ];
170	R7 = [ P4 -- ];
171	R0 = [ P5 -- ];
172	R1 = [ FP -- ];
173	R2 = [ SP -- ];
174	CHECKREG r1, 0x594BB2B3;
175	CHECKREG r2, 0x6A5CD2D3;
176	CHECKREG r3, 0x7B6D8C7E;
177	CHECKREG r4, 0x15073233;
178	CHECKREG r5, 0x26185253;
179	CHECKREG r6, 0x37297273;
180	CHECKREG r7, 0x483A9293;
181	R5 = [ P1 -- ];
182	R6 = [ P2 -- ];
183	R7 = [ P3 -- ];
184	R0 = [ P4 -- ];
185	R1 = [ P5 -- ];
186	R2 = [ FP -- ];
187	R3 = [ SP -- ];
188	CHECKREG r1, 0x0C0D0E0F;
189	CHECKREG r2, 0xACADAEAF;
190	CHECKREG r3, 0xCCCDCECF;
191	CHECKREG r4, 0x15073233;
192	CHECKREG r5, 0x2C2D2E2F;
193	CHECKREG r6, 0x4C4D4E4F;
194	CHECKREG r7, 0x6C6D6E6F;
195	R6 = [ P1 -- ];
196	R7 = [ P2 -- ];
197	R0 = [ P3 -- ];
198	R1 = [ P4 -- ];
199	R2 = [ P5 -- ];
200	R3 = [ FP -- ];
201	R0 = [ SP -- ];
202	CHECKREG r1, 0x88898A8B;
203	CHECKREG r2, 0x08090A0B;
204	CHECKREG r3, 0xA8A9AAAB;
205	CHECKREG r4, 0x15073233;
206	CHECKREG r5, 0x2C2D2E2F;
207	CHECKREG r6, 0x28292A2B;
208	CHECKREG r7, 0x48494A4B;
209
210	P3 = I0; SP = I2;
211	pass
212
213// Pre-load memory with known data
214// More data is defined than will actually be used
215
216	.data
217DATA_ADDR_1:
218	.dd 0x00010203
219	.dd 0x04050607
220	.dd 0x08090A0B
221	.dd 0x0C0D0E0F
222	.dd 0x10111213
223	.dd 0x14151617
224	.dd 0x18191A1B
225	.dd 0x1C1D1E1F
226	.dd 0x00000000
227	.dd 0x00000000
228	.dd 0x00000000
229	.dd 0x00000000
230	.dd 0x00000000
231	.dd 0x00000000
232	.dd 0x00000000
233	.dd 0x00000000
234	.dd 0x00000000
235	.dd 0x00000000
236	.dd 0x00000000
237	.dd 0x00000000
238	.dd 0x00000000
239	.dd 0x00000000
240	.dd 0x00000000
241	.dd 0x00000000
242	.dd 0x00000000
243	.dd 0x00000000
244	.dd 0x00000000
245	.dd 0x00000000
246	.dd 0x00000000
247	.dd 0x00000000
248	.dd 0x00000000
249	.dd 0x00000000
250	.dd 0x00000000
251	.dd 0x00000000
252	.dd 0x00000000
253	.dd 0x00000000
254	.dd 0x00000000
255	.dd 0x00000000
256	.dd 0x00000000
257
258DATA_ADDR_2:
259	.dd 0x20212223
260	.dd 0x24252627
261	.dd 0x28292A2B
262	.dd 0x2C2D2E2F
263	.dd 0x30313233
264	.dd 0x34353637
265	.dd 0x38393A3B
266	.dd 0x3C3D3E3F
267	.dd 0x00000000
268	.dd 0x00000000
269	.dd 0x00000000
270	.dd 0x00000000
271	.dd 0x00000000
272	.dd 0x00000000
273	.dd 0x00000000
274	.dd 0x00000000
275	.dd 0x00000000
276	.dd 0x00000000
277	.dd 0x00000000
278	.dd 0x00000000
279	.dd 0x00000000
280	.dd 0x00000000
281	.dd 0x00000000
282	.dd 0x00000000
283	.dd 0x00000000
284	.dd 0x00000000
285	.dd 0x00000000
286	.dd 0x00000000
287	.dd 0x00000000
288	.dd 0x00000000
289	.dd 0x00000000
290	.dd 0x00000000
291	.dd 0x00000000
292	.dd 0x00000000
293	.dd 0x00000000
294	.dd 0x00000000
295	.dd 0x00000000
296	.dd 0x00000000
297
298DATA_ADDR_3:
299	.dd 0x40414243
300	.dd 0x44454647
301	.dd 0x48494A4B
302	.dd 0x4C4D4E4F
303	.dd 0x50515253
304	.dd 0x54555657
305	.dd 0x58595A5B
306	.dd 0x5C5D5E5F
307	.dd 0x00000000
308	.dd 0x00000000
309	.dd 0x00000000
310	.dd 0x00000000
311	.dd 0x00000000
312	.dd 0x00000000
313	.dd 0x00000000
314	.dd 0x00000000
315	.dd 0x00000000
316	.dd 0x00000000
317	.dd 0x00000000
318	.dd 0x00000000
319	.dd 0x00000000
320	.dd 0x00000000
321	.dd 0x00000000
322	.dd 0x00000000
323	.dd 0x00000000
324	.dd 0x00000000
325	.dd 0x00000000
326	.dd 0x00000000
327	.dd 0x00000000
328	.dd 0x00000000
329	.dd 0x00000000
330	.dd 0x00000000
331	.dd 0x00000000
332	.dd 0x00000000
333	.dd 0x00000000
334	.dd 0x00000000
335	.dd 0x00000000
336	.dd 0x00000000
337	.dd 0x00000000
338	.dd 0x00000000
339	.dd 0x00000000
340	.dd 0x00000000
341	.dd 0x00000000
342	.dd 0x00000000
343	.dd 0x00000000
344	.dd 0x00000000
345	.dd 0x00000000
346	.dd 0x00000000
347
348DATA_ADDR_4:
349	.dd 0x60616263
350	.dd 0x64656667
351	.dd 0x68696A6B
352	.dd 0x6C6D6E6F
353	.dd 0x70717273
354	.dd 0x74757677
355	.dd 0x78797A7B
356	.dd 0x7C7D7E7F
357	.dd 0x00000000
358	.dd 0x00000000
359	.dd 0x00000000
360	.dd 0x00000000
361	.dd 0x00000000
362	.dd 0x00000000
363	.dd 0x00000000
364	.dd 0x00000000
365	.dd 0x00000000
366	.dd 0x00000000
367	.dd 0x00000000
368	.dd 0x00000000
369	.dd 0x00000000
370	.dd 0x00000000
371	.dd 0x00000000
372	.dd 0x00000000
373	.dd 0x00000000
374	.dd 0x00000000
375	.dd 0x00000000
376	.dd 0x00000000
377	.dd 0x00000000
378	.dd 0x00000000
379	.dd 0x00000000
380	.dd 0x00000000
381	.dd 0x00000000
382	.dd 0x00000000
383	.dd 0x00000000
384	.dd 0x00000000
385	.dd 0x00000000
386	.dd 0x00000000
387	.dd 0x00000000
388	.dd 0x00000000
389	.dd 0x00000000
390	.dd 0x00000000
391	.dd 0x00000000
392	.dd 0x00000000
393	.dd 0x00000000
394	.dd 0x00000000
395	.dd 0x00000000
396	.dd 0x00000000
397
398DATA_ADDR_5:
399	.dd 0x80818283
400	.dd 0x84858687
401	.dd 0x88898A8B
402	.dd 0x8C8D8E8F
403	.dd 0x90919293
404	.dd 0x94959697
405	.dd 0x98999A9B
406	.dd 0x9C9D9E9F
407	.dd 0x00000000
408	.dd 0x00000000
409	.dd 0x00000000
410	.dd 0x00000000
411	.dd 0x00000000
412	.dd 0x00000000
413	.dd 0x00000000
414	.dd 0x00000000
415	.dd 0x00000000
416	.dd 0x00000000
417	.dd 0x00000000
418	.dd 0x00000000
419	.dd 0x00000000
420	.dd 0x00000000
421	.dd 0x00000000
422	.dd 0x00000000
423	.dd 0x00000000
424	.dd 0x00000000
425	.dd 0x00000000
426	.dd 0x00000000
427	.dd 0x00000000
428	.dd 0x00000000
429	.dd 0x00000000
430	.dd 0x00000000
431	.dd 0x00000000
432	.dd 0x00000000
433	.dd 0x00000000
434	.dd 0x00000000
435	.dd 0x00000000
436	.dd 0x00000000
437	.dd 0x00000000
438	.dd 0x00000000
439	.dd 0x00000000
440	.dd 0x00000000
441	.dd 0x00000000
442	.dd 0x00000000
443	.dd 0x00000000
444	.dd 0x00000000
445	.dd 0x00000000
446	.dd 0x00000000
447
448DATA_ADDR_6:
449	.dd 0xA0A1A2A3
450	.dd 0xA4A5A6A7
451	.dd 0xA8A9AAAB
452	.dd 0xACADAEAF
453	.dd 0xB0B1B2B3
454	.dd 0xB4B5B6B7
455	.dd 0xB8B9BABB
456	.dd 0xBCBDBEBF
457	.dd 0x00000000
458	.dd 0x00000000
459	.dd 0x00000000
460	.dd 0x00000000
461	.dd 0x00000000
462	.dd 0x00000000
463	.dd 0x00000000
464	.dd 0x00000000
465	.dd 0x00000000
466	.dd 0x00000000
467	.dd 0x00000000
468	.dd 0x00000000
469	.dd 0x00000000
470	.dd 0x00000000
471	.dd 0x00000000
472	.dd 0x00000000
473	.dd 0x00000000
474	.dd 0x00000000
475	.dd 0x00000000
476	.dd 0x00000000
477	.dd 0x00000000
478	.dd 0x00000000
479	.dd 0x00000000
480	.dd 0x00000000
481	.dd 0x00000000
482	.dd 0x00000000
483	.dd 0x00000000
484	.dd 0x00000000
485	.dd 0x00000000
486	.dd 0x00000000
487	.dd 0x00000000
488	.dd 0x00000000
489	.dd 0x00000000
490	.dd 0x00000000
491	.dd 0x00000000
492	.dd 0x00000000
493	.dd 0x00000000
494	.dd 0x00000000
495	.dd 0x00000000
496	.dd 0x00000000
497
498DATA_ADDR_7:
499	.dd 0xC0C1C2C3
500	.dd 0xC4C5C6C7
501	.dd 0xC8C9CACB
502	.dd 0xCCCDCECF
503	.dd 0xD0D1D2D3
504	.dd 0xD4D5D6D7
505	.dd 0xD8D9DADB
506	.dd 0xDCDDDEDF
507	.dd 0xE0E1E2E3
508	.dd 0xE4E5E6E7
509	.dd 0xE8E9EAEB
510	.dd 0xECEDEEEF
511	.dd 0xF0F1F2F3
512	.dd 0xF4F5F6F7
513	.dd 0xF8F9FAFB
514	.dd 0xFCFDFEFF
515	.dd 0x00000000
516	.dd 0x00000000
517	.dd 0x00000000
518	.dd 0x00000000
519	.dd 0x00000000
520	.dd 0x00000000
521	.dd 0x00000000
522	.dd 0x00000000
523	.dd 0x00000000
524	.dd 0x00000000
525	.dd 0x00000000
526	.dd 0x00000000
527	.dd 0x00000000
528	.dd 0x00000000
529	.dd 0x00000000
530	.dd 0x00000000
531	.dd 0x00000000
532	.dd 0x00000000
533	.dd 0x00000000
534	.dd 0x00000000
535	.dd 0x00000000
536	.dd 0x00000000
537	.dd 0x00000000
538	.dd 0x00000000
539	.dd 0x00000000
540	.dd 0x00000000
541	.dd 0x00000000
542	.dd 0x00000000
543	.dd 0x00000000
544	.dd 0x00000000
545	.dd 0x00000000
546	.dd 0x00000000
547	.dd 0x00000000
548	.dd 0x00000000
549	.dd 0x00000000
550	.dd 0x00000000
551	.dd 0x00000000
552	.dd 0x00000000
553	.dd 0x00000000
554	.dd 0x00000000
555