xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/se_brtarget_stall.S (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/proj/frio/dv/testcases/seq/se_brtarget_stall/se_brtarget_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        0x00000020
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/////////////////////////////////////////////////////////////////////////////
126//////////////////////// CPLB Setup     /////////////////////////////////////
127/////////////////////////////////////////////////////////////////////////////
128
129    // Setup CPLB for Data Memory starting at 0x00F0_0000;
130WR_MMR(DCPLB_DATA0,     0x0003109d, p0, r0);    // Page Size    = 4MB
131                                                    // CPLB_L1_CHLB = 1
132                                                    // CPLB_DIRTY   = 1
133                                                    // CPLB_USER_RD = 1
134                                                    // CPLB_USER_WR = 1
135                                                    // CPLB_SUPV_WR = 1
136                                                    // CPLB_VALID   = 1
137                                                    //
138
139    // Setup CPLB Address to point to 0x00F0_0000
140WR_MMR_LABEL(DCPLB_ADDR0,     data, p0, r0);
141
142    // Enable CPLB's
143WR_MMR(DMEM_CONTROL,    0x0000000f, p0, r0);    // ENDM    = 1
144                                                    // ENDCPLB = 1
145                                                    // DMC     = 11
146    // Sync it!
147CSYNC;
148
149
150    // Return to Supervisor Code
151RAISE 15;
152
153LD32_LABEL(r0, USER_CODE);
154RETI = R0;
155RTI;
156
157.dw 0xFFFF
158.dw 0xFFFF
159.dw 0xFFFF
160.dw 0xFFFF
161.dw 0xFFFF
162.dw 0xFFFF
163.dw 0xFFFF
164
165/////////////////////////////////////////////////////////////////////////////
166
167
168/////////////////////////////////////////////////////////////////////////////
169///////////////////////// EMU ISR               /////////////////////////////
170/////////////////////////////////////////////////////////////////////////////
171
172 EMU_ISR :
173
174RTE;
175
176.dw 0xFFFF
177.dw 0xFFFF
178.dw 0xFFFF
179.dw 0xFFFF
180.dw 0xFFFF
181.dw 0xFFFF
182.dw 0xFFFF
183
184/////////////////////////////////////////////////////////////////////////////
185///////////////////////// NMI ISR               /////////////////////////////
186/////////////////////////////////////////////////////////////////////////////
187
188 NMI_ISR :
189
190RTN;
191
192.dw 0xFFFF
193.dw 0xFFFF
194.dw 0xFFFF
195.dw 0xFFFF
196.dw 0xFFFF
197.dw 0xFFFF
198.dw 0xFFFF
199
200/////////////////////////////////////////////////////////////////////////////
201///////////////////////// EXC ISR               /////////////////////////////
202/////////////////////////////////////////////////////////////////////////////
203
204 EXC_ISR :
205
206RTX;
207
208.dw 0xFFFF
209.dw 0xFFFF
210.dw 0xFFFF
211.dw 0xFFFF
212.dw 0xFFFF
213.dw 0xFFFF
214.dw 0xFFFF
215
216/////////////////////////////////////////////////////////////////////////////
217///////////////////////// HWE ISR               /////////////////////////////
218/////////////////////////////////////////////////////////////////////////////
219
220 HWE_ISR :
221
222RTI;
223
224.dw 0xFFFF
225.dw 0xFFFF
226.dw 0xFFFF
227.dw 0xFFFF
228.dw 0xFFFF
229.dw 0xFFFF
230.dw 0xFFFF
231
232/////////////////////////////////////////////////////////////////////////////
233///////////////////////// TMR ISR               /////////////////////////////
234/////////////////////////////////////////////////////////////////////////////
235
236 TMR_ISR :
237
238RTI;
239
240.dw 0xFFFF
241.dw 0xFFFF
242.dw 0xFFFF
243.dw 0xFFFF
244.dw 0xFFFF
245.dw 0xFFFF
246.dw 0xFFFF
247
248/////////////////////////////////////////////////////////////////////////////
249///////////////////////// IGV7 ISR              /////////////////////////////
250/////////////////////////////////////////////////////////////////////////////
251
252 IGV7_ISR :
253
254RTI;
255
256.dw 0xFFFF
257.dw 0xFFFF
258.dw 0xFFFF
259.dw 0xFFFF
260.dw 0xFFFF
261.dw 0xFFFF
262.dw 0xFFFF
263
264/////////////////////////////////////////////////////////////////////////////
265///////////////////////// IGV8 ISR              /////////////////////////////
266/////////////////////////////////////////////////////////////////////////////
267
268 IGV8_ISR :
269
270RTI;
271
272.dw 0xFFFF
273.dw 0xFFFF
274.dw 0xFFFF
275.dw 0xFFFF
276.dw 0xFFFF
277.dw 0xFFFF
278.dw 0xFFFF
279
280/////////////////////////////////////////////////////////////////////////////
281///////////////////////// IGV9 ISR              /////////////////////////////
282/////////////////////////////////////////////////////////////////////////////
283
284 IGV9_ISR :
285
286RTI;
287
288.dw 0xFFFF
289.dw 0xFFFF
290.dw 0xFFFF
291.dw 0xFFFF
292.dw 0xFFFF
293.dw 0xFFFF
294.dw 0xFFFF
295
296/////////////////////////////////////////////////////////////////////////////
297///////////////////////// IGV10 ISR             /////////////////////////////
298/////////////////////////////////////////////////////////////////////////////
299
300 IGV10_ISR :
301
302RTI;
303
304.dw 0xFFFF
305.dw 0xFFFF
306.dw 0xFFFF
307.dw 0xFFFF
308.dw 0xFFFF
309.dw 0xFFFF
310.dw 0xFFFF
311
312/////////////////////////////////////////////////////////////////////////////
313///////////////////////// IGV11 ISR             /////////////////////////////
314/////////////////////////////////////////////////////////////////////////////
315
316 IGV11_ISR :
317
318RTI;
319
320.dw 0xFFFF
321.dw 0xFFFF
322.dw 0xFFFF
323.dw 0xFFFF
324.dw 0xFFFF
325.dw 0xFFFF
326.dw 0xFFFF
327
328/////////////////////////////////////////////////////////////////////////////
329///////////////////////// IGV12 ISR             /////////////////////////////
330/////////////////////////////////////////////////////////////////////////////
331
332 IGV12_ISR :
333
334RTI;
335
336.dw 0xFFFF
337.dw 0xFFFF
338.dw 0xFFFF
339.dw 0xFFFF
340.dw 0xFFFF
341.dw 0xFFFF
342.dw 0xFFFF
343
344/////////////////////////////////////////////////////////////////////////////
345///////////////////////// IGV13 ISR             /////////////////////////////
346/////////////////////////////////////////////////////////////////////////////
347
348 IGV13_ISR :
349
350RTI;
351
352.dw 0xFFFF
353.dw 0xFFFF
354.dw 0xFFFF
355.dw 0xFFFF
356.dw 0xFFFF
357.dw 0xFFFF
358.dw 0xFFFF
359
360/////////////////////////////////////////////////////////////////////////////
361///////////////////////// IGV14 ISR             /////////////////////////////
362/////////////////////////////////////////////////////////////////////////////
363
364 IGV14_ISR :
365
366RTI;
367
368.dw 0xFFFF
369.dw 0xFFFF
370.dw 0xFFFF
371.dw 0xFFFF
372.dw 0xFFFF
373.dw 0xFFFF
374.dw 0xFFFF
375
376/////////////////////////////////////////////////////////////////////////////
377///////////////////////// IGV15 ISR             /////////////////////////////
378/////////////////////////////////////////////////////////////////////////////
379
380 IGV15_ISR :
381
382NOP;
383    P0 = 0x0100 (Z);
384    P0.H = 0x00f0;
385JUMP.S lab1; // Branch in EX1
386
387
388NOP;
389NOP;
390NOP;
391NOP;
392NOP;
393NOP;
394NOP;
395NOP;
396NOP;
397NOP;
398NOP;
399NOP;
400NOP;
401NOP;
402NOP;
403NOP;
404
405lab1:
406    [ -- SP ] = ( R7:3 );
407    P0 = 0x0200 (Z);
408    P0.H = 0x00f0;
409RTI;
410JUMP.S 8; // Branch in EX1
411NOP;
412NOP;
413NOP;
414    [ -- SP ] = ( R7:4 );
415
416RTI;
417
418.dw 0xFFFF
419.dw 0xFFFF
420.dw 0xFFFF
421.dw 0xFFFF
422.dw 0xFFFF
423.dw 0xFFFF
424.dw 0xFFFF
425
426/////////////////////////////////////////////////////////////////////////////
427///////////////////////// USER CODE             /////////////////////////////
428/////////////////////////////////////////////////////////////////////////////
429
430
431 USER_CODE :
432
433NOP;
434NOP;
435NOP;
436NOP;
437dbg_pass;        // Call Endtest Macro
438
439/////////////////////////////////////////////////////////////////////////////
440///////////////////////// DATA MEMRORY          /////////////////////////////
441/////////////////////////////////////////////////////////////////////////////
442
443data:
444.section MEM_0x00F00100,"aw"
445.dd 0xdeadbeef;
446.section MEM_0x00F00200,"aw"
447.dd 0x01010101;
448.dd 0x02020202;
449.dd 0x03030303;
450.dd 0x04040404;
451
452// Define Kernal Stack
453.data
454    .space (STACKSIZE);
455     KSTACK :
456
457    .space (STACKSIZE);
458     USTACK :
459
460/////////////////////////////////////////////////////////////////////////////
461///////////////////////// END OF TEST           /////////////////////////////
462/////////////////////////////////////////////////////////////////////////////
463