ld: Move the .note.build-id section to near the start of the memory map.
[binutils-gdb.git] / sim / testsuite / bfin / se_loop_mv2lb_stall.S
bloba3b2c24cbbaf6d4286a993855c55ca72eb04cc20
1 //Original:/proj/frio/dv/testcases/seq/se_loop_mv2lb_stall/se_loop_mv2lb_stall.dsp
2 # mach: bfin
3 # sim: --environment operating
5 #include "test.h"
6 .include "testutils.inc"
7 start
9 /////////////////////////////////////////////////////////////////////////////
10 ///////////////////////// Include Files         /////////////////////////////
11 /////////////////////////////////////////////////////////////////////////////
13 include(std.inc)
14 include(selfcheck.inc)
16 /////////////////////////////////////////////////////////////////////////////
17 ///////////////////////// Defines               /////////////////////////////
18 /////////////////////////////////////////////////////////////////////////////
20 #ifndef USER_CODE_SPACE
21 #define USER_CODE_SPACE  0x00000500
22 #endif
23 #ifndef STACKSIZE
24 #define STACKSIZE        0x00000010
25 #endif
26 #ifndef ITABLE
27 #define ITABLE           0xF0000000
28 #endif
29 #ifndef EVT
30 #define EVT              0xFFE02000
31 #endif
32 #ifndef EVT_OVERRIDE
33 #define EVT_OVERRIDE     0xFFE02100
34 #endif
35 #ifndef IMASK
36 #define IMASK            0xFFE02104
37 #endif
38 #ifndef DMEM_CONTROL
39 #define DMEM_CONTROL     0xFFE00004
40 #endif
41 #ifndef DCPLB_ADDR0
42 #define DCPLB_ADDR0      0xFFE00100
43 #endif
44 #ifndef DCPLB_DATA0
45 #define DCPLB_DATA0      0xFFE00200
46 #endif
48 /////////////////////////////////////////////////////////////////////////////
49 ///////////////////////// RESET ISR             /////////////////////////////
50 /////////////////////////////////////////////////////////////////////////////
52  RST_ISR :
54     // Initialize Dregs
55 INIT_R_REGS(0);
57     // Initialize Pregs
58 INIT_P_REGS(0);
60     // Initialize ILBM Registers
61 INIT_I_REGS(0);
62 INIT_M_REGS(0);
63 INIT_L_REGS(0);
64 INIT_B_REGS(0);
66     // Initialize the Address of the Checkreg data segment
67     // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
68 CHECK_INIT(p5,   0x00BFFFFC);
70     // Setup User Stack
71 LD32_LABEL(sp, USTACK);
72 USP = SP;
74     // Setup Kernel Stack
75 LD32_LABEL(sp, KSTACK);
77     // Setup Frame Pointer
78 FP = SP;
80     // Setup Event Vector Table
81 LD32(p0, EVT);
83 LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
84     [ P0 ++ ] = R0;
85 LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
86     [ P0 ++ ] = R0;
87 LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
88     [ P0 ++ ] = R0;
89 LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
90     [ P0 ++ ] = R0;
91     [ P0 ++ ] = R0;                // IVT4 not used
92 LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
93     [ P0 ++ ] = R0;
94 LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
95     [ P0 ++ ] = R0;
96 LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
97     [ P0 ++ ] = R0;
98 LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
99     [ P0 ++ ] = R0;
100 LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
101     [ P0 ++ ] = R0;
102 LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
103     [ P0 ++ ] = R0;
104 LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
105     [ P0 ++ ] = R0;
106 LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
107     [ P0 ++ ] = R0;
108 LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
109     [ P0 ++ ] = R0;
110 LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
111     [ P0 ++ ] = R0;
112 LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
113     [ P0 ++ ] = R0;
115     // Setup the EVT_OVERRIDE MMR
116     R0 = 0;
117 LD32(p0, EVT_OVERRIDE);
118     [ P0 ] = R0;
120     // Setup Interrupt Mask
121     R0 = -1;
122 LD32(p0, IMASK);
123     [ P0 ] = R0;
125     // Return to Supervisor Code
126 RAISE 15;
127 NOP;
129 LD32_LABEL(r0, USER_CODE);
130 RETI = R0;
131 RTI;
133 .dw 0xFFFF
134 .dw 0xFFFF
135 .dw 0xFFFF
136 .dw 0xFFFF
137 .dw 0xFFFF
138 .dw 0xFFFF
139 .dw 0xFFFF
141 /////////////////////////////////////////////////////////////////////////////
144 /////////////////////////////////////////////////////////////////////////////
145 ///////////////////////// EMU ISR               /////////////////////////////
146 /////////////////////////////////////////////////////////////////////////////
148  EMU_ISR :
150 RTE;
152 .dw 0xFFFF
153 .dw 0xFFFF
154 .dw 0xFFFF
155 .dw 0xFFFF
156 .dw 0xFFFF
157 .dw 0xFFFF
158 .dw 0xFFFF
160 /////////////////////////////////////////////////////////////////////////////
161 ///////////////////////// NMI ISR               /////////////////////////////
162 /////////////////////////////////////////////////////////////////////////////
164  NMI_ISR :
166 RTN;
168 .dw 0xFFFF
169 .dw 0xFFFF
170 .dw 0xFFFF
171 .dw 0xFFFF
172 .dw 0xFFFF
173 .dw 0xFFFF
174 .dw 0xFFFF
176 /////////////////////////////////////////////////////////////////////////////
177 ///////////////////////// EXC ISR               /////////////////////////////
178 /////////////////////////////////////////////////////////////////////////////
180  EXC_ISR :
182 RTX;
184 .dw 0xFFFF
185 .dw 0xFFFF
186 .dw 0xFFFF
187 .dw 0xFFFF
188 .dw 0xFFFF
189 .dw 0xFFFF
190 .dw 0xFFFF
192 /////////////////////////////////////////////////////////////////////////////
193 ///////////////////////// HWE ISR               /////////////////////////////
194 /////////////////////////////////////////////////////////////////////////////
196  HWE_ISR :
198 RTI;
200 .dw 0xFFFF
201 .dw 0xFFFF
202 .dw 0xFFFF
203 .dw 0xFFFF
204 .dw 0xFFFF
205 .dw 0xFFFF
206 .dw 0xFFFF
208 /////////////////////////////////////////////////////////////////////////////
209 ///////////////////////// TMR ISR               /////////////////////////////
210 /////////////////////////////////////////////////////////////////////////////
212  TMR_ISR :
214 RTI;
216 .dw 0xFFFF
217 .dw 0xFFFF
218 .dw 0xFFFF
219 .dw 0xFFFF
220 .dw 0xFFFF
221 .dw 0xFFFF
222 .dw 0xFFFF
224 /////////////////////////////////////////////////////////////////////////////
225 ///////////////////////// IGV7 ISR              /////////////////////////////
226 /////////////////////////////////////////////////////////////////////////////
228  IGV7_ISR :
230 RTI;
232 .dw 0xFFFF
233 .dw 0xFFFF
234 .dw 0xFFFF
235 .dw 0xFFFF
236 .dw 0xFFFF
237 .dw 0xFFFF
238 .dw 0xFFFF
240 /////////////////////////////////////////////////////////////////////////////
241 ///////////////////////// IGV8 ISR              /////////////////////////////
242 /////////////////////////////////////////////////////////////////////////////
244  IGV8_ISR :
246 RTI;
248 .dw 0xFFFF
249 .dw 0xFFFF
250 .dw 0xFFFF
251 .dw 0xFFFF
252 .dw 0xFFFF
253 .dw 0xFFFF
254 .dw 0xFFFF
256 /////////////////////////////////////////////////////////////////////////////
257 ///////////////////////// IGV9 ISR              /////////////////////////////
258 /////////////////////////////////////////////////////////////////////////////
260  IGV9_ISR :
262 RTI;
264 .dw 0xFFFF
265 .dw 0xFFFF
266 .dw 0xFFFF
267 .dw 0xFFFF
268 .dw 0xFFFF
269 .dw 0xFFFF
270 .dw 0xFFFF
272 /////////////////////////////////////////////////////////////////////////////
273 ///////////////////////// IGV10 ISR             /////////////////////////////
274 /////////////////////////////////////////////////////////////////////////////
276  IGV10_ISR :
278 RTI;
280 .dw 0xFFFF
281 .dw 0xFFFF
282 .dw 0xFFFF
283 .dw 0xFFFF
284 .dw 0xFFFF
285 .dw 0xFFFF
286 .dw 0xFFFF
288 /////////////////////////////////////////////////////////////////////////////
289 ///////////////////////// IGV11 ISR             /////////////////////////////
290 /////////////////////////////////////////////////////////////////////////////
292  IGV11_ISR :
294 RTI;
296 .dw 0xFFFF
297 .dw 0xFFFF
298 .dw 0xFFFF
299 .dw 0xFFFF
300 .dw 0xFFFF
301 .dw 0xFFFF
302 .dw 0xFFFF
304 /////////////////////////////////////////////////////////////////////////////
305 ///////////////////////// IGV12 ISR             /////////////////////////////
306 /////////////////////////////////////////////////////////////////////////////
308  IGV12_ISR :
310 RTI;
312 .dw 0xFFFF
313 .dw 0xFFFF
314 .dw 0xFFFF
315 .dw 0xFFFF
316 .dw 0xFFFF
317 .dw 0xFFFF
318 .dw 0xFFFF
320 /////////////////////////////////////////////////////////////////////////////
321 ///////////////////////// IGV13 ISR             /////////////////////////////
322 /////////////////////////////////////////////////////////////////////////////
324  IGV13_ISR :
326 RTI;
328 .dw 0xFFFF
329 .dw 0xFFFF
330 .dw 0xFFFF
331 .dw 0xFFFF
332 .dw 0xFFFF
333 .dw 0xFFFF
334 .dw 0xFFFF
336 /////////////////////////////////////////////////////////////////////////////
337 ///////////////////////// IGV14 ISR             /////////////////////////////
338 /////////////////////////////////////////////////////////////////////////////
340  IGV14_ISR :
342 RTI;
344 .dw 0xFFFF
345 .dw 0xFFFF
346 .dw 0xFFFF
347 .dw 0xFFFF
348 .dw 0xFFFF
349 .dw 0xFFFF
350 .dw 0xFFFF
352 /////////////////////////////////////////////////////////////////////////////
353 ///////////////////////// IGV15 ISR             /////////////////////////////
354 /////////////////////////////////////////////////////////////////////////////
356  IGV15_ISR :
358     P0 = 0x5 (Z);
359     P1 = 0x3 (Z);
360     P2 = 0x0100 (Z);
361     P2.H = 0x00f0;
363     // Loop 0
364 LD32_LABEL(r0, L0T);
365 LD32_LABEL(r1, L0B);
366 LC0 = p1;
367 LT0 = r0;
368     R0 = [ P2 ++ ];
369 LB0 = r1;
370 L0T:R3 += 4;
371     R2 += 3;
372     R4 += 5;
373     R5 += 6;
374     R6 += 7;
375 L0B:R7 += 8;
377     // Loop 0
378 LD32_LABEL(r0, L1T);
379 LD32_LABEL(r1, L1B);
380 LT0 = r0;
381 LC0 = p1;
382     R0 = [ P2 ++ ];
383 NOP;
384 LB0 = r1;
385 L1T:R4 += 5;
386     R2 += 3;
387     R3 += 4;
388     R5 += 6;
389     R6 += 7;
390 L1B:R7 += 8;
392     // Loop 0
393 LD32_LABEL(r0, L2T);
394 LD32_LABEL(r1, L2B);
395 LT0 = r0;
396 LC0 = p1;
397     R0 = [ P2 ++ ];
398 NOP;
399 NOP;
400 LB0 = r1;
401 L2T:R5 += 6;
402     R2 += 3;
403     R3 += 4;
404     R4 += 5;
405     R6 += 7;
406 L2B:R7 += 8;
408     // Loop 0
409 LD32_LABEL(r0, L3T);
410 LD32_LABEL(r1, L3B);
411 LT0 = r0;
412 LC0 = p1;
413     R0 = [ P2 ++ ];
414 NOP;
415 NOP;
416 NOP;
417 LB0 = r1;
418 L3T:R2 += 3;
419     R5 += 6;
420     R6 += 7;
421     R3 += 4;
422     R4 += 5;
423 L3B:R7 += 8;
425     // Loop 0
426 LD32_LABEL(r0, L4T);
427 LD32_LABEL(r1, L4B);
428 LT0 = r0;
429 LC0 = p1;
430     R0 = [ P2 ++ ];
431 NOP;
432 NOP;
433 NOP;
434 NOP;
435 LB0 = r1;
436 L4T:R2 += 3;
437     R3 += 4;
438     R5 += 6;
439     R6 += 7;
440     R4 += 5;
441 L4B:R7 += 8;
443     // Loop 0
444 LD32_LABEL(r0, L5T);
445 LD32_LABEL(r1, L5B);
446     [ -- SP ] = R1;
447 SSYNC;
448 LT0 = r0;
449 LC0 = p0;
450     R0 = [ P2 ++ ];
451 LB0 = [sp++];
452 L5T:R2 += 3;
453     R3 += 4;
454     R5 += 6;
455     R6 += 7;
456     R4 += 5;
457 L5B:R7 += 8;
460     // Loop 1
461 LD32_LABEL(r0, M0T);
462 LD32_LABEL(r1, M0B);
463 LT1 = r0;
464 LC1 = p1;
465     R0 = [ P2 ++ ];
466 LB1 = r1;
467 M0T:R3 += 4;
468     R2 += 3;
469     R4 += 5;
470     R5 += 6;
471     R6 += 7;
472 M0B:R7 += 8;
474     // Loop 1
475 LD32_LABEL(r0, M1T);
476 LD32_LABEL(r1, M1B);
477 LT1 = r0;
478 LC1 = p1;
479     R0 = [ P2 ++ ];
480 NOP;
481 LB1 = r1;
482 M1T:R4 += 5;
483     R2 += 3;
484     R3 += 4;
485     R5 += 6;
486     R6 += 7;
487 M1B:R7 += 8;
489     // Loop 1
490 LD32_LABEL(r0, M2T);
491 LD32_LABEL(r1, M2B);
492 LT1 = r0;
493 LC1 = p1;
494     R0 = [ P2 ++ ];
495 NOP;
496 NOP;
497 LB1 = r1;
498 M2T:R5 += 6;
499     R2 += 3;
500     R3 += 4;
501     R4 += 5;
502     R6 += 7;
503 M2B:R7 += 8;
505     // Loop 1
506 LD32_LABEL(r0, M3T);
507 LD32_LABEL(r1, M3B);
508 LT1 = r0;
509 LC1 = p1;
510     R0 = [ P2 ++ ];
511 NOP;
512 NOP;
513 NOP;
514 LB1 = r1;
515 M3T:R2 += 3;
516     R5 += 6;
517     R6 += 7;
518     R3 += 4;
519     R4 += 5;
520 M3B:R7 += 8;
522     // Loop 1
523 LD32_LABEL(r0, M4T);
524 LD32_LABEL(r1, M4B);
525 LT1 = r0;
526 LC1 = p1;
527     R0 = [ P2 ++ ];
528 NOP;
529 NOP;
530 NOP;
531 NOP;
532 LB1 = r1;
533 M4T:R2 += 3;
534     R3 += 4;
535     R5 += 6;
536     R6 += 7;
537     R4 += 5;
538 M4B:R7 += 8;
540     // Loop 1
541 LD32_LABEL(r0, M5T);
542 LD32_LABEL(r1, M5B);
543     [ -- SP ] = R1;
544 SSYNC;
545 LT1 = r0;
546 LC1 = p0;
547     R0 = [ P2 ++ ];
548 LB1 = [sp++];
549 M5T:R2 += 3;
550     R3 += 4;
551     R5 += 6;
552     R6 += 7;
553     R4 += 5;
554 M5B:R7 += 8;
556 NOP;
557 NOP;
558 RTI;
560 .dw 0xFFFF
561 .dw 0xFFFF
562 .dw 0xFFFF
563 .dw 0xFFFF
564 .dw 0xFFFF
565 .dw 0xFFFF
566 .dw 0xFFFF
568 /////////////////////////////////////////////////////////////////////////////
569 ///////////////////////// USER CODE             /////////////////////////////
570 /////////////////////////////////////////////////////////////////////////////
573  USER_CODE :
575 NOP;
576 NOP;
577 NOP;
578 NOP;
579 dbg_pass;        // Call Endtest Macro
581 /////////////////////////////////////////////////////////////////////////////
582 ///////////////////////// DATA MEMRORY          /////////////////////////////
583 /////////////////////////////////////////////////////////////////////////////
585 .section MEM_0x00F00100,"aw"
586 .dd 0x01010101;
587 .dd 0x02020202;
588 .dd 0x03030303;
589 .dd 0x04040404;
590 .dd 0x05050505;
591 .dd 0x06060606;
592 .dd 0x07070707;
593 .dd 0x08080808;
594 .dd 0x09090909;
595 .dd 0x0a0a0a0a;
596 .dd 0x0b0b0b0b;
597 .dd 0x0c0c0c0c;
598 .dd 0x0d0d0d0d;
599 .dd 0x0e0e0e0e;
600 .dd 0x0f0f0f0f;
602 // Define Kernal Stack
603 .section MEM_0x00F00210,"aw"
604     .space (STACKSIZE);
605      KSTACK :
607     .space (STACKSIZE);
608      USTACK :
610 /////////////////////////////////////////////////////////////////////////////
611 ///////////////////////// END OF TEST           /////////////////////////////
612 /////////////////////////////////////////////////////////////////////////////