OSDN Git Service

sim: bfin: import testsuite
[pf3gnuchains/pf3gnuchains4x.git] / sim / testsuite / sim / bfin / se_brtarget_stall.S
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"
7 start
8
9 /////////////////////////////////////////////////////////////////////////////
10 ///////////////////////// Include Files         /////////////////////////////
11 /////////////////////////////////////////////////////////////////////////////
12
13 include(std.inc)
14 include(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
55 INIT_R_REGS(0);
56
57     // Initialize Pregs
58 INIT_P_REGS(0);
59
60     // Initialize ILBM Registers
61 INIT_I_REGS(0);
62 INIT_M_REGS(0);
63 INIT_L_REGS(0);
64 INIT_B_REGS(0);
65
66     // Initialize the Address of the Checkreg data segment
67     // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
68 CHECK_INIT(p5,   0x00BFFFFC);
69
70     // Setup User Stack
71 LD32_LABEL(sp, USTACK);
72 USP = SP;
73
74     // Setup Kernel Stack
75 LD32_LABEL(sp, KSTACK);
76
77     // Setup Frame Pointer
78 FP = SP;
79
80     // Setup Event Vector Table
81 LD32(p0, EVT);
82
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;
114
115     // Setup the EVT_OVERRIDE MMR
116     R0 = 0;
117 LD32(p0, EVT_OVERRIDE);
118     [ P0 ] = R0;
119
120     // Setup Interrupt Mask
121     R0 = -1;
122 LD32(p0, IMASK);
123     [ P0 ] = R0;
124
125 /////////////////////////////////////////////////////////////////////////////
126 //////////////////////// CPLB Setup     /////////////////////////////////////
127 /////////////////////////////////////////////////////////////////////////////
128
129     // Setup CPLB for Data Memory starting at 0x00F0_0000;
130 WR_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
140 WR_MMR_LABEL(DCPLB_ADDR0,     data, p0, r0);
141
142     // Enable CPLB's
143 WR_MMR(DMEM_CONTROL,    0x0000000f, p0, r0);    // ENDM    = 1
144                                                     // ENDCPLB = 1
145                                                     // DMC     = 11
146     // Sync it!
147 CSYNC;
148
149
150     // Return to Supervisor Code
151 RAISE 15;
152
153 LD32_LABEL(r0, USER_CODE);
154 RETI = R0;
155 RTI;
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
174 RTE;
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
190 RTN;
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
206 RTX;
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
222 RTI;
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
238 RTI;
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
254 RTI;
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
270 RTI;
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
286 RTI;
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
302 RTI;
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
318 RTI;
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
334 RTI;
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
350 RTI;
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
366 RTI;
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
382 NOP;
383     P0 = 0x0100 (Z);
384     P0.H = 0x00f0;
385 JUMP.S lab1; // Branch in EX1
386
387
388 NOP;
389 NOP;
390 NOP;
391 NOP;
392 NOP;
393 NOP;
394 NOP;
395 NOP;
396 NOP;
397 NOP;
398 NOP;
399 NOP;
400 NOP;
401 NOP;
402 NOP;
403 NOP;
404
405 lab1:
406     [ -- SP ] = ( R7:3 );
407     P0 = 0x0200 (Z);
408     P0.H = 0x00f0;
409 RTI;
410 JUMP.S 8; // Branch in EX1
411 NOP;
412 NOP;
413 NOP;
414     [ -- SP ] = ( R7:4 );
415
416 RTI;
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
433 NOP;
434 NOP;
435 NOP;
436 NOP;
437 dbg_pass;        // Call Endtest Macro
438
439 /////////////////////////////////////////////////////////////////////////////
440 ///////////////////////// DATA MEMRORY          /////////////////////////////
441 /////////////////////////////////////////////////////////////////////////////
442
443 data:
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 /////////////////////////////////////////////////////////////////////////////