* hppa.h (pa_opcodes): Use "cX" completer instead of "cx" in fstqx
[external/binutils.git] / sim / testsuite / sim / bfin / se_popkill.S
1 //Original:/proj/frio/dv/testcases/seq/se_popkill/se_popkill.dsp
2 // Description: Kill pops to sysregs in WB
3 # mach: bfin
4 # sim: --environment operating
5
6 #include "test.h"
7 .include "testutils.inc"
8 start
9
10 /////////////////////////////////////////////////////////////////////////////
11 ///////////////////////// Include Files         /////////////////////////////
12 /////////////////////////////////////////////////////////////////////////////
13
14 include(std.inc)
15 include(selfcheck.inc)
16 include(symtable.inc)
17
18 /////////////////////////////////////////////////////////////////////////////
19 ///////////////////////// Defines               /////////////////////////////
20 /////////////////////////////////////////////////////////////////////////////
21
22 #ifndef USER_CODE_SPACE
23 #define USER_CODE_SPACE  CODE_ADDR_RST_1   //
24 #endif
25 #ifndef STACKSIZE
26 #define STACKSIZE        0x00000010
27 #endif
28 #ifndef ITABLE
29 #define ITABLE  CODE_ADDR_RST_2   //
30 #endif
31 #ifndef EVT
32 #define EVT              0xFFE02000
33 #endif
34 #ifndef EVT_OVERRIDE
35 #define EVT_OVERRIDE     0xFFE02100
36 #endif
37 #ifndef IMASK
38 #define IMASK            0xFFE02104
39 #endif
40 #ifndef DMEM_CONTROL
41 #define DMEM_CONTROL     0xFFE00004
42 #endif
43 #ifndef DCPLB_ADDR0
44 #define DCPLB_ADDR0      0xFFE00100
45 #endif
46 #ifndef DCPLB_DATA0
47 #define DCPLB_DATA0      0xFFE00200
48 #endif
49
50 /////////////////////////////////////////////////////////////////////////////
51 ///////////////////////// RESET ISR             /////////////////////////////
52 /////////////////////////////////////////////////////////////////////////////
53
54  RST_ISR :
55
56     // Initialize Dregs
57 INIT_R_REGS(0);
58
59     // Initialize Pregs
60 INIT_P_REGS(0);
61
62     // Initialize ILBM Registers
63 INIT_I_REGS(0);
64 INIT_M_REGS(0);
65 INIT_L_REGS(0);
66 INIT_B_REGS(0);
67
68     // Initialize the Address of the Checkreg data segment
69     // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
70 CHECK_INIT_DEF(p5); //CHECK_INIT(p5,   0x00BFFFFC);
71
72     // Setup User Stack
73 LD32_LABEL(sp, USTACK);
74 USP = SP;
75
76     // Setup Kernel Stack
77 LD32_LABEL(sp, KSTACK);
78
79     // Setup Frame Pointer
80 FP = SP;
81
82     // Setup Event Vector Table
83 LD32(p0, EVT);
84
85 LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
86     [ P0 ++ ] = R0;
87 LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
88     [ P0 ++ ] = R0;
89 LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
90     [ P0 ++ ] = R0;
91 LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
92     [ P0 ++ ] = R0;
93     [ P0 ++ ] = R0;                // IVT4 not used
94 LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
95     [ P0 ++ ] = R0;
96 LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
97     [ P0 ++ ] = R0;
98 LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
99     [ P0 ++ ] = R0;
100 LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
101     [ P0 ++ ] = R0;
102 LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
103     [ P0 ++ ] = R0;
104 LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
105     [ P0 ++ ] = R0;
106 LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
107     [ P0 ++ ] = R0;
108 LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
109     [ P0 ++ ] = R0;
110 LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
111     [ P0 ++ ] = R0;
112 LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
113     [ P0 ++ ] = R0;
114 LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
115     [ P0 ++ ] = R0;
116
117     // Setup the EVT_OVERRIDE MMR
118     R0 = 0;
119 LD32(p0, EVT_OVERRIDE);
120     [ P0 ] = R0;
121
122     // Setup Interrupt Mask
123     R0 = -1;
124 LD32(p0, IMASK);
125     [ P0 ] = R0;
126
127 /////////////////////////////////////////////////////////////////////////////
128 //////////////////////// CPLB Setup     /////////////////////////////////////
129 /////////////////////////////////////////////////////////////////////////////
130
131     // Setup CPLB for Data Memory starting at 0x00F0_0000;
132 WR_MMR(DCPLB_DATA0,     DATA_ADDR_1, p0, r0);
133    //WR_MMR(DCPLB_DATA0,     0x00031005, p0, r0);    // Page Size    = 4MB
134                                                     // CPLB_L1_CHLB = 1
135                                                     // CPLB_USER_RD = 1
136                                                     // CPLB_VALID   = 1
137                                                     //
138
139     // Setup CPLB Address to point to 0x00F0_0000
140 WR_MMR(DCPLB_ADDR0,     DATA_ADDR_2, p0, r0);
141     //WR_MMR(DCPLB_ADDR0,     0x00F00000, p0, r0);
142
143     // Enable CPLB's
144 WR_MMR(DMEM_CONTROL,    DATA_ADDR_3, p0, r0);
145     //WR_MMR(DMEM_CONTROL,    0x0000000f, p0, r0);    // ENDM    = 1
146                                                     // ENDCPLB = 1
147                                                     // DMC     = 11
148     // Sync it!
149 CSYNC;
150
151
152     // Return to Supervisor Code
153 RAISE 15;
154
155 LD32_LABEL(r0, USER_CODE);
156 RETI = R0;
157 RTI;
158
159 .dw 0xFFFF
160 .dw 0xFFFF
161 .dw 0xFFFF
162 .dw 0xFFFF
163 .dw 0xFFFF
164 .dw 0xFFFF
165 .dw 0xFFFF
166
167 /////////////////////////////////////////////////////////////////////////////
168
169
170 /////////////////////////////////////////////////////////////////////////////
171 ///////////////////////// EMU ISR               /////////////////////////////
172 /////////////////////////////////////////////////////////////////////////////
173
174  EMU_ISR :
175
176 RTE;
177
178 .dw 0xFFFF
179 .dw 0xFFFF
180 .dw 0xFFFF
181 .dw 0xFFFF
182 .dw 0xFFFF
183 .dw 0xFFFF
184 .dw 0xFFFF
185
186 /////////////////////////////////////////////////////////////////////////////
187 ///////////////////////// NMI ISR               /////////////////////////////
188 /////////////////////////////////////////////////////////////////////////////
189
190  NMI_ISR :
191
192 RTN;
193
194 .dw 0xFFFF
195 .dw 0xFFFF
196 .dw 0xFFFF
197 .dw 0xFFFF
198 .dw 0xFFFF
199 .dw 0xFFFF
200 .dw 0xFFFF
201
202 /////////////////////////////////////////////////////////////////////////////
203 ///////////////////////// EXC ISR               /////////////////////////////
204 /////////////////////////////////////////////////////////////////////////////
205
206  EXC_ISR :
207
208     R3 = SEQSTAT;
209     R4 = RETX;
210     R4 += 8;
211 RETX = R4;
212 RTX;
213
214 .dw 0xFFFF
215 .dw 0xFFFF
216 .dw 0xFFFF
217 .dw 0xFFFF
218 .dw 0xFFFF
219 .dw 0xFFFF
220 .dw 0xFFFF
221
222 /////////////////////////////////////////////////////////////////////////////
223 ///////////////////////// HWE ISR               /////////////////////////////
224 /////////////////////////////////////////////////////////////////////////////
225
226  HWE_ISR :
227
228 RTI;
229
230 .dw 0xFFFF
231 .dw 0xFFFF
232 .dw 0xFFFF
233 .dw 0xFFFF
234 .dw 0xFFFF
235 .dw 0xFFFF
236 .dw 0xFFFF
237
238 /////////////////////////////////////////////////////////////////////////////
239 ///////////////////////// TMR ISR               /////////////////////////////
240 /////////////////////////////////////////////////////////////////////////////
241
242  TMR_ISR :
243
244 RTI;
245
246 .dw 0xFFFF
247 .dw 0xFFFF
248 .dw 0xFFFF
249 .dw 0xFFFF
250 .dw 0xFFFF
251 .dw 0xFFFF
252 .dw 0xFFFF
253
254 /////////////////////////////////////////////////////////////////////////////
255 ///////////////////////// IGV7 ISR              /////////////////////////////
256 /////////////////////////////////////////////////////////////////////////////
257
258  IGV7_ISR :
259
260 RTI;
261
262 .dw 0xFFFF
263 .dw 0xFFFF
264 .dw 0xFFFF
265 .dw 0xFFFF
266 .dw 0xFFFF
267 .dw 0xFFFF
268 .dw 0xFFFF
269
270 /////////////////////////////////////////////////////////////////////////////
271 ///////////////////////// IGV8 ISR              /////////////////////////////
272 /////////////////////////////////////////////////////////////////////////////
273
274  IGV8_ISR :
275
276 RTI;
277
278 .dw 0xFFFF
279 .dw 0xFFFF
280 .dw 0xFFFF
281 .dw 0xFFFF
282 .dw 0xFFFF
283 .dw 0xFFFF
284 .dw 0xFFFF
285
286 /////////////////////////////////////////////////////////////////////////////
287 ///////////////////////// IGV9 ISR              /////////////////////////////
288 /////////////////////////////////////////////////////////////////////////////
289
290  IGV9_ISR :
291
292 RTI;
293
294 .dw 0xFFFF
295 .dw 0xFFFF
296 .dw 0xFFFF
297 .dw 0xFFFF
298 .dw 0xFFFF
299 .dw 0xFFFF
300 .dw 0xFFFF
301
302 /////////////////////////////////////////////////////////////////////////////
303 ///////////////////////// IGV10 ISR             /////////////////////////////
304 /////////////////////////////////////////////////////////////////////////////
305
306  IGV10_ISR :
307
308 RTI;
309
310 .dw 0xFFFF
311 .dw 0xFFFF
312 .dw 0xFFFF
313 .dw 0xFFFF
314 .dw 0xFFFF
315 .dw 0xFFFF
316 .dw 0xFFFF
317
318 /////////////////////////////////////////////////////////////////////////////
319 ///////////////////////// IGV11 ISR             /////////////////////////////
320 /////////////////////////////////////////////////////////////////////////////
321
322  IGV11_ISR :
323
324 RTI;
325
326 .dw 0xFFFF
327 .dw 0xFFFF
328 .dw 0xFFFF
329 .dw 0xFFFF
330 .dw 0xFFFF
331 .dw 0xFFFF
332 .dw 0xFFFF
333
334 /////////////////////////////////////////////////////////////////////////////
335 ///////////////////////// IGV12 ISR             /////////////////////////////
336 /////////////////////////////////////////////////////////////////////////////
337
338  IGV12_ISR :
339
340 RTI;
341
342 .dw 0xFFFF
343 .dw 0xFFFF
344 .dw 0xFFFF
345 .dw 0xFFFF
346 .dw 0xFFFF
347 .dw 0xFFFF
348 .dw 0xFFFF
349
350 /////////////////////////////////////////////////////////////////////////////
351 ///////////////////////// IGV13 ISR             /////////////////////////////
352 /////////////////////////////////////////////////////////////////////////////
353
354  IGV13_ISR :
355
356 RTI;
357
358 .dw 0xFFFF
359 .dw 0xFFFF
360 .dw 0xFFFF
361 .dw 0xFFFF
362 .dw 0xFFFF
363 .dw 0xFFFF
364 .dw 0xFFFF
365
366 /////////////////////////////////////////////////////////////////////////////
367 ///////////////////////// IGV14 ISR             /////////////////////////////
368 /////////////////////////////////////////////////////////////////////////////
369
370  IGV14_ISR :
371
372 RTI;
373
374 .dw 0xFFFF
375 .dw 0xFFFF
376 .dw 0xFFFF
377 .dw 0xFFFF
378 .dw 0xFFFF
379 .dw 0xFFFF
380 .dw 0xFFFF
381
382 /////////////////////////////////////////////////////////////////////////////
383 ///////////////////////// IGV15 ISR             /////////////////////////////
384 /////////////////////////////////////////////////////////////////////////////
385
386  IGV15_ISR :
387
388 NOP;
389 ASTAT = R7;
390 RETS = R7;
391 LC0 = R7;
392 LB0 = R7;
393 LT0 = R7;
394 LC1 = R7;
395 LB1 = R7;
396 LT1 = R7;
397 CYCLES = R7;
398 CYCLES2 = R7;
399 SYSCFG = R7;
400 RETN = R7;
401 RETX = R7;
402 RETE = R7;
403 NOP;
404 NOP;
405 NOP;
406 NOP;
407 NOP;
408 NOP;
409 NOP;
410 NOP;
411 EXCPT 1;
412 ASTAT = [ SP ++ ];
413 NOP;
414 NOP;
415 NOP;
416 NOP;
417 EXCPT 2;
418 RETS = [ SP ++ ];
419 NOP;
420 NOP;
421 NOP;
422 NOP;
423 EXCPT 3;
424 LC0 = [ SP ++ ];
425 NOP;
426 NOP;
427 NOP;
428 NOP;
429 EXCPT 4;
430 LT0 = [ SP ++ ];
431 NOP;
432 NOP;
433 NOP;
434 NOP;
435 EXCPT 5;
436 LB0 = [ SP ++ ];
437 NOP;
438 NOP;
439 NOP;
440 NOP;
441 EXCPT 6;
442 LC1 = [ SP ++ ];
443 NOP;
444 NOP;
445 NOP;
446 NOP;
447 EXCPT 7;
448 LB1 = [ SP ++ ];
449 NOP;
450 NOP;
451 NOP;
452 NOP;
453 EXCPT 8;
454 LT1 = [ SP ++ ];
455 NOP;
456 NOP;
457 NOP;
458 NOP;
459 EXCPT 9;
460 CYCLES = [ SP ++ ];
461 NOP;
462 NOP;
463 NOP;
464 NOP;
465 EXCPT 10;
466 CYCLES2 = [ SP ++ ];
467 NOP;
468 NOP;
469 NOP;
470 NOP;
471 EXCPT 11;
472 SYSCFG = [ SP ++ ];
473 NOP;
474 NOP;
475 NOP;
476 NOP;
477 EXCPT 12;
478 RETI = [ SP ++ ];
479 NOP;
480 NOP;
481 NOP;
482 NOP;
483 EXCPT 13;
484 RETX = [ SP ++ ];
485 NOP;
486 NOP;
487 NOP;
488 NOP;
489 EXCPT 14;
490 RETN = [ SP ++ ];
491 NOP;
492 NOP;
493 NOP;
494 NOP;
495 EXCPT 15;
496 RETE = [ SP ++ ];
497 NOP;
498 NOP;
499 NOP;
500 NOP;
501
502 NOP;
503 NOP;
504 NOP;
505 NOP;
506
507
508 RTI;
509
510 .dw 0xFFFF
511 .dw 0xFFFF
512 .dw 0xFFFF
513 .dw 0xFFFF
514 .dw 0xFFFF
515 .dw 0xFFFF
516 .dw 0xFFFF
517
518 /////////////////////////////////////////////////////////////////////////////
519 ///////////////////////// USER CODE             /////////////////////////////
520 /////////////////////////////////////////////////////////////////////////////
521
522
523  USER_CODE :
524
525 NOP;
526 NOP;
527 NOP;
528 NOP;
529 dbg_pass;        // Call Endtest Macro
530
531 /////////////////////////////////////////////////////////////////////////////
532 ///////////////////////// DATA MEMRORY          /////////////////////////////
533 /////////////////////////////////////////////////////////////////////////////
534
535 // Define Kernal Stack
536 .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
537     .space (STACKSIZE);
538      KSTACK :
539
540     .space (STACKSIZE);
541      USTACK :
542
543 .section MEM_DATA_ADDR_2 //.data 0x00F00100,"aw"
544 .dd 0xdeadbeef;
545 .dd 0xdeadbeef;
546 .dd 0xdeadbeef;
547 .dd 0xdeadbeef;
548 .dd 0xdeadbeef;
549 .dd 0xdeadbeef;
550 .dd 0xdeadbeef;
551 .dd 0xdeadbeef;
552 .dd 0xdeadbeef;
553 .dd 0xdeadbeef;
554 .dd 0xdeadbeef;
555 .dd 0xdeadbeef;
556 .dd 0xdeadbeef;
557 .dd 0xdeadbeef;
558 .dd 0xdeadbeef;
559 .dd 0xdeadbeef;
560 .dd 0xdeadbeef;
561 .dd 0xdeadbeef;
562 .dd 0xdeadbeef;
563
564 /////////////////////////////////////////////////////////////////////////////
565 ///////////////////////// END OF TEST           /////////////////////////////
566 /////////////////////////////////////////////////////////////////////////////