xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/se_loop_mv2lc.S (revision 2dd295436a0082eb4f8d294f4aa73c223413d0f2)
1//Original:/proj/frio/dv/testcases/seq/se_loop_mv2lc/se_loop_mv2lc.dsp
2# mach: bfin
3# sim: --environment operating
4
5#include "test.h"
6.include "testutils.inc"
7start
8
9/////////////////////////////////////////////////////////////////////////////
10///////////////////////// Include Files         /////////////////////////////
11/////////////////////////////////////////////////////////////////////////////
12
13include(std.inc)
14include(selfcheck.inc)
15include(symtable.inc)
16include(mmrs.inc)
17
18/////////////////////////////////////////////////////////////////////////////
19///////////////////////// Defines               /////////////////////////////
20/////////////////////////////////////////////////////////////////////////////
21
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
31
32/////////////////////////////////////////////////////////////////////////////
33///////////////////////// RESET ISR             /////////////////////////////
34/////////////////////////////////////////////////////////////////////////////
35
36 RST_ISR :
37
38    // Initialize Dregs
39INIT_R_REGS(0);
40
41    // Initialize Pregs
42INIT_P_REGS(0);
43
44    // Initialize ILBM Registers
45INIT_I_REGS(0);
46INIT_M_REGS(0);
47INIT_L_REGS(0);
48INIT_B_REGS(0);
49
50    // Initialize the Address of the Checkreg data segment
51    // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
52CHECK_INIT_DEF(p5); //CHECK_INIT(p5,   0x00BFFFFC);
53
54    // Setup User Stack
55LD32_LABEL(sp, USTACK);
56USP = SP;
57
58    // Setup Kernel Stack
59LD32_LABEL(sp, KSTACK);
60
61    // Setup Frame Pointer
62FP = SP;
63
64    // Setup Event Vector Table
65LD32(p0, EVT0);
66
67LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
68    [ P0 ++ ] = R0;
69LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
70    [ P0 ++ ] = R0;
71LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
72    [ P0 ++ ] = R0;
73LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
74    [ P0 ++ ] = R0;
75    [ P0 ++ ] = R0;                // IVT4 not used
76LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
77    [ P0 ++ ] = R0;
78LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
79    [ P0 ++ ] = R0;
80LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
81    [ P0 ++ ] = R0;
82LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
83    [ P0 ++ ] = R0;
84LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
85    [ P0 ++ ] = R0;
86LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
87    [ P0 ++ ] = R0;
88LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
89    [ P0 ++ ] = R0;
90LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
91    [ P0 ++ ] = R0;
92LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
93    [ P0 ++ ] = R0;
94LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
95    [ P0 ++ ] = R0;
96LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
97    [ P0 ++ ] = R0;
98
99    // Setup the EVT_OVERRIDE MMR
100    R0 = 0;
101LD32(p0, EVT_OVERRIDE);
102    [ P0 ] = R0;
103
104    // Setup Interrupt Mask
105    R0 = -1;
106LD32(p0, IMASK);
107    [ P0 ] = R0;
108
109    // Return to Supervisor Code
110RAISE 15;
111NOP;
112
113LD32_LABEL(r0, USER_CODE);
114RETI = R0;
115RTI;
116
117.dw 0xFFFF
118.dw 0xFFFF
119.dw 0xFFFF
120.dw 0xFFFF
121.dw 0xFFFF
122.dw 0xFFFF
123.dw 0xFFFF
124
125/////////////////////////////////////////////////////////////////////////////
126
127
128/////////////////////////////////////////////////////////////////////////////
129///////////////////////// EMU ISR               /////////////////////////////
130/////////////////////////////////////////////////////////////////////////////
131
132 EMU_ISR :
133
134RTE;
135
136.dw 0xFFFF
137.dw 0xFFFF
138.dw 0xFFFF
139.dw 0xFFFF
140.dw 0xFFFF
141.dw 0xFFFF
142.dw 0xFFFF
143
144/////////////////////////////////////////////////////////////////////////////
145///////////////////////// NMI ISR               /////////////////////////////
146/////////////////////////////////////////////////////////////////////////////
147
148 NMI_ISR :
149
150RTN;
151
152.dw 0xFFFF
153.dw 0xFFFF
154.dw 0xFFFF
155.dw 0xFFFF
156.dw 0xFFFF
157.dw 0xFFFF
158.dw 0xFFFF
159
160/////////////////////////////////////////////////////////////////////////////
161///////////////////////// EXC ISR               /////////////////////////////
162/////////////////////////////////////////////////////////////////////////////
163
164 EXC_ISR :
165
166RTX;
167
168.dw 0xFFFF
169.dw 0xFFFF
170.dw 0xFFFF
171.dw 0xFFFF
172.dw 0xFFFF
173.dw 0xFFFF
174.dw 0xFFFF
175
176/////////////////////////////////////////////////////////////////////////////
177///////////////////////// HWE ISR               /////////////////////////////
178/////////////////////////////////////////////////////////////////////////////
179
180 HWE_ISR :
181
182RTI;
183
184.dw 0xFFFF
185.dw 0xFFFF
186.dw 0xFFFF
187.dw 0xFFFF
188.dw 0xFFFF
189.dw 0xFFFF
190.dw 0xFFFF
191
192/////////////////////////////////////////////////////////////////////////////
193///////////////////////// TMR ISR               /////////////////////////////
194/////////////////////////////////////////////////////////////////////////////
195
196 TMR_ISR :
197
198RTI;
199
200.dw 0xFFFF
201.dw 0xFFFF
202.dw 0xFFFF
203.dw 0xFFFF
204.dw 0xFFFF
205.dw 0xFFFF
206.dw 0xFFFF
207
208/////////////////////////////////////////////////////////////////////////////
209///////////////////////// IGV7 ISR              /////////////////////////////
210/////////////////////////////////////////////////////////////////////////////
211
212 IGV7_ISR :
213
214RTI;
215
216.dw 0xFFFF
217.dw 0xFFFF
218.dw 0xFFFF
219.dw 0xFFFF
220.dw 0xFFFF
221.dw 0xFFFF
222.dw 0xFFFF
223
224/////////////////////////////////////////////////////////////////////////////
225///////////////////////// IGV8 ISR              /////////////////////////////
226/////////////////////////////////////////////////////////////////////////////
227
228 IGV8_ISR :
229
230RTI;
231
232.dw 0xFFFF
233.dw 0xFFFF
234.dw 0xFFFF
235.dw 0xFFFF
236.dw 0xFFFF
237.dw 0xFFFF
238.dw 0xFFFF
239
240/////////////////////////////////////////////////////////////////////////////
241///////////////////////// IGV9 ISR              /////////////////////////////
242/////////////////////////////////////////////////////////////////////////////
243
244 IGV9_ISR :
245
246RTI;
247
248.dw 0xFFFF
249.dw 0xFFFF
250.dw 0xFFFF
251.dw 0xFFFF
252.dw 0xFFFF
253.dw 0xFFFF
254.dw 0xFFFF
255
256/////////////////////////////////////////////////////////////////////////////
257///////////////////////// IGV10 ISR             /////////////////////////////
258/////////////////////////////////////////////////////////////////////////////
259
260 IGV10_ISR :
261
262RTI;
263
264.dw 0xFFFF
265.dw 0xFFFF
266.dw 0xFFFF
267.dw 0xFFFF
268.dw 0xFFFF
269.dw 0xFFFF
270.dw 0xFFFF
271
272/////////////////////////////////////////////////////////////////////////////
273///////////////////////// IGV11 ISR             /////////////////////////////
274/////////////////////////////////////////////////////////////////////////////
275
276 IGV11_ISR :
277
278RTI;
279
280.dw 0xFFFF
281.dw 0xFFFF
282.dw 0xFFFF
283.dw 0xFFFF
284.dw 0xFFFF
285.dw 0xFFFF
286.dw 0xFFFF
287
288/////////////////////////////////////////////////////////////////////////////
289///////////////////////// IGV12 ISR             /////////////////////////////
290/////////////////////////////////////////////////////////////////////////////
291
292 IGV12_ISR :
293
294RTI;
295
296.dw 0xFFFF
297.dw 0xFFFF
298.dw 0xFFFF
299.dw 0xFFFF
300.dw 0xFFFF
301.dw 0xFFFF
302.dw 0xFFFF
303
304/////////////////////////////////////////////////////////////////////////////
305///////////////////////// IGV13 ISR             /////////////////////////////
306/////////////////////////////////////////////////////////////////////////////
307
308 IGV13_ISR :
309
310RTI;
311
312.dw 0xFFFF
313.dw 0xFFFF
314.dw 0xFFFF
315.dw 0xFFFF
316.dw 0xFFFF
317.dw 0xFFFF
318.dw 0xFFFF
319
320/////////////////////////////////////////////////////////////////////////////
321///////////////////////// IGV14 ISR             /////////////////////////////
322/////////////////////////////////////////////////////////////////////////////
323
324 IGV14_ISR :
325
326RTI;
327
328.dw 0xFFFF
329.dw 0xFFFF
330.dw 0xFFFF
331.dw 0xFFFF
332.dw 0xFFFF
333.dw 0xFFFF
334.dw 0xFFFF
335
336/////////////////////////////////////////////////////////////////////////////
337///////////////////////// IGV15 ISR             /////////////////////////////
338/////////////////////////////////////////////////////////////////////////////
339
340 IGV15_ISR :
341
342    P0 = 0x5 (Z);
343    P1 = 0x3 (Z);
344
345    // Loop 0
346LD32_LABEL(r0, L0T);
347LD32_LABEL(r1, L0B);
348LT0 = r0;
349LB0 = r1;
350
351LC0 = P0;
352NOP;
353JUMP.S 2;
354
355JUMP.S 6;
356NOP;
357LC0 = P0;
358LC0 = P1;
359L0T:R2 += 3;
360    R3 += 4;
361    R4 += 5;
362    R5 += 6;
363    R6 += 7;
364L0B:R7 += 8;
365
366    // Loop 1
367LD32_LABEL(r0, L1T);
368LD32_LABEL(r1, L1B);
369LT1 = r0;
370LB1 = r1;
371
372LC1 = P0;
373NOP;
374JUMP.S 2;
375
376JUMP.S 6;
377NOP;
378LC1 = P0;
379LC1 = P1;
380L1T:R2 += 3;
381    R3 += 4;
382    R4 += 5;
383    R5 += 6;
384    R6 += 7;
385L1B:R7 += 8;
386
387    // Loop 0
388LSETUP ( L2T , L2T ) LC0 = P0;
389NOP;
390NOP;
391NOP;
392LC0 = P1;
393L2T:R2 += 1;
394    R3 += 2;
395    R4 += 3;
396    R5 += 4;
397    R6 += 5;
398L2B:R7 += 6;
399
400LC0 = P1;
401NOP;
402NOP;
403NOP;
404LSETUP ( L3T , L3T ) LC0 = P0;
405L3T:R2 += 1;
406    R3 += 2;
407    R4 += 3;
408    R5 += 4;
409    R6 += 5;
410L3B:R7 += 6;
411
412LSETUP ( L4T , L4B ) LC0 = P0;
413NOP;
414NOP;
415LC0 = P1;
416L4T:R2 += 1;
417L4B:R3 += 2;
418    R4 += 3;
419    R5 += 4;
420    R6 += 5;
421    R7 += 6;
422
423LC0 = P1;
424NOP;
425NOP;
426LSETUP ( L5T , L5B ) LC0 = P0;
427L5T:R2 += 1;
428L5B:R3 += 2;
429    R4 += 3;
430    R5 += 4;
431    R6 += 5;
432    R7 += 6;
433
434LSETUP ( L6T , L6B ) LC0 = P0;
435NOP;
436LC0 = P1;
437L6T:R2 += 1;
438    R3 += 2;
439L6B:R4 += 3;
440    R5 += 4;
441    R6 += 5;
442    R7 += 6;
443
444LC0 = P1;
445NOP;
446LSETUP ( L7T , L7B ) LC0 = P0;
447L7T:R2 += 1;
448    R3 += 2;
449L7B:R4 += 3;
450    R5 += 4;
451    R6 += 5;
452    R7 += 6;
453
454LSETUP ( L8T , L8B ) LC0 = P0;
455LC0 = P1;
456L8T:R2 += 1;
457    R3 += 2;
458    R4 += 3;
459L8B:R5 += 4;
460    R6 += 5;
461    R7 += 6;
462
463LC0 = P1;
464LSETUP ( L9T , L9B ) LC0 = P0;
465L9T:R2 += 1;
466    R3 += 2;
467    R4 += 3;
468L9B:R5 += 4;
469    R6 += 5;
470    R7 += 6;
471
472
473    //  Loop 1
474LSETUP ( M2T , M2T ) LC1 = P0;
475NOP;
476NOP;
477NOP;
478LC1 = P1;
479M2T:R2 += 1;
480    R3 += 2;
481    R4 += 3;
482    R5 += 4;
483    R6 += 5;
484M2B:R7 += 6;
485
486LC1 = P1;
487NOP;
488NOP;
489NOP;
490LSETUP ( M3T , M3T ) LC1 = P0;
491M3T:R2 += 1;
492    R3 += 2;
493    R4 += 3;
494    R5 += 4;
495    R6 += 5;
496M3B:R7 += 6;
497
498LSETUP ( M4T , M4B ) LC1 = P0;
499NOP;
500NOP;
501LC1 = P1;
502M4T:R2 += 1;
503M4B:R3 += 2;
504    R4 += 3;
505    R5 += 4;
506    R6 += 5;
507    R7 += 6;
508
509LC1 = P1;
510NOP;
511NOP;
512LSETUP ( M5T , M5B ) LC1 = P0;
513M5T:R2 += 1;
514M5B:R3 += 2;
515    R4 += 3;
516    R5 += 4;
517    R6 += 5;
518    R7 += 6;
519
520LSETUP ( M6T , M6B ) LC1 = P0;
521NOP;
522LC1 = P1;
523M6T:R2 += 1;
524    R3 += 2;
525M6B:R4 += 3;
526    R5 += 4;
527    R6 += 5;
528    R7 += 6;
529
530LC1 = P1;
531NOP;
532LSETUP ( M7T , M7B ) LC1 = P0;
533M7T:R2 += 1;
534    R3 += 2;
535M7B:R4 += 3;
536    R5 += 4;
537    R6 += 5;
538    R7 += 6;
539
540LSETUP ( M8T , M8B ) LC1 = P0;
541LC1 = P1;
542M8T:R2 += 1;
543    R3 += 2;
544    R4 += 3;
545M8B:R5 += 4;
546    R6 += 5;
547    R7 += 6;
548
549LC1 = P1;
550LSETUP ( M9T , M9B ) LC1 = P0;
551M9T:R2 += 1;
552    R3 += 2;
553    R4 += 3;
554M9B:R5 += 4;
555    R6 += 5;
556    R7 += 6;
557
558    // Loop 0
559LSETUP ( N2T , N2B ) LC0 = P0 >> 1;
560NOP;
561NOP;
562NOP;
563LC0 = P1;
564N2T:R2 += 1;
565    R3 += 2;
566    R4 += 3;
567    R5 += 4;
568    R6 += 5;
569N2B:R7 += 6;
570
571LC0 = P1;
572NOP;
573NOP;
574NOP;
575LSETUP ( N3T , N3B ) LC0 = P0 >> 1;
576N3T:R2 += 1;
577    R3 += 2;
578    R4 += 3;
579    R5 += 4;
580    R6 += 5;
581N3B:R7 += 6;
582
583LSETUP ( N4T , N4B ) LC0 = P0 >> 1;
584NOP;
585NOP;
586LC0 = P1;
587N4T:R2 += 1;
588    R3 += 2;
589    R4 += 3;
590    R5 += 4;
591N4B:R6 += 5;
592    R7 += 6;
593
594LC0 = P1;
595NOP;
596NOP;
597LSETUP ( N5T , N5B ) LC0 = P0 >> 1;
598N5T:R2 += 1;
599    R3 += 2;
600    R4 += 3;
601    R5 += 4;
602N5B:R6 += 5;
603    R7 += 6;
604
605LSETUP ( N6T , N6B ) LC0 = P0 >> 1;
606NOP;
607LC0 = P1;
608N6T:R2 += 1;
609    R3 += 2;
610    R4 += 3;
611N6B:R5 += 4;
612    R6 += 5;
613    R7 += 6;
614
615LC0 = P1;
616NOP;
617LSETUP ( N7T , N7B ) LC0 = P0 >> 1;
618N7T:R2 += 1;
619    R3 += 2;
620    R4 += 3;
621N7B:R5 += 4;
622    R6 += 5;
623    R7 += 6;
624
625LSETUP ( N8T , N8T ) LC0 = P0 >> 1;
626LC0 = P1;
627N8T:R2 += 1;
628    R3 += 2;
629N8B:R4 += 3;
630    R5 += 4;
631    R6 += 5;
632    R7 += 6;
633
634LC0 = P1;
635LSETUP ( N9T , N9T ) LC0 = P0 >> 1;
636N9T:R2 += 1;
637    R3 += 2;
638N9B:R4 += 3;
639    R5 += 4;
640    R6 += 5;
641    R7 += 6;
642
643
644    //  Loop 1
645LSETUP ( O2T , O2B ) LC1 = P0 >> 1;
646NOP;
647NOP;
648NOP;
649LC1 = P1;
650O2T:R2 += 1;
651    R3 += 2;
652    R4 += 3;
653    R5 += 4;
654    R6 += 5;
655O2B:R7 += 6;
656
657LC1 = P1;
658NOP;
659NOP;
660NOP;
661LSETUP ( O3T , O3B ) LC1 = P0 >> 1;
662O3T:R2 += 1;
663    R3 += 2;
664    R4 += 3;
665    R5 += 4;
666    R6 += 5;
667O3B:R7 += 6;
668
669LSETUP ( O4T , O4B ) LC1 = P0 >> 1;
670NOP;
671NOP;
672LC1 = P1;
673O4T:R2 += 1;
674    R3 += 2;
675    R4 += 3;
676    R5 += 4;
677O4B:R6 += 5;
678    R7 += 6;
679
680LC1 = P1;
681NOP;
682NOP;
683LSETUP ( O5T , O5B ) LC1 = P0 >> 1;
684O5T:R2 += 1;
685    R3 += 2;
686    R4 += 3;
687    R5 += 4;
688O5B:R6 += 5;
689    R7 += 6;
690
691LSETUP ( O6T , O6B ) LC1 = P0 >> 1;
692NOP;
693LC1 = P1;
694O6T:R2 += 1;
695    R3 += 2;
696    R4 += 3;
697O6B:R5 += 4;
698    R6 += 5;
699    R7 += 6;
700
701LC1 = P1;
702NOP;
703LSETUP ( O7T , O7B ) LC1 = P0 >> 1;
704O7T:R2 += 1;
705    R3 += 2;
706    R4 += 3;
707O7B:R5 += 4;
708    R6 += 5;
709    R7 += 6;
710
711LSETUP ( O8T , O8T ) LC1 = P0 >> 1;
712LC1 = P1;
713O8T:R2 += 1;
714    R3 += 2;
715O8B:R4 += 3;
716    R5 += 4;
717    R6 += 5;
718    R7 += 6;
719
720LC1 = P1;
721LSETUP ( O9T , O9T ) LC1 = P0 >> 1;
722O9T:R2 += 1;
723    R3 += 2;
724O9B:R4 += 3;
725    R5 += 4;
726    R6 += 5;
727    R7 += 6;
728
729
730NOP;
731NOP;
732RTI;
733
734.dw 0xFFFF
735.dw 0xFFFF
736.dw 0xFFFF
737.dw 0xFFFF
738.dw 0xFFFF
739.dw 0xFFFF
740.dw 0xFFFF
741
742/////////////////////////////////////////////////////////////////////////////
743///////////////////////// USER CODE             /////////////////////////////
744/////////////////////////////////////////////////////////////////////////////
745
746
747 USER_CODE :
748
749NOP;
750NOP;
751NOP;
752NOP;
753dbg_pass;        // Call Endtest Macro
754
755/////////////////////////////////////////////////////////////////////////////
756///////////////////////// DATA MEMRORY          /////////////////////////////
757/////////////////////////////////////////////////////////////////////////////
758
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;
766
767// Define Kernal Stack
768.data
769    .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
770     KSTACK :
771
772    .space (STACKSIZE);
773     USTACK :
774
775/////////////////////////////////////////////////////////////////////////////
776///////////////////////// END OF TEST           /////////////////////////////
777/////////////////////////////////////////////////////////////////////////////
778