ld: Move the .note.build-id section to near the start of the memory map.
[binutils-gdb.git] / sim / testsuite / bfin / c_ldstpmod_st_dreg.s
blobe1ec36fe85d8df5c38fa176a4744e519b4a408a1
1 //Original:testcases/core/c_ldstpmod_st_dreg/c_ldstpmod_st_dreg.dsp
2 // Spec Reference: c_ldstpmod store dreg
3 # mach: bfin
5 .include "testutils.inc"
6 start
8 // set all regs
9 init_i_regs 0;
10 init_b_regs 0;
11 init_l_regs 0;
12 init_m_regs 0;
13 I0 = P3;
14 I2 = SP;
16 // initial values
17 imm32 r0, 0x600f5000;
18 imm32 r1, 0x700e6001;
19 imm32 r2, 0x800d7002;
20 imm32 r3, 0x900c8003;
21 imm32 r4, 0xa00b9004;
22 imm32 r5, 0xb00aa005;
23 imm32 r6, 0xc009b006;
24 imm32 r7, 0xd008c007;
25 P1 = 0x0004;
26 P2 = 0x0004;
27 P3 = 0x0004;
28 P4 = 0x0004;
29 FP = 0x0004;
30 SP = 0x0008;
31 I1 = P3; P3 = I0; I3 = SP; SP = I2;
32 loadsym p5, DATA_ADDR_5, 0x00;
33 P3 = I1; SP = I3;
34 [ P5 ++ P1 ] = R0;
35 [ P5 ++ P1 ] = R1;
36 [ P5 ++ P2 ] = R2;
37 [ P5 ++ P3 ] = R3;
38 [ P5 ++ P4 ] = R4;
39 [ P5 ++ SP ] = R5;
40 [ P5 ++ FP ] = R6;
41 P1 = 0x0004;
42 P2 = 0x0004;
43 P3 = 0x0004;
44 P4 = 0x0004;
45 FP = 0x0004;
46 SP = 0x0008;
47 I1 = P3; P3 = I0; I3 = SP; SP = I2;
48 loadsym p5, DATA_ADDR_5, 0x00;
49 P3 = I1; SP = I3;
50 R6 = [ P5 ++ P1 ];
51 R5 = [ P5 ++ P1 ];
52 R4 = [ P5 ++ P2 ];
53 R3 = [ P5 ++ P3 ];
54 R2 = [ P5 ++ P4 ];
55 R0 = [ P5 ++ SP ];
56 R1 = [ P5 ++ FP ];
57 CHECKREG r0, 0xB00AA005;
58 CHECKREG r1, 0xC009B006;
59 CHECKREG r2, 0xA00B9004;
60 CHECKREG r3, 0x900C8003;
61 CHECKREG r4, 0x800D7002;
62 CHECKREG r5, 0x700E6001;
63 CHECKREG r6, 0x600F5000;
65 // initial values
66 imm32 r0, 0x105f50a0;
67 imm32 r1, 0x204e60a1;
68 imm32 r2, 0x300370a2;
69 imm32 r3, 0x402c80a3;
70 imm32 r4, 0x501b90a4;
71 imm32 r5, 0x600aa0a5;
72 imm32 r6, 0x7019b0a6;
73 imm32 r7, 0xd028c0a7;
74 P5 = 0x0004;
75 P2 = 0x0004;
76 P3 = 0x0004;
77 P4 = 0x0004;
78 FP = 0x0008;
79 SP = 0x0004;
80 I1 = P3; P3 = I0; I3 = SP; SP = I2;
81 loadsym p1, DATA_ADDR_1, 0x00;
82 P3 = I1; SP = I3;
83 [ P1 ++ P5 ] = R0;
84 [ P1 ++ P5 ] = R1;
85 [ P1 ++ P2 ] = R2;
86 [ P1 ++ P3 ] = R3;
87 [ P1 ++ P4 ] = R4;
88 [ P1 ++ SP ] = R5;
89 [ P1 ++ FP ] = R6;
90 P5 = 0x0004;
91 P2 = 0x0004;
92 P3 = 0x0004;
93 P4 = 0x0004;
94 FP = 0x0008;
95 SP = 0x0004;
96 I1 = P3; P3 = I0; I3 = SP; SP = I2;
97 loadsym p1, DATA_ADDR_1, 0x00;
98 P3 = I1; SP = I3;
99 R6 = [ P1 ++ P5 ];
100 R5 = [ P1 ++ P5 ];
101 R4 = [ P1 ++ P2 ];
102 R3 = [ P1 ++ P3 ];
103 R2 = [ P1 ++ P4 ];
104 R0 = [ P1 ++ SP ];
105 R1 = [ P1 ++ FP ];
106 CHECKREG r0, 0x600AA0A5;
107 CHECKREG r1, 0x7019B0A6;
108 CHECKREG r2, 0x501B90A4;
109 CHECKREG r3, 0x402C80A3;
110 CHECKREG r4, 0x300370A2;
111 CHECKREG r5, 0x204E60A1;
112 CHECKREG r6, 0x105F50A0;
114 // initial values
115 imm32 r0, 0x10bf50b0;
116 imm32 r1, 0x20be60b1;
117 imm32 r2, 0x30bd70b2;
118 imm32 r3, 0x40bc80b3;
119 imm32 r4, 0x55bb90b4;
120 imm32 r5, 0x60baa0b5;
121 imm32 r6, 0x70b9b0b6;
122 imm32 r7, 0x80b8c0b7;
123 P5 = 0x0004;
124 P1 = 0x0004;
125 P3 = 0x0004;
126 P4 = 0x0004;
127 FP = 0x0004;
128 SP = 0x0004;
129 I1 = P3; P3 = I0; I3 = SP; SP = I2;
130 loadsym p2, DATA_ADDR_2, 0x00;
131 P3 = I1; SP = I3;
132 [ P2 ++ P5 ] = R0;
133 [ P2 ++ P1 ] = R1;
134 [ P2 ++ P1 ] = R2;
135 [ P2 ++ P3 ] = R3;
136 [ P2 ++ P4 ] = R4;
137 [ P2 ++ SP ] = R5;
138 [ P2 ++ FP ] = R6;
139 P5 = 0x0004;
140 P1 = 0x0004;
141 P3 = 0x0004;
142 P4 = 0x0004;
143 FP = 0x0004;
144 SP = 0x0004;
145 I1 = P3; P3 = I0; I3 = SP; SP = I2;
146 loadsym p2, DATA_ADDR_2, 0x00;
147 P3 = I1; SP = I3;
148 R3 = [ P2 ++ P5 ];
149 R4 = [ P2 ++ P1 ];
150 R0 = [ P2 ++ P1 ];
151 R1 = [ P2 ++ P3 ];
152 R2 = [ P2 ++ P4 ];
153 R5 = [ P2 ++ SP ];
154 R6 = [ P2 ++ FP ];
155 CHECKREG r0, 0x30BD70B2;
156 CHECKREG r1, 0x40BC80B3;
157 CHECKREG r2, 0x55BB90B4;
158 CHECKREG r3, 0x10BF50B0;
159 CHECKREG r4, 0x20BE60B1;
160 CHECKREG r5, 0x60BAA0B5;
161 CHECKREG r6, 0x70B9B0B6;
163 // initial values
164 imm32 r0, 0x10cf50c0;
165 imm32 r1, 0x20ce60c1;
166 imm32 r2, 0x30c370c2;
167 imm32 r3, 0x40cc80c3;
168 imm32 r4, 0x50cb90c4;
169 imm32 r5, 0x60caa0c5;
170 imm32 r6, 0x70c9b0c6;
171 imm32 r7, 0xd0c8c0c7;
172 P5 = 0x0004;
173 P1 = 0x0004;
174 P2 = 0x0004;
175 P4 = 0x0004;
176 FP = 0x0004;
177 SP = 0x0004;
178 I1 = P3; P3 = I0; I3 = SP; SP = I2;
179 loadsym i1, DATA_ADDR_3, 0x00;
180 P3 = I1; SP = I3;
181 [ P3 ++ P5 ] = R0;
182 [ P3 ++ P1 ] = R1;
183 [ P3 ++ P2 ] = R2;
184 [ P3 ++ P1 ] = R3;
185 [ P3 ++ P4 ] = R4;
186 [ P3 ++ SP ] = R5;
187 [ P3 ++ FP ] = R6;
188 P5 = 0x0004;
189 P1 = 0x0004;
190 P2 = 0x0004;
191 P4 = 0x0004;
192 FP = 0x0004;
193 SP = 0x0004;
194 I1 = P3; P3 = I0; I3 = SP; SP = I2;
195 loadsym i1, DATA_ADDR_3, 0x00;
196 P3 = I1; SP = I3;
197 R6 = [ P3 ++ P5 ];
198 R5 = [ P3 ++ P1 ];
199 R4 = [ P3 ++ P2 ];
200 R3 = [ P3 ++ P1 ];
201 R2 = [ P3 ++ P4 ];
202 R0 = [ P3 ++ SP ];
203 R1 = [ P3 ++ FP ];
204 CHECKREG r0, 0x60CAA0C5;
205 CHECKREG r1, 0x70C9B0C6;
206 CHECKREG r2, 0x50CB90C4;
207 CHECKREG r3, 0x40CC80C3;
208 CHECKREG r4, 0x30C370C2;
209 CHECKREG r5, 0x20CE60C1;
210 CHECKREG r6, 0x10CF50C0;
212 // initial values
213 imm32 r0, 0x60df50d0;
214 imm32 r1, 0x70de60d1;
215 imm32 r2, 0x80dd70d2;
216 imm32 r3, 0x90dc80d3;
217 imm32 r4, 0xa0db90d4;
218 imm32 r5, 0xb0daa0d5;
219 imm32 r6, 0xc0d9b0d6;
220 imm32 r7, 0xd0d8c0d7;
221 P5 = 0x0004;
222 P1 = 0x0004;
223 P2 = 0x0004;
224 P3 = 0x0004;
225 FP = 0x0004;
226 SP = 0x0004;
227 I1 = P3; P3 = I0; I3 = SP; SP = I2;
228 loadsym p4, DATA_ADDR_4, 0x00;
229 P3 = I1; SP = I3;
230 [ P4 ++ P5 ] = R0;
231 [ P4 ++ P1 ] = R1;
232 [ P4 ++ P2 ] = R2;
233 [ P4 ++ P3 ] = R3;
234 [ P4 ++ P1 ] = R4;
235 [ P4 ++ SP ] = R5;
236 [ P4 ++ FP ] = R6;
237 P5 = 0x0004;
238 P1 = 0x0004;
239 P2 = 0x0004;
240 P3 = 0x0004;
241 FP = 0x0004;
242 SP = 0x0004;
243 I1 = P3; P3 = I0; I3 = SP; SP = I2;
244 loadsym p4, DATA_ADDR_4, 0x00;
245 P3 = I1; SP = I3;
246 R5 = [ P4 ++ P5 ];
247 R6 = [ P4 ++ P1 ];
248 R0 = [ P4 ++ P2 ];
249 R1 = [ P4 ++ P3 ];
250 R2 = [ P4 ++ P1 ];
251 R3 = [ P4 ++ SP ];
252 R4 = [ P4 ++ FP ];
253 CHECKREG r0, 0x80DD70D2;
254 CHECKREG r1, 0x90DC80D3;
255 CHECKREG r2, 0xA0DB90D4;
256 CHECKREG r3, 0xB0DAA0D5;
257 CHECKREG r4, 0xC0D9B0D6;
258 CHECKREG r5, 0x60DF50D0;
259 CHECKREG r6, 0x70DE60D1;
261 // initial values
262 imm32 r0, 0x1e5f50e0;
263 imm32 r1, 0x2e4e60e1;
264 imm32 r2, 0x3e0370e2;
265 imm32 r3, 0x4e2c80e3;
266 imm32 r4, 0x5e1b90e4;
267 imm32 r5, 0x6e0aa0e5;
268 imm32 r6, 0x7e19b0e6;
269 imm32 r7, 0xde28c0e7;
270 P5 = 0x0004;
271 P1 = 0x0004;
272 P2 = 0x0004;
273 P3 = 0x0004;
274 P4 = 0x0004;
275 FP = 0x0004;
276 I1 = P3; P3 = I0; I3 = SP; SP = I2;
277 loadsym i3, DATA_ADDR_6, 0x00;
278 P3 = I1; SP = I3;
279 [ SP ++ P5 ] = R0;
280 [ SP ++ P1 ] = R1;
281 [ SP ++ P2 ] = R2;
282 [ SP ++ P3 ] = R3;
283 [ SP ++ P4 ] = R4;
284 [ SP ++ P1 ] = R5;
285 [ SP ++ FP ] = R6;
286 P5 = 0x0004;
287 P1 = 0x0004;
288 P2 = 0x0004;
289 P3 = 0x0004;
290 P4 = 0x0004;
291 FP = 0x0004;
292 I1 = P3; P3 = I0; I3 = SP; SP = I2;
293 loadsym i3, DATA_ADDR_6, 0x00;
294 P3 = I1; SP = I3;
295 R6 = [ SP ++ P5 ];
296 R5 = [ SP ++ P1 ];
297 R4 = [ SP ++ P2 ];
298 R3 = [ SP ++ P3 ];
299 R2 = [ SP ++ P4 ];
300 R0 = [ SP ++ P1 ];
301 R1 = [ SP ++ FP ];
302 CHECKREG r0, 0x6E0AA0E5;
303 CHECKREG r1, 0x7E19B0E6;
304 CHECKREG r2, 0x5E1B90E4;
305 CHECKREG r3, 0x4E2C80E3;
306 CHECKREG r4, 0x3E0370E2;
307 CHECKREG r5, 0x2E4E60E1;
308 CHECKREG r6, 0x1E5F50E0;
310 // initial values
311 imm32 r0, 0x10ff50f0;
312 imm32 r1, 0x20fe60f1;
313 imm32 r2, 0x30fd70f2;
314 imm32 r3, 0x40fc80f3;
315 imm32 r4, 0x55fb90f4;
316 imm32 r5, 0x60faa0f5;
317 imm32 r6, 0x70f9b0f6;
318 imm32 r7, 0x80f8c0f7;
319 P5 = 0x0004;
320 P1 = 0x0004;
321 P2 = 0x0004;
322 P3 = 0x0004;
323 P4 = 0x0004;
324 FP = 0x1004 (X);
325 SP = 0x0004;
326 I1 = P3; P3 = I0; I3 = SP; SP = I2;
327 loadsym fp, DATA_ADDR_7, 0x00;
328 P3 = I1; SP = I3;
329 [ FP ++ P5 ] = R0;
330 [ FP ++ P1 ] = R1;
331 [ FP ++ P2 ] = R2;
332 [ FP ++ P3 ] = R3;
333 [ FP ++ P4 ] = R4;
334 [ FP ++ SP ] = R5;
335 [ FP ++ P1 ] = R6;
336 P5 = 0x0004;
337 P1 = 0x0004;
338 P2 = 0x0004;
339 P3 = 0x0004;
340 P4 = 0x0004;
341 SP = 0x0004;
342 I1 = P3; P3 = I0; I3 = SP; SP = I2;
343 loadsym fp, DATA_ADDR_7, 0x00;
344 P3 = I1; SP = I3;
345 R3 = [ FP ++ P5 ];
346 R4 = [ FP ++ P1 ];
347 R0 = [ FP ++ P2 ];
348 R1 = [ FP ++ P3 ];
349 R2 = [ FP ++ P4 ];
350 R5 = [ FP ++ SP ];
351 R6 = [ FP ++ P1 ];
352 CHECKREG r0, 0x30FD70F2;
353 CHECKREG r1, 0x40FC80F3;
354 CHECKREG r2, 0x55FB90F4;
355 CHECKREG r3, 0x10FF50F0;
356 CHECKREG r4, 0x20FE60F1;
357 CHECKREG r5, 0x60FAA0F5;
358 CHECKREG r6, 0x70F9B0F6;
360 P3 = I0; SP = I2;
361 pass
363 // Pre-load memory with known data
364 // More data is defined than will actually be used
366 .data
367 DATA_ADDR_1:
368 .dd 0x00010203
369 .dd 0x04050607
370 .dd 0x08090A0B
371 .dd 0x0C0D0E0F
372 .dd 0x10111213
373 .dd 0x14151617
374 .dd 0x18191A1B
375 .dd 0x1C1D1E1F
376 .dd 0x11223344
377 .dd 0x55667788
378 .dd 0x99717273
379 .dd 0x74757677
380 .dd 0x82838485
381 .dd 0x86878889
382 .dd 0x80818283
383 .dd 0x84858687
384 .dd 0x01020304
385 .dd 0x05060708
386 .dd 0x09101112
387 .dd 0x14151617
388 .dd 0x18192021
389 .dd 0x22232425
390 .dd 0x26272829
391 .dd 0x30313233
392 .dd 0x34353637
393 .dd 0x38394041
394 .dd 0x42434445
395 .dd 0x46474849
396 .dd 0x50515253
397 .dd 0x54555657
398 .dd 0x58596061
399 .dd 0x62636465
400 .dd 0x66676869
401 .dd 0x74555657
402 .dd 0x78596067
403 .dd 0x72636467
404 .dd 0x76676867
406 DATA_ADDR_2:
407 .dd 0x20212223
408 .dd 0x24252627
409 .dd 0x28292A2B
410 .dd 0x2C2D2E2F
411 .dd 0x30313233
412 .dd 0x34353637
413 .dd 0x38393A3B
414 .dd 0x3C3D3E3F
415 .dd 0x91929394
416 .dd 0x95969798
417 .dd 0x99A1A2A3
418 .dd 0xA5A6A7A8
419 .dd 0xA9B0B1B2
420 .dd 0xB3B4B5B6
421 .dd 0xB7B8B9C0
422 .dd 0x70717273
423 .dd 0x74757677
424 .dd 0x78798081
425 .dd 0x82838485
426 .dd 0x86C283C4
427 .dd 0x81C283C4
428 .dd 0x82C283C4
429 .dd 0x83C283C4
430 .dd 0x84C283C4
431 .dd 0x85C283C4
432 .dd 0x86C283C4
433 .dd 0x87C288C4
434 .dd 0x88C283C4
435 .dd 0x89C283C4
436 .dd 0x80C283C4
437 .dd 0x81C283C4
438 .dd 0x82C288C4
439 .dd 0x94555659
440 .dd 0x98596069
441 .dd 0x92636469
442 .dd 0x96676869
444 DATA_ADDR_3:
445 .dd 0x40414243
446 .dd 0x44454647
447 .dd 0x48494A4B
448 .dd 0x4C4D4E4F
449 .dd 0x50515253
450 .dd 0x54555657
451 .dd 0x58595A5B
452 .dd 0xC5C6C7C8
453 .dd 0xC9CACBCD
454 .dd 0xCFD0D1D2
455 .dd 0xD3D4D5D6
456 .dd 0xD7D8D9DA
457 .dd 0xDBDCDDDE
458 .dd 0xDFE0E1E2
459 .dd 0xE3E4E5E6
460 .dd 0x91E899EA
461 .dd 0x92E899EA
462 .dd 0x93E899EA
463 .dd 0x94E899EA
464 .dd 0x95E899EA
465 .dd 0x96E899EA
466 .dd 0x97E899EA
467 .dd 0x98E899EA
468 .dd 0x99E899EA
469 .dd 0x91E899EA
470 .dd 0x92E899EA
471 .dd 0x93E899EA
472 .dd 0x94E899EA
473 .dd 0x95E899EA
474 .dd 0x96E899EA
475 .dd 0x977899EA
476 .dd 0xa455565a
477 .dd 0xa859606a
478 .dd 0xa263646a
479 .dd 0xa667686a
481 DATA_ADDR_4:
482 .dd 0x60616263
483 .dd 0x64656667
484 .dd 0x68696A6B
485 .dd 0x6C6D6E6F
486 .dd 0x70717273
487 .dd 0x74757677
488 .dd 0x78797A7B
489 .dd 0x7C7D7E7F
490 .dd 0xEBECEDEE
491 .dd 0xF3F4F5F6
492 .dd 0xF7F8F9FA
493 .dd 0xFBFCFDFE
494 .dd 0xFF000102
495 .dd 0x03040506
496 .dd 0x0708090A
497 .dd 0x0B0CAD0E
498 .dd 0xAB0CAD01
499 .dd 0xAB0CAD02
500 .dd 0xAB0CAD03
501 .dd 0xAB0CAD04
502 .dd 0xAB0CAD05
503 .dd 0xAB0CAD06
504 .dd 0xAB0CAA07
505 .dd 0xAB0CAD08
506 .dd 0xAB0CAD09
507 .dd 0xA00CAD1E
508 .dd 0xA10CAD2E
509 .dd 0xA20CAD3E
510 .dd 0xA30CAD4E
511 .dd 0xA40CAD5E
512 .dd 0xA50CAD6E
513 .dd 0xA60CAD7E
514 .dd 0xB455565B
515 .dd 0xB859606B
516 .dd 0xB263646B
517 .dd 0xB667686B
519 DATA_ADDR_5:
520 .dd 0x80818283
521 .dd 0x84858687
522 .dd 0x88898A8B
523 .dd 0x8C8D8E8F
524 .dd 0x90919293
525 .dd 0x94959697
526 .dd 0x98999A9B
527 .dd 0x9C9D9E9F
528 .dd 0x0F101213
529 .dd 0x14151617
530 .dd 0x18191A1B
531 .dd 0x1C1D1E1F
532 .dd 0x20212223
533 .dd 0x24252627
534 .dd 0x28292A2B
535 .dd 0x2C2D2E2F
536 .dd 0xBC0DBE21
537 .dd 0xBC1DBE22
538 .dd 0xBC2DBE23
539 .dd 0xBC3DBE24
540 .dd 0xBC4DBE65
541 .dd 0xBC5DBE27
542 .dd 0xBC6DBE28
543 .dd 0xBC7DBE29
544 .dd 0xBC8DBE2F
545 .dd 0xBC9DBE20
546 .dd 0xBCADBE21
547 .dd 0xBCBDBE2F
548 .dd 0xBCCDBE23
549 .dd 0xBCDDBE24
550 .dd 0xBCFDBE25
551 .dd 0xC455565C
552 .dd 0xC859606C
553 .dd 0xC263646C
554 .dd 0xC667686C
555 .dd 0xCC0DBE2C
557 DATA_ADDR_6:
558 .dd 0x00010203
559 .dd 0x04050607
560 .dd 0x08090A0B
561 .dd 0x0C0D0E0F
562 .dd 0x10111213
563 .dd 0x14151617
564 .dd 0x18191A1B
565 .dd 0x1C1D1E1F
566 .dd 0x20212223
567 .dd 0x24252627
568 .dd 0x28292A2B
569 .dd 0x2C2D2E2F
570 .dd 0x30313233
571 .dd 0x34353637
572 .dd 0x38393A3B
573 .dd 0x3C3D3E3F
574 .dd 0x40414243
575 .dd 0x44454647
576 .dd 0x48494A4B
577 .dd 0x4C4D4E4F
578 .dd 0x50515253
579 .dd 0x54555657
580 .dd 0x58595A5B
581 .dd 0x5C5D5E5F
582 .dd 0x60616263
583 .dd 0x64656667
584 .dd 0x68696A6B
585 .dd 0x6C6D6E6F
586 .dd 0x70717273
587 .dd 0x74757677
588 .dd 0x78797A7B
589 .dd 0x7C7D7E7F
591 DATA_ADDR_7:
592 .dd 0x80818283
593 .dd 0x84858687
594 .dd 0x88898A8B
595 .dd 0x8C8D8E8F
596 .dd 0x90919293
597 .dd 0x94959697
598 .dd 0x98999A9B
599 .dd 0x9C9D9E9F
600 .dd 0xA0A1A2A3
601 .dd 0xA4A5A6A7
602 .dd 0xA8A9AAAB
603 .dd 0xACADAEAF
604 .dd 0xB0B1B2B3
605 .dd 0xB4B5B6B7
606 .dd 0xB8B9BABB
607 .dd 0xBCBDBEBF
608 .dd 0xC0C1C2C3
609 .dd 0xC4C5C6C7
610 .dd 0xC8C9CACB
611 .dd 0xCCCDCECF
612 .dd 0xD0D1D2D3
613 .dd 0xD4D5D6D7
614 .dd 0xD8D9DADB
615 .dd 0xDCDDDEDF
616 .dd 0xE0E1E2E3
617 .dd 0xE4E5E6E7
618 .dd 0xE8E9EAEB
619 .dd 0xECEDEEEF
620 .dd 0xF0F1F2F3
621 .dd 0xF4F5F6F7
622 .dd 0xF8F9FAFB
623 .dd 0xFCFDFEFF