ld: Move the .note.build-id section to near the start of the memory map.
[binutils-gdb.git] / sim / testsuite / bfin / se_loop_mv2lc.S
blob69adeca951fbeddad717ed69ca203af0ea8b7aae
1 //Original:/proj/frio/dv/testcases/seq/se_loop_mv2lc/se_loop_mv2lc.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)
15 include(symtable.inc)
16 include(mmrs.inc)
18 /////////////////////////////////////////////////////////////////////////////
19 ///////////////////////// Defines               /////////////////////////////
20 /////////////////////////////////////////////////////////////////////////////
22 #ifndef USER_CODE_SPACE
23 #define USER_CODE_SPACE  CODE_ADDR_1   //
24 #endif
25 #ifndef STACKSIZE
26 #define STACKSIZE        0x00000010
27 #endif
28 #ifndef ITABLE
29 #define ITABLE           CODE_ADDR_2   //
30 #endif
32 /////////////////////////////////////////////////////////////////////////////
33 ///////////////////////// RESET ISR             /////////////////////////////
34 /////////////////////////////////////////////////////////////////////////////
36  RST_ISR :
38     // Initialize Dregs
39 INIT_R_REGS(0);
41     // Initialize Pregs
42 INIT_P_REGS(0);
44     // Initialize ILBM Registers
45 INIT_I_REGS(0);
46 INIT_M_REGS(0);
47 INIT_L_REGS(0);
48 INIT_B_REGS(0);
50     // Initialize the Address of the Checkreg data segment
51     // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
52 CHECK_INIT_DEF(p5); //CHECK_INIT(p5,   0x00BFFFFC);
54     // Setup User Stack
55 LD32_LABEL(sp, USTACK);
56 USP = SP;
58     // Setup Kernel Stack
59 LD32_LABEL(sp, KSTACK);
61     // Setup Frame Pointer
62 FP = SP;
64     // Setup Event Vector Table
65 LD32(p0, EVT0);
67 LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
68     [ P0 ++ ] = R0;
69 LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
70     [ P0 ++ ] = R0;
71 LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
72     [ P0 ++ ] = R0;
73 LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
74     [ P0 ++ ] = R0;
75     [ P0 ++ ] = R0;                // IVT4 not used
76 LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
77     [ P0 ++ ] = R0;
78 LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
79     [ P0 ++ ] = R0;
80 LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
81     [ P0 ++ ] = R0;
82 LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
83     [ P0 ++ ] = R0;
84 LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
85     [ P0 ++ ] = R0;
86 LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
87     [ P0 ++ ] = R0;
88 LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
89     [ P0 ++ ] = R0;
90 LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
91     [ P0 ++ ] = R0;
92 LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
93     [ P0 ++ ] = R0;
94 LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
95     [ P0 ++ ] = R0;
96 LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
97     [ P0 ++ ] = R0;
99     // Setup the EVT_OVERRIDE MMR
100     R0 = 0;
101 LD32(p0, EVT_OVERRIDE);
102     [ P0 ] = R0;
104     // Setup Interrupt Mask
105     R0 = -1;
106 LD32(p0, IMASK);
107     [ P0 ] = R0;
109     // Return to Supervisor Code
110 RAISE 15;
111 NOP;
113 LD32_LABEL(r0, USER_CODE);
114 RETI = R0;
115 RTI;
117 .dw 0xFFFF
118 .dw 0xFFFF
119 .dw 0xFFFF
120 .dw 0xFFFF
121 .dw 0xFFFF
122 .dw 0xFFFF
123 .dw 0xFFFF
125 /////////////////////////////////////////////////////////////////////////////
128 /////////////////////////////////////////////////////////////////////////////
129 ///////////////////////// EMU ISR               /////////////////////////////
130 /////////////////////////////////////////////////////////////////////////////
132  EMU_ISR :
134 RTE;
136 .dw 0xFFFF
137 .dw 0xFFFF
138 .dw 0xFFFF
139 .dw 0xFFFF
140 .dw 0xFFFF
141 .dw 0xFFFF
142 .dw 0xFFFF
144 /////////////////////////////////////////////////////////////////////////////
145 ///////////////////////// NMI ISR               /////////////////////////////
146 /////////////////////////////////////////////////////////////////////////////
148  NMI_ISR :
150 RTN;
152 .dw 0xFFFF
153 .dw 0xFFFF
154 .dw 0xFFFF
155 .dw 0xFFFF
156 .dw 0xFFFF
157 .dw 0xFFFF
158 .dw 0xFFFF
160 /////////////////////////////////////////////////////////////////////////////
161 ///////////////////////// EXC ISR               /////////////////////////////
162 /////////////////////////////////////////////////////////////////////////////
164  EXC_ISR :
166 RTX;
168 .dw 0xFFFF
169 .dw 0xFFFF
170 .dw 0xFFFF
171 .dw 0xFFFF
172 .dw 0xFFFF
173 .dw 0xFFFF
174 .dw 0xFFFF
176 /////////////////////////////////////////////////////////////////////////////
177 ///////////////////////// HWE ISR               /////////////////////////////
178 /////////////////////////////////////////////////////////////////////////////
180  HWE_ISR :
182 RTI;
184 .dw 0xFFFF
185 .dw 0xFFFF
186 .dw 0xFFFF
187 .dw 0xFFFF
188 .dw 0xFFFF
189 .dw 0xFFFF
190 .dw 0xFFFF
192 /////////////////////////////////////////////////////////////////////////////
193 ///////////////////////// TMR ISR               /////////////////////////////
194 /////////////////////////////////////////////////////////////////////////////
196  TMR_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 ///////////////////////// IGV7 ISR              /////////////////////////////
210 /////////////////////////////////////////////////////////////////////////////
212  IGV7_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 ///////////////////////// IGV8 ISR              /////////////////////////////
226 /////////////////////////////////////////////////////////////////////////////
228  IGV8_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 ///////////////////////// IGV9 ISR              /////////////////////////////
242 /////////////////////////////////////////////////////////////////////////////
244  IGV9_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 ///////////////////////// IGV10 ISR             /////////////////////////////
258 /////////////////////////////////////////////////////////////////////////////
260  IGV10_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 ///////////////////////// IGV11 ISR             /////////////////////////////
274 /////////////////////////////////////////////////////////////////////////////
276  IGV11_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 ///////////////////////// IGV12 ISR             /////////////////////////////
290 /////////////////////////////////////////////////////////////////////////////
292  IGV12_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 ///////////////////////// IGV13 ISR             /////////////////////////////
306 /////////////////////////////////////////////////////////////////////////////
308  IGV13_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 ///////////////////////// IGV14 ISR             /////////////////////////////
322 /////////////////////////////////////////////////////////////////////////////
324  IGV14_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 ///////////////////////// IGV15 ISR             /////////////////////////////
338 /////////////////////////////////////////////////////////////////////////////
340  IGV15_ISR :
342     P0 = 0x5 (Z);
343     P1 = 0x3 (Z);
345     // Loop 0
346 LD32_LABEL(r0, L0T);
347 LD32_LABEL(r1, L0B);
348 LT0 = r0;
349 LB0 = r1;
351 LC0 = P0;
352 NOP;
353 JUMP.S 2;
355 JUMP.S 6;
356 NOP;
357 LC0 = P0;
358 LC0 = P1;
359 L0T:R2 += 3;
360     R3 += 4;
361     R4 += 5;
362     R5 += 6;
363     R6 += 7;
364 L0B:R7 += 8;
366     // Loop 1
367 LD32_LABEL(r0, L1T);
368 LD32_LABEL(r1, L1B);
369 LT1 = r0;
370 LB1 = r1;
372 LC1 = P0;
373 NOP;
374 JUMP.S 2;
376 JUMP.S 6;
377 NOP;
378 LC1 = P0;
379 LC1 = P1;
380 L1T:R2 += 3;
381     R3 += 4;
382     R4 += 5;
383     R5 += 6;
384     R6 += 7;
385 L1B:R7 += 8;
387     // Loop 0
388 LSETUP ( L2T , L2T ) LC0 = P0;
389 NOP;
390 NOP;
391 NOP;
392 LC0 = P1;
393 L2T:R2 += 1;
394     R3 += 2;
395     R4 += 3;
396     R5 += 4;
397     R6 += 5;
398 L2B:R7 += 6;
400 LC0 = P1;
401 NOP;
402 NOP;
403 NOP;
404 LSETUP ( L3T , L3T ) LC0 = P0;
405 L3T:R2 += 1;
406     R3 += 2;
407     R4 += 3;
408     R5 += 4;
409     R6 += 5;
410 L3B:R7 += 6;
412 LSETUP ( L4T , L4B ) LC0 = P0;
413 NOP;
414 NOP;
415 LC0 = P1;
416 L4T:R2 += 1;
417 L4B:R3 += 2;
418     R4 += 3;
419     R5 += 4;
420     R6 += 5;
421     R7 += 6;
423 LC0 = P1;
424 NOP;
425 NOP;
426 LSETUP ( L5T , L5B ) LC0 = P0;
427 L5T:R2 += 1;
428 L5B:R3 += 2;
429     R4 += 3;
430     R5 += 4;
431     R6 += 5;
432     R7 += 6;
434 LSETUP ( L6T , L6B ) LC0 = P0;
435 NOP;
436 LC0 = P1;
437 L6T:R2 += 1;
438     R3 += 2;
439 L6B:R4 += 3;
440     R5 += 4;
441     R6 += 5;
442     R7 += 6;
444 LC0 = P1;
445 NOP;
446 LSETUP ( L7T , L7B ) LC0 = P0;
447 L7T:R2 += 1;
448     R3 += 2;
449 L7B:R4 += 3;
450     R5 += 4;
451     R6 += 5;
452     R7 += 6;
454 LSETUP ( L8T , L8B ) LC0 = P0;
455 LC0 = P1;
456 L8T:R2 += 1;
457     R3 += 2;
458     R4 += 3;
459 L8B:R5 += 4;
460     R6 += 5;
461     R7 += 6;
463 LC0 = P1;
464 LSETUP ( L9T , L9B ) LC0 = P0;
465 L9T:R2 += 1;
466     R3 += 2;
467     R4 += 3;
468 L9B:R5 += 4;
469     R6 += 5;
470     R7 += 6;
473     //  Loop 1
474 LSETUP ( M2T , M2T ) LC1 = P0;
475 NOP;
476 NOP;
477 NOP;
478 LC1 = P1;
479 M2T:R2 += 1;
480     R3 += 2;
481     R4 += 3;
482     R5 += 4;
483     R6 += 5;
484 M2B:R7 += 6;
486 LC1 = P1;
487 NOP;
488 NOP;
489 NOP;
490 LSETUP ( M3T , M3T ) LC1 = P0;
491 M3T:R2 += 1;
492     R3 += 2;
493     R4 += 3;
494     R5 += 4;
495     R6 += 5;
496 M3B:R7 += 6;
498 LSETUP ( M4T , M4B ) LC1 = P0;
499 NOP;
500 NOP;
501 LC1 = P1;
502 M4T:R2 += 1;
503 M4B:R3 += 2;
504     R4 += 3;
505     R5 += 4;
506     R6 += 5;
507     R7 += 6;
509 LC1 = P1;
510 NOP;
511 NOP;
512 LSETUP ( M5T , M5B ) LC1 = P0;
513 M5T:R2 += 1;
514 M5B:R3 += 2;
515     R4 += 3;
516     R5 += 4;
517     R6 += 5;
518     R7 += 6;
520 LSETUP ( M6T , M6B ) LC1 = P0;
521 NOP;
522 LC1 = P1;
523 M6T:R2 += 1;
524     R3 += 2;
525 M6B:R4 += 3;
526     R5 += 4;
527     R6 += 5;
528     R7 += 6;
530 LC1 = P1;
531 NOP;
532 LSETUP ( M7T , M7B ) LC1 = P0;
533 M7T:R2 += 1;
534     R3 += 2;
535 M7B:R4 += 3;
536     R5 += 4;
537     R6 += 5;
538     R7 += 6;
540 LSETUP ( M8T , M8B ) LC1 = P0;
541 LC1 = P1;
542 M8T:R2 += 1;
543     R3 += 2;
544     R4 += 3;
545 M8B:R5 += 4;
546     R6 += 5;
547     R7 += 6;
549 LC1 = P1;
550 LSETUP ( M9T , M9B ) LC1 = P0;
551 M9T:R2 += 1;
552     R3 += 2;
553     R4 += 3;
554 M9B:R5 += 4;
555     R6 += 5;
556     R7 += 6;
558     // Loop 0
559 LSETUP ( N2T , N2B ) LC0 = P0 >> 1;
560 NOP;
561 NOP;
562 NOP;
563 LC0 = P1;
564 N2T:R2 += 1;
565     R3 += 2;
566     R4 += 3;
567     R5 += 4;
568     R6 += 5;
569 N2B:R7 += 6;
571 LC0 = P1;
572 NOP;
573 NOP;
574 NOP;
575 LSETUP ( N3T , N3B ) LC0 = P0 >> 1;
576 N3T:R2 += 1;
577     R3 += 2;
578     R4 += 3;
579     R5 += 4;
580     R6 += 5;
581 N3B:R7 += 6;
583 LSETUP ( N4T , N4B ) LC0 = P0 >> 1;
584 NOP;
585 NOP;
586 LC0 = P1;
587 N4T:R2 += 1;
588     R3 += 2;
589     R4 += 3;
590     R5 += 4;
591 N4B:R6 += 5;
592     R7 += 6;
594 LC0 = P1;
595 NOP;
596 NOP;
597 LSETUP ( N5T , N5B ) LC0 = P0 >> 1;
598 N5T:R2 += 1;
599     R3 += 2;
600     R4 += 3;
601     R5 += 4;
602 N5B:R6 += 5;
603     R7 += 6;
605 LSETUP ( N6T , N6B ) LC0 = P0 >> 1;
606 NOP;
607 LC0 = P1;
608 N6T:R2 += 1;
609     R3 += 2;
610     R4 += 3;
611 N6B:R5 += 4;
612     R6 += 5;
613     R7 += 6;
615 LC0 = P1;
616 NOP;
617 LSETUP ( N7T , N7B ) LC0 = P0 >> 1;
618 N7T:R2 += 1;
619     R3 += 2;
620     R4 += 3;
621 N7B:R5 += 4;
622     R6 += 5;
623     R7 += 6;
625 LSETUP ( N8T , N8T ) LC0 = P0 >> 1;
626 LC0 = P1;
627 N8T:R2 += 1;
628     R3 += 2;
629 N8B:R4 += 3;
630     R5 += 4;
631     R6 += 5;
632     R7 += 6;
634 LC0 = P1;
635 LSETUP ( N9T , N9T ) LC0 = P0 >> 1;
636 N9T:R2 += 1;
637     R3 += 2;
638 N9B:R4 += 3;
639     R5 += 4;
640     R6 += 5;
641     R7 += 6;
644     //  Loop 1
645 LSETUP ( O2T , O2B ) LC1 = P0 >> 1;
646 NOP;
647 NOP;
648 NOP;
649 LC1 = P1;
650 O2T:R2 += 1;
651     R3 += 2;
652     R4 += 3;
653     R5 += 4;
654     R6 += 5;
655 O2B:R7 += 6;
657 LC1 = P1;
658 NOP;
659 NOP;
660 NOP;
661 LSETUP ( O3T , O3B ) LC1 = P0 >> 1;
662 O3T:R2 += 1;
663     R3 += 2;
664     R4 += 3;
665     R5 += 4;
666     R6 += 5;
667 O3B:R7 += 6;
669 LSETUP ( O4T , O4B ) LC1 = P0 >> 1;
670 NOP;
671 NOP;
672 LC1 = P1;
673 O4T:R2 += 1;
674     R3 += 2;
675     R4 += 3;
676     R5 += 4;
677 O4B:R6 += 5;
678     R7 += 6;
680 LC1 = P1;
681 NOP;
682 NOP;
683 LSETUP ( O5T , O5B ) LC1 = P0 >> 1;
684 O5T:R2 += 1;
685     R3 += 2;
686     R4 += 3;
687     R5 += 4;
688 O5B:R6 += 5;
689     R7 += 6;
691 LSETUP ( O6T , O6B ) LC1 = P0 >> 1;
692 NOP;
693 LC1 = P1;
694 O6T:R2 += 1;
695     R3 += 2;
696     R4 += 3;
697 O6B:R5 += 4;
698     R6 += 5;
699     R7 += 6;
701 LC1 = P1;
702 NOP;
703 LSETUP ( O7T , O7B ) LC1 = P0 >> 1;
704 O7T:R2 += 1;
705     R3 += 2;
706     R4 += 3;
707 O7B:R5 += 4;
708     R6 += 5;
709     R7 += 6;
711 LSETUP ( O8T , O8T ) LC1 = P0 >> 1;
712 LC1 = P1;
713 O8T:R2 += 1;
714     R3 += 2;
715 O8B:R4 += 3;
716     R5 += 4;
717     R6 += 5;
718     R7 += 6;
720 LC1 = P1;
721 LSETUP ( O9T , O9T ) LC1 = P0 >> 1;
722 O9T:R2 += 1;
723     R3 += 2;
724 O9B:R4 += 3;
725     R5 += 4;
726     R6 += 5;
727     R7 += 6;
730 NOP;
731 NOP;
732 RTI;
734 .dw 0xFFFF
735 .dw 0xFFFF
736 .dw 0xFFFF
737 .dw 0xFFFF
738 .dw 0xFFFF
739 .dw 0xFFFF
740 .dw 0xFFFF
742 /////////////////////////////////////////////////////////////////////////////
743 ///////////////////////// USER CODE             /////////////////////////////
744 /////////////////////////////////////////////////////////////////////////////
747  USER_CODE :
749 NOP;
750 NOP;
751 NOP;
752 NOP;
753 dbg_pass;        // Call Endtest Macro
755 /////////////////////////////////////////////////////////////////////////////
756 ///////////////////////// DATA MEMRORY          /////////////////////////////
757 /////////////////////////////////////////////////////////////////////////////
759 .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
760 .dd 0xdeadbeef;
761 .section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
762 .dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
763 .dd 0x02020202;
764 .dd 0x03030303;
765 .dd 0x04040404;
767 // Define Kernal Stack
768 .data
769     .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
770      KSTACK :
772     .space (STACKSIZE);
773      USTACK :
775 /////////////////////////////////////////////////////////////////////////////
776 ///////////////////////// END OF TEST           /////////////////////////////
777 /////////////////////////////////////////////////////////////////////////////