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