1//Original:testcases/core/c_ldstii_ld_preg/c_ldstii_ld_preg.dsp
2// Spec Reference: c_ldstii load preg
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8// set all regs
9init_i_regs 0;
10init_b_regs 0;
11init_l_regs 0;
12init_m_regs 0;
13INIT_R_REGS 0;
14I0 = P3;
15I2 = SP;
16
17// initial values
18	I1 = P3; P3 = I0; I3 = SP; SP = I2;
19	loadsym p1, DATA_ADDR_1, 0x00;
20	loadsym p2, DATA_ADDR_2, 0x04;
21	loadsym i1, DATA_ADDR_3, 0x04;
22	loadsym p4, DATA_ADDR_1, 0x00;
23	loadsym p5, DATA_ADDR_2, 0x00;
24	loadsym fp, DATA_ADDR_3, 0x00;
25	loadsym i3, DATA_ADDR_4, 0x00;
26	P3 = I1; SP = I3;
27
28	P2 = [ P1 + 0 ];
29	P3 = [ P1 + 4 ];
30	P4 = [ P1 + 8 ];
31	P5 = [ P1 + 12 ];
32	SP = [ P1 + 16 ];
33	FP = [ P1 + 20 ];
34	P1 = [ P1 + 24 ];
35	CHECKREG p1, 0x18191A1B;
36	CHECKREG p2, 0x00010203;
37	CHECKREG p3, 0x04050607;
38	CHECKREG p4, 0x08090A0B;
39	CHECKREG p5, 0x0C0D0E0F;
40	CHECKREG sp, 0x10111213;
41	CHECKREG fp, 0x14151617;
42
43	I1 = P3; P3 = I0; I3 = SP; SP = I2;
44	loadsym p2, DATA_ADDR_2, 0x04;
45	P3 = I1; SP = I3;
46
47	P1 = [ P2 + 28 ];
48	P3 = [ P2 + 36 ];
49	P4 = [ P2 + 40 ];
50	P5 = [ P2 + 44 ];
51	SP = [ P2 + 48 ];
52	FP = [ P2 + 52 ];
53	P2 = [ P2 + 32 ];
54	CHECKREG p1, 0x91929394;
55	CHECKREG p2, 0x95969798;
56	CHECKREG p3, 0x99A1A2A3;
57	CHECKREG p4, 0xA5A6A7A8;
58	CHECKREG p5, 0xA9B0B1B2;
59	CHECKREG sp, 0xB3B4B5B6;
60	CHECKREG fp, 0xB7B8B9C0;
61
62	I1 = P3; P3 = I0; I3 = SP; SP = I2;
63	loadsym i1, DATA_ADDR_3, 0x00;
64	P3 = I1; SP = I3;
65
66	P1 = [ P3 + 56 ];
67	P2 = [ P3 + 60 ];
68	P4 = [ P3 + 60 ];
69	P5 = [ P3 + 56 ];
70	SP = [ P3 + 52 ];
71	FP = [ P3 + 48 ];
72	P3 = [ P3 + 64 ];
73	CHECKREG p1, 0xE3E4E5E6;
74	CHECKREG p2, 0x91E899EA;
75	CHECKREG p3, 0x92E899EA;
76	CHECKREG p4, 0x91E899EA;
77	CHECKREG p5, 0xE3E4E5E6;
78	CHECKREG sp, 0xDFE0E1E2;
79	CHECKREG fp, 0xDBDCDDDE;
80
81	I1 = P3; P3 = I0; I3 = SP; SP = I2;
82	loadsym p4, DATA_ADDR_4, 0x00;
83	P3 = I1; SP = I3;
84
85	P1 = [ P4 + 44 ];
86	P2 = [ P4 + 40 ];
87	P3 = [ P4 + 36 ];
88	P5 = [ P4 + 28 ];
89	SP = [ P4 + 24 ];
90	FP = [ P4 + 20 ];
91	P4 = [ P4 + 32 ];
92	CHECKREG p1, 0xFBFCFDFE;
93	CHECKREG p2, 0xF7F8F9FA;
94	CHECKREG p3, 0xF3F4F5F6;
95	CHECKREG p4, 0xEBECEDEE;
96	CHECKREG p5, 0x7C7D7E7F;
97	CHECKREG sp, 0x78797A7B;
98	CHECKREG fp, 0x74757677;
99
100	I1 = P3; P3 = I0; I3 = SP; SP = I2;
101	loadsym p5, DATA_ADDR_1, 0x00;
102	P3 = I1; SP = I3;
103
104	P1 = [ P5 + 16 ];
105	P2 = [ P5 + 12 ];
106	P3 = [ P5 + 8 ];
107	P4 = [ P5 + 0 ];
108	SP = [ P5 + 4 ];
109	FP = [ P5 + 8 ];
110	P5 = [ P5 + 4 ];
111	CHECKREG p1, 0x10111213;
112	CHECKREG p2, 0x0C0D0E0F;
113	CHECKREG p3, 0x08090A0B;
114	CHECKREG p4, 0x00010203;
115	CHECKREG p5, 0x04050607;
116	CHECKREG sp, 0x04050607;
117	CHECKREG fp, 0x08090A0B;
118
119	I1 = P3; P3 = I0; I3 = SP; SP = I2;
120	loadsym i3, DATA_ADDR_2, 0x00;
121	P3 = I1; SP = I3;
122
123	P1 = [ SP + 12 ];
124	P2 = [ SP + 16 ];
125	P3 = [ SP + 20 ];
126	P4 = [ SP + 24 ];
127	P5 = [ SP + 28 ];
128	FP = [ SP + 32 ];
129	SP = [ SP + 36 ];
130	CHECKREG p1, 0x2C2D2E2F;
131	CHECKREG p2, 0x30313233;
132	CHECKREG p3, 0x34353637;
133	CHECKREG p4, 0x38393A3B;
134	CHECKREG p5, 0x3C3D3E3F;
135	CHECKREG sp, 0x95969798;
136	CHECKREG fp, 0x91929394;
137
138	I1 = P3; P3 = I0; I3 = SP; SP = I2;
139	loadsym fp, DATA_ADDR_3, 0x00;
140	P3 = I1; SP = I3;
141
142	P1 = [ FP + 40 ];
143	P2 = [ FP + 44 ];
144	P3 = [ FP + 48 ];
145	P4 = [ FP + 52 ];
146	P5 = [ FP + 56 ];
147	SP = [ FP + 60 ];
148	FP = [ FP + 64 ];
149	CHECKREG p1, 0xD3D4D5D6;
150	CHECKREG p2, 0xD7D8D9DA;
151	CHECKREG p3, 0xDBDCDDDE;
152	CHECKREG p4, 0xDFE0E1E2;
153	CHECKREG p5, 0xE3E4E5E6;
154	CHECKREG sp, 0x91E899EA;
155	CHECKREG fp, 0x92E899EA;
156
157	P3 = I0; SP = I2;
158	pass
159
160// Pre-load memory with known data
161// More data is defined than will actually be used
162
163	.data
164DATA_ADDR_1:
165	.dd 0x00010203
166	.dd 0x04050607
167	.dd 0x08090A0B
168	.dd 0x0C0D0E0F
169	.dd 0x10111213
170	.dd 0x14151617
171	.dd 0x18191A1B
172	.dd 0x1C1D1E1F
173	.dd 0x11223344
174	.dd 0x55667788
175	.dd 0x99717273
176	.dd 0x74757677
177	.dd 0x82838485
178	.dd 0x86878889
179	.dd 0x80818283
180	.dd 0x84858687
181	.dd 0x01020304
182	.dd 0x05060708
183	.dd 0x09101112
184	.dd 0x14151617
185	.dd 0x18192021
186	.dd 0x22232425
187	.dd 0x26272829
188	.dd 0x30313233
189	.dd 0x34353637
190	.dd 0x38394041
191	.dd 0x42434445
192	.dd 0x46474849
193	.dd 0x50515253
194	.dd 0x54555657
195	.dd 0x58596061
196	.dd 0x62636465
197	.dd 0x66676869
198	.dd 0x74555657
199	.dd 0x78596067
200	.dd 0x72636467
201	.dd 0x76676867
202	.dd 0x00010203
203	.dd 0x04050607
204	.dd 0x08090A0B
205	.dd 0x0C0D0E0F
206	.dd 0x10111213
207	.dd 0x14151617
208	.dd 0x18191A1B
209	.dd 0x1C1D1E1F
210	.dd 0x11223344
211	.dd 0x55667788
212	.dd 0x99717273
213	.dd 0x74757677
214	.dd 0x82838485
215	.dd 0x86878889
216	.dd 0x80818283
217	.dd 0x84858687
218	.dd 0x01020304
219	.dd 0x05060708
220	.dd 0x09101112
221	.dd 0x14151617
222	.dd 0x18192021
223	.dd 0x22232425
224	.dd 0x26272829
225	.dd 0x30313233
226	.dd 0x34353637
227	.dd 0x38394041
228	.dd 0x42434445
229	.dd 0x46474849
230	.dd 0x50515253
231	.dd 0x54555657
232	.dd 0x58596061
233	.dd 0x62636465
234	.dd 0x66676869
235	.dd 0x74555657
236	.dd 0x78596067
237	.dd 0x72636467
238	.dd 0x76676867
239
240DATA_ADDR_2:
241	.dd 0x20212223
242	.dd 0x24252627
243	.dd 0x28292A2B
244	.dd 0x2C2D2E2F
245	.dd 0x30313233
246	.dd 0x34353637
247	.dd 0x38393A3B
248	.dd 0x3C3D3E3F
249	.dd 0x91929394
250	.dd 0x95969798
251	.dd 0x99A1A2A3
252	.dd 0xA5A6A7A8
253	.dd 0xA9B0B1B2
254	.dd 0xB3B4B5B6
255	.dd 0xB7B8B9C0
256	.dd 0x70717273
257	.dd 0x74757677
258	.dd 0x78798081
259	.dd 0x82838485
260	.dd 0x86C283C4
261	.dd 0x81C283C4
262	.dd 0x82C283C4
263	.dd 0x83C283C4
264	.dd 0x84C283C4
265	.dd 0x85C283C4
266	.dd 0x86C283C4
267	.dd 0x87C288C4
268	.dd 0x88C283C4
269	.dd 0x89C283C4
270	.dd 0x80C283C4
271	.dd 0x81C283C4
272	.dd 0x82C288C4
273	.dd 0x94555659
274	.dd 0x98596069
275	.dd 0x92636469
276	.dd 0x96676869
277	.dd 0x20212223
278	.dd 0x24252627
279	.dd 0x28292A2B
280	.dd 0x2C2D2E2F
281	.dd 0x30313233
282	.dd 0x34353637
283	.dd 0x38393A3B
284	.dd 0x3C3D3E3F
285	.dd 0x91929394
286	.dd 0x95969798
287	.dd 0x99A1A2A3
288	.dd 0xA5A6A7A8
289	.dd 0xA9B0B1B2
290	.dd 0xB3B4B5B6
291	.dd 0xB7B8B9C0
292	.dd 0x70717273
293	.dd 0x74757677
294	.dd 0x78798081
295	.dd 0x82838485
296	.dd 0x86C283C4
297	.dd 0x81C283C4
298	.dd 0x82C283C4
299	.dd 0x83C283C4
300	.dd 0x84C283C4
301	.dd 0x85C283C4
302	.dd 0x86C283C4
303	.dd 0x87C288C4
304	.dd 0x88C283C4
305	.dd 0x89C283C4
306	.dd 0x80C283C4
307	.dd 0x81C283C4
308	.dd 0x82C288C4
309	.dd 0x94555659
310	.dd 0x98596069
311	.dd 0x92636469
312	.dd 0x96676869
313
314DATA_ADDR_3:
315	.dd 0x40414243
316	.dd 0x44454647
317	.dd 0x48494A4B
318	.dd 0x4C4D4E4F
319	.dd 0x50515253
320	.dd 0x54555657
321	.dd 0x58595A5B
322	.dd 0xC5C6C7C8
323	.dd 0xC9CACBCD
324	.dd 0xCFD0D1D2
325	.dd 0xD3D4D5D6
326	.dd 0xD7D8D9DA
327	.dd 0xDBDCDDDE
328	.dd 0xDFE0E1E2
329	.dd 0xE3E4E5E6
330	.dd 0x91E899EA
331	.dd 0x92E899EA
332	.dd 0x93E899EA
333	.dd 0x94E899EA
334	.dd 0x95E899EA
335	.dd 0x96E899EA
336	.dd 0x97E899EA
337	.dd 0x98E899EA
338	.dd 0x99E899EA
339	.dd 0x91E899EA
340	.dd 0x92E899EA
341	.dd 0x93E899EA
342	.dd 0x94E899EA
343	.dd 0x95E899EA
344	.dd 0x96E899EA
345	.dd 0x977899EA
346	.dd 0xa455565a
347	.dd 0xa859606a
348	.dd 0xa263646a
349	.dd 0xa667686a
350	.dd 0x40414243
351	.dd 0x44454647
352	.dd 0x48494A4B
353	.dd 0x4C4D4E4F
354	.dd 0x50515253
355	.dd 0x54555657
356	.dd 0x58595A5B
357	.dd 0xC5C6C7C8
358	.dd 0xC9CACBCD
359	.dd 0xCFD0D1D2
360	.dd 0xD3D4D5D6
361	.dd 0xD7D8D9DA
362	.dd 0xDBDCDDDE
363	.dd 0xDFE0E1E2
364	.dd 0xE3E4E5E6
365	.dd 0x91E899EA
366	.dd 0x92E899EA
367	.dd 0x93E899EA
368	.dd 0x94E899EA
369	.dd 0x95E899EA
370	.dd 0x96E899EA
371	.dd 0x97E899EA
372	.dd 0x98E899EA
373	.dd 0x99E899EA
374	.dd 0x91E899EA
375	.dd 0x92E899EA
376	.dd 0x93E899EA
377	.dd 0x94E899EA
378	.dd 0x95E899EA
379	.dd 0x96E899EA
380	.dd 0x977899EA
381	.dd 0xa455565a
382	.dd 0xa859606a
383	.dd 0xa263646a
384	.dd 0xa667686a
385
386DATA_ADDR_4:
387	.dd 0x60616263
388	.dd 0x64656667
389	.dd 0x68696A6B
390	.dd 0x6C6D6E6F
391	.dd 0x70717273
392	.dd 0x74757677
393	.dd 0x78797A7B
394	.dd 0x7C7D7E7F
395	.dd 0xEBECEDEE
396	.dd 0xF3F4F5F6
397	.dd 0xF7F8F9FA
398	.dd 0xFBFCFDFE
399	.dd 0xFF000102
400	.dd 0x03040506
401	.dd 0x0708090A
402	.dd 0x0B0CAD0E
403	.dd 0xAB0CAD01
404	.dd 0xAB0CAD02
405	.dd 0xAB0CAD03
406	.dd 0xAB0CAD04
407	.dd 0xAB0CAD05
408	.dd 0xAB0CAD06
409	.dd 0xAB0CAA07
410	.dd 0xAB0CAD08
411	.dd 0xAB0CAD09
412	.dd 0xA00CAD1E
413	.dd 0xA10CAD2E
414	.dd 0xA20CAD3E
415	.dd 0xA30CAD4E
416	.dd 0xA40CAD5E
417	.dd 0xA50CAD6E
418	.dd 0xA60CAD7E
419	.dd 0xB455565B
420	.dd 0xB859606B
421	.dd 0xB263646B
422	.dd 0xB667686B
423	.dd 0x60616263
424	.dd 0x64656667
425	.dd 0x68696A6B
426	.dd 0x6C6D6E6F
427	.dd 0x70717273
428	.dd 0x74757677
429	.dd 0x78797A7B
430	.dd 0x7C7D7E7F
431	.dd 0xEBECEDEE
432	.dd 0xF3F4F5F6
433	.dd 0xF7F8F9FA
434	.dd 0xFBFCFDFE
435	.dd 0xFF000102
436	.dd 0x03040506
437	.dd 0x0708090A
438	.dd 0x0B0CAD0E
439	.dd 0xAB0CAD01
440	.dd 0xAB0CAD02
441	.dd 0xAB0CAD03
442	.dd 0xAB0CAD04
443	.dd 0xAB0CAD05
444	.dd 0xAB0CAD06
445	.dd 0xAB0CAA07
446	.dd 0xAB0CAD08
447	.dd 0xAB0CAD09
448	.dd 0xA00CAD1E
449	.dd 0xA10CAD2E
450	.dd 0xA20CAD3E
451	.dd 0xA30CAD4E
452	.dd 0xA40CAD5E
453	.dd 0xA50CAD6E
454	.dd 0xA60CAD7E
455	.dd 0xB455565B
456	.dd 0xB859606B
457	.dd 0xB263646B
458	.dd 0xB667686B
459
460DATA_ADDR_5:
461	.dd 0x80818283
462	.dd 0x84858687
463	.dd 0x88898A8B
464	.dd 0x8C8D8E8F
465	.dd 0x90919293
466	.dd 0x94959697
467	.dd 0x98999A9B
468	.dd 0x9C9D9E9F
469	.dd 0x0F101213
470	.dd 0x14151617
471	.dd 0x18191A1B
472	.dd 0x1C1D1E1F
473	.dd 0x20212223
474	.dd 0x24252627
475	.dd 0x28292A2B
476	.dd 0x2C2D2E2F
477	.dd 0xBC0DBE21
478	.dd 0xBC1DBE22
479	.dd 0xBC2DBE23
480	.dd 0xBC3DBE24
481	.dd 0xBC4DBE65
482	.dd 0xBC5DBE27
483	.dd 0xBC6DBE28
484	.dd 0xBC7DBE29
485	.dd 0xBC8DBE2F
486	.dd 0xBC9DBE20
487	.dd 0xBCADBE21
488	.dd 0xBCBDBE2F
489	.dd 0xBCCDBE23
490	.dd 0xBCDDBE24
491	.dd 0xBCFDBE25
492	.dd 0xC455565C
493	.dd 0xC859606C
494	.dd 0xC263646C
495	.dd 0xC667686C
496	.dd 0xCC0DBE2C
497
498DATA_ADDR_6:
499	.dd 0x00010203
500	.dd 0x04050607
501	.dd 0x08090A0B
502	.dd 0x0C0D0E0F
503	.dd 0x10111213
504	.dd 0x14151617
505	.dd 0x18191A1B
506	.dd 0x1C1D1E1F
507	.dd 0x20212223
508	.dd 0x24252627
509	.dd 0x28292A2B
510	.dd 0x2C2D2E2F
511	.dd 0x30313233
512	.dd 0x34353637
513	.dd 0x38393A3B
514	.dd 0x3C3D3E3F
515	.dd 0x40414243
516	.dd 0x44454647
517	.dd 0x48494A4B
518	.dd 0x4C4D4E4F
519	.dd 0x50515253
520	.dd 0x54555657
521	.dd 0x58595A5B
522	.dd 0x5C5D5E5F
523	.dd 0x60616263
524	.dd 0x64656667
525	.dd 0x68696A6B
526	.dd 0x6C6D6E6F
527	.dd 0x70717273
528	.dd 0x74757677
529	.dd 0x78797A7B
530	.dd 0x7C7D7E7F
531
532DATA_ADDR_7:
533	.dd 0x80818283
534	.dd 0x84858687
535	.dd 0x88898A8B
536	.dd 0x8C8D8E8F
537	.dd 0x90919293
538	.dd 0x94959697
539	.dd 0x98999A9B
540	.dd 0x9C9D9E9F
541	.dd 0xA0A1A2A3
542	.dd 0xA4A5A6A7
543	.dd 0xA8A9AAAB
544	.dd 0xACADAEAF
545	.dd 0xB0B1B2B3
546	.dd 0xB4B5B6B7
547	.dd 0xB8B9BABB
548	.dd 0xBCBDBEBF
549	.dd 0xC0C1C2C3
550	.dd 0xC4C5C6C7
551	.dd 0xC8C9CACB
552	.dd 0xCCCDCECF
553	.dd 0xD0D1D2D3
554	.dd 0xD4D5D6D7
555	.dd 0xD8D9DADB
556	.dd 0xDCDDDEDF
557	.dd 0xE0E1E2E3
558	.dd 0xE4E5E6E7
559	.dd 0xE8E9EAEB
560	.dd 0xECEDEEEF
561	.dd 0xF0F1F2F3
562	.dd 0xF4F5F6F7
563	.dd 0xF8F9FAFB
564	.dd 0xFCFDFEFF
565