xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/se_loop_mv2lc_stall.S (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/proj/frio/dv/testcases/seq/se_loop_mv2lc_stall/se_loop_mv2lc_stall.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)
15
16/////////////////////////////////////////////////////////////////////////////
17///////////////////////// Defines               /////////////////////////////
18/////////////////////////////////////////////////////////////////////////////
19
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
47
48/////////////////////////////////////////////////////////////////////////////
49///////////////////////// RESET ISR             /////////////////////////////
50/////////////////////////////////////////////////////////////////////////////
51
52 RST_ISR :
53
54    // Initialize Dregs
55INIT_R_REGS(0);
56
57    // Initialize Pregs
58INIT_P_REGS(0);
59
60    // Initialize ILBM Registers
61INIT_I_REGS(0);
62INIT_M_REGS(0);
63INIT_L_REGS(0);
64INIT_B_REGS(0);
65
66    // Initialize the Address of the Checkreg data segment
67    // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
68CHECK_INIT(p5,   0x00BFFFFC);
69
70    // Setup User Stack
71LD32_LABEL(sp, USTACK);
72USP = SP;
73
74    // Setup Kernel Stack
75LD32_LABEL(sp, KSTACK);
76
77    // Setup Frame Pointer
78FP = SP;
79
80    // Setup Event Vector Table
81LD32(p0, EVT);
82
83LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
84    [ P0 ++ ] = R0;
85LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
86    [ P0 ++ ] = R0;
87LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
88    [ P0 ++ ] = R0;
89LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
90    [ P0 ++ ] = R0;
91    [ P0 ++ ] = R0;                // IVT4 not used
92LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
93    [ P0 ++ ] = R0;
94LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
95    [ P0 ++ ] = R0;
96LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
97    [ P0 ++ ] = R0;
98LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
99    [ P0 ++ ] = R0;
100LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
101    [ P0 ++ ] = R0;
102LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
103    [ P0 ++ ] = R0;
104LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
105    [ P0 ++ ] = R0;
106LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
107    [ P0 ++ ] = R0;
108LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
109    [ P0 ++ ] = R0;
110LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
111    [ P0 ++ ] = R0;
112LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
113    [ P0 ++ ] = R0;
114
115    // Setup the EVT_OVERRIDE MMR
116    R0 = 0;
117LD32(p0, EVT_OVERRIDE);
118    [ P0 ] = R0;
119
120    // Setup Interrupt Mask
121    R0 = -1;
122LD32(p0, IMASK);
123    [ P0 ] = R0;
124
125    // Return to Supervisor Code
126RAISE 15;
127NOP;
128
129LD32_LABEL(r0, USER_CODE);
130RETI = R0;
131RTI;
132
133.dw 0xFFFF
134.dw 0xFFFF
135.dw 0xFFFF
136.dw 0xFFFF
137.dw 0xFFFF
138.dw 0xFFFF
139.dw 0xFFFF
140
141/////////////////////////////////////////////////////////////////////////////
142
143
144/////////////////////////////////////////////////////////////////////////////
145///////////////////////// EMU ISR               /////////////////////////////
146/////////////////////////////////////////////////////////////////////////////
147
148 EMU_ISR :
149
150RTE;
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///////////////////////// NMI ISR               /////////////////////////////
162/////////////////////////////////////////////////////////////////////////////
163
164 NMI_ISR :
165
166RTN;
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///////////////////////// EXC ISR               /////////////////////////////
178/////////////////////////////////////////////////////////////////////////////
179
180 EXC_ISR :
181
182RTX;
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///////////////////////// HWE ISR               /////////////////////////////
194/////////////////////////////////////////////////////////////////////////////
195
196 HWE_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///////////////////////// TMR ISR               /////////////////////////////
210/////////////////////////////////////////////////////////////////////////////
211
212 TMR_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///////////////////////// IGV7 ISR              /////////////////////////////
226/////////////////////////////////////////////////////////////////////////////
227
228 IGV7_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///////////////////////// IGV8 ISR              /////////////////////////////
242/////////////////////////////////////////////////////////////////////////////
243
244 IGV8_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///////////////////////// IGV9 ISR              /////////////////////////////
258/////////////////////////////////////////////////////////////////////////////
259
260 IGV9_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///////////////////////// IGV10 ISR             /////////////////////////////
274/////////////////////////////////////////////////////////////////////////////
275
276 IGV10_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///////////////////////// IGV11 ISR             /////////////////////////////
290/////////////////////////////////////////////////////////////////////////////
291
292 IGV11_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///////////////////////// IGV12 ISR             /////////////////////////////
306/////////////////////////////////////////////////////////////////////////////
307
308 IGV12_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///////////////////////// IGV13 ISR             /////////////////////////////
322/////////////////////////////////////////////////////////////////////////////
323
324 IGV13_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///////////////////////// IGV14 ISR             /////////////////////////////
338/////////////////////////////////////////////////////////////////////////////
339
340 IGV14_ISR :
341
342RTI;
343
344.dw 0xFFFF
345.dw 0xFFFF
346.dw 0xFFFF
347.dw 0xFFFF
348.dw 0xFFFF
349.dw 0xFFFF
350.dw 0xFFFF
351
352/////////////////////////////////////////////////////////////////////////////
353///////////////////////// IGV15 ISR             /////////////////////////////
354/////////////////////////////////////////////////////////////////////////////
355
356 IGV15_ISR :
357
358    P0 = 0x5 (Z);
359    P1 = 0x3 (Z);
360    P2 = 0x0100 (Z);
361    P2.H = 0x00f0;
362
363    // 2 pushes of P0 onto the Stack;
364    [ -- SP ] = P0;
365    [ -- SP ] = P0;
366
367    // Loop 0
368LD32_LABEL(r0, L0T);
369LD32_LABEL(r1, L0B);
370LT0 = r0;
371LB0 = r1;
372    R0 = [ P2 ++ ];
373LC0 = p1;
374L0T:R3 += 4;
375    R2 += 3;
376    R4 += 5;
377    R5 += 6;
378    R6 += 7;
379L0B:R7 += 8;
380
381    // Loop 0
382LD32_LABEL(r0, L1T);
383LD32_LABEL(r1, L1B);
384LT0 = r0;
385LB0 = r1;
386    R0 = [ P2 ++ ];
387NOP;
388LC0 = p1;
389L1T:R4 += 5;
390    R2 += 3;
391    R3 += 4;
392    R5 += 6;
393    R6 += 7;
394L1B:R7 += 8;
395
396    // Loop 0
397LD32_LABEL(r0, L2T);
398LD32_LABEL(r1, L2B);
399LT0 = r0;
400LB0 = r1;
401    R0 = [ P2 ++ ];
402NOP;
403NOP;
404LC0 = p1;
405L2T:R5 += 6;
406    R2 += 3;
407    R3 += 4;
408    R4 += 5;
409    R6 += 7;
410L2B:R7 += 8;
411
412    // Loop 0
413LD32_LABEL(r0, L3T);
414LD32_LABEL(r1, L3B);
415LT0 = r0;
416LB0 = r1;
417    R0 = [ P2 ++ ];
418NOP;
419NOP;
420NOP;
421LC0 = p1;
422L3T:R2 += 3;
423    R5 += 6;
424    R6 += 7;
425    R3 += 4;
426    R4 += 5;
427L3B:R7 += 8;
428
429    // Loop 0
430LD32_LABEL(r0, L4T);
431LD32_LABEL(r1, L4B);
432LT0 = r0;
433LB0 = r1;
434    R0 = [ P2 ++ ];
435NOP;
436NOP;
437NOP;
438NOP;
439LC0 = p1;
440L4T:R2 += 3;
441    R3 += 4;
442    R5 += 6;
443    R6 += 7;
444    R4 += 5;
445L4B:R7 += 8;
446
447    // Loop 0
448LD32_LABEL(r0, L5T);
449LD32_LABEL(r1, L5B);
450LT0 = r0;
451LB0 = r1;
452    R0 = [ P2 ++ ];
453LC0 = [sp++];
454L5T:R2 += 3;
455    R3 += 4;
456    R5 += 6;
457    R6 += 7;
458    R4 += 5;
459L5B:R7 += 8;
460
461
462    // Loop 1
463LD32_LABEL(r0, M0T);
464LD32_LABEL(r1, M0B);
465LT1 = r0;
466LB1 = r1;
467    R0 = [ P2 ++ ];
468LC1 = p1;
469M0T:R3 += 4;
470    R2 += 3;
471    R4 += 5;
472    R5 += 6;
473    R6 += 7;
474M0B:R7 += 8;
475
476    // Loop 1
477LD32_LABEL(r0, M1T);
478LD32_LABEL(r1, M1B);
479LT1 = r0;
480LB1 = r1;
481    R0 = [ P2 ++ ];
482NOP;
483LC1 = p1;
484M1T:R4 += 5;
485    R2 += 3;
486    R3 += 4;
487    R5 += 6;
488    R6 += 7;
489M1B:R7 += 8;
490
491    // Loop 1
492LD32_LABEL(r0, M2T);
493LD32_LABEL(r1, M2B);
494LT1 = r0;
495LB1 = r1;
496    R0 = [ P2 ++ ];
497NOP;
498NOP;
499LC1 = p1;
500M2T:R5 += 6;
501    R2 += 3;
502    R3 += 4;
503    R4 += 5;
504    R6 += 7;
505M2B:R7 += 8;
506
507    // Loop 1
508LD32_LABEL(r0, M3T);
509LD32_LABEL(r1, M3B);
510LT1 = r0;
511LB1 = r1;
512    R0 = [ P2 ++ ];
513NOP;
514NOP;
515NOP;
516LC1 = p1;
517M3T:R2 += 3;
518    R5 += 6;
519    R6 += 7;
520    R3 += 4;
521    R4 += 5;
522M3B:R7 += 8;
523
524    // Loop 1
525LD32_LABEL(r0, M4T);
526LD32_LABEL(r1, M4B);
527LT1 = r0;
528LB1 = r1;
529    R0 = [ P2 ++ ];
530NOP;
531NOP;
532NOP;
533NOP;
534LC1 = p1;
535M4T:R2 += 3;
536    R3 += 4;
537    R5 += 6;
538    R6 += 7;
539    R4 += 5;
540M4B:R7 += 8;
541
542    // Loop 1
543LD32_LABEL(r0, M5T);
544LD32_LABEL(r1, M5B);
545LT1 = r0;
546LB1 = r1;
547    R0 = [ P2 ++ ];
548LC1 = [sp++];
549M5T:R2 += 3;
550    R3 += 4;
551    R5 += 6;
552    R6 += 7;
553    R4 += 5;
554M5B:R7 += 8;
555
556NOP;
557NOP;
558RTI;
559
560.dw 0xFFFF
561.dw 0xFFFF
562.dw 0xFFFF
563.dw 0xFFFF
564.dw 0xFFFF
565.dw 0xFFFF
566.dw 0xFFFF
567
568/////////////////////////////////////////////////////////////////////////////
569///////////////////////// USER CODE             /////////////////////////////
570/////////////////////////////////////////////////////////////////////////////
571
572
573 USER_CODE :
574
575NOP;
576NOP;
577NOP;
578NOP;
579dbg_pass;        // Call Endtest Macro
580
581/////////////////////////////////////////////////////////////////////////////
582///////////////////////// DATA MEMRORY          /////////////////////////////
583/////////////////////////////////////////////////////////////////////////////
584
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;
601
602// Define Kernal Stack
603.section MEM_0x00F00210,"aw"
604    .space (STACKSIZE);
605     KSTACK :
606
607    .space (STACKSIZE);
608     USTACK :
609
610/////////////////////////////////////////////////////////////////////////////
611///////////////////////// END OF TEST           /////////////////////////////
612/////////////////////////////////////////////////////////////////////////////
613