xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/se_lsetup_kill.S (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/proj/frio/dv/testcases/seq/se_lsetup_kill/se_lsetup_kill.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 = 0xa (Z);
344
345NOP;
346NOP;
347RTI;
348
349.dw 0xFFFF
350.dw 0xFFFF
351.dw 0xFFFF
352.dw 0xFFFF
353.dw 0xFFFF
354.dw 0xFFFF
355.dw 0xFFFF
356
357/////////////////////////////////////////////////////////////////////////////
358///////////////////////// USER CODE             /////////////////////////////
359/////////////////////////////////////////////////////////////////////////////
360
361
362 USER_CODE :
363
364/////////////////////////////////////////////////////////////////////////////
365// Loop 0 (Kill Lsetup in WB)
366/////////////////////////////////////////////////////////////////////////////
367
368EXCPT 0x5;
369LSETUP ( L0T , L0T ) LC0 = P0;
370L0T:R0 += 5;
371
372EXCPT 0x5;
373LSETUP ( L1T , L1B ) LC0 = P0;
374L1T:R0 += 5;
375L1B:R1 += 4;
376
377EXCPT 0x5;
378LSETUP ( L2T , L2B ) LC0 = P0;
379L2T:R0 += 5;
380    R1 += 4;
381L2B:R2 += 3;
382
383EXCPT 0x5;
384LSETUP ( L3T , L3B ) LC0 = P0;
385L3T:R0 += 5;
386    R1 += 4;
387    R2 += 3;
388L3B:R3 += 2;
389
390EXCPT 0x5;
391LSETUP ( L4T , L4B ) LC0 = P0;
392L4T:R0 += 5;
393    R1 += 4;
394    R2 += 3;
395    R3 += 2;
396L4B:R4 += 1;
397
398/////////////////////////////////////////////////////////////////////////////
399// Loop 1 (Kill Lsetup in WB)
400/////////////////////////////////////////////////////////////////////////////
401
402EXCPT 0x5;
403LSETUP ( M0T , M0T ) LC1 = P0;
404M0T:R0 += 5;
405
406EXCPT 0x5;
407LSETUP ( M1T , M1B ) LC1 = P0;
408M1T:R0 += 5;
409M1B:R1 += 4;
410
411EXCPT 0x5;
412LSETUP ( M2T , M2B ) LC1 = P0;
413M2T:R0 += 5;
414    R1 += 4;
415M2B:R2 += 3;
416
417EXCPT 0x5;
418LSETUP ( M3T , M3B ) LC1 = P0;
419M3T:R0 += 5;
420    R1 += 4;
421    R2 += 3;
422M3B:R3 += 2;
423
424EXCPT 0x5;
425LSETUP ( M4T , M4B ) LC1 = P0;
426M4T:R0 += 5;
427    R1 += 4;
428    R2 += 3;
429    R3 += 2;
430M4B:R4 += 1;
431
432/////////////////////////////////////////////////////////////////////////////
433// Loop 0 (Kill during the last iteration at each pipe stage)
434/////////////////////////////////////////////////////////////////////////////
435
436LSETUP ( N0T , N0B ) LC0 = P1;
437NOP;
438N0T:R0 = LC0;
439CC = R0 == 1;
440IF !CC JUMP N0B (BP);
441    R0 += 1;
442    R1 += 2;
443EXCPT 0x5;
444N0B:R2 += 3;
445
446LSETUP ( N1T , N1B ) LC0 = P1;
447NOP;
448N1T:R0 = LC0;
449    R0 += 1;
450    R1 += 2;
451CC = R0 == 1;
452IF !CC JUMP N1B (BP);
453EXCPT 0x5;
454N1B:R2 += 3;
455
456LSETUP ( N2T , N2B ) LC0 = P1;
457NOP;
458N2T:R0 = LC0;
459CC = R0 == 1;
460IF !CC JUMP N2B (BP);
461    R0 += 1;
462    R1 += 2;
463EXCPT 0x5;
464    R3 += 4;
465N2B:R2 += 3;
466
467LSETUP ( N3T , N3B ) LC0 = P1;
468NOP;
469N3T:R0 = LC0;
470    R0 += 1;
471    R1 += 2;
472CC = R0 == 1;
473IF !CC JUMP N3B (BP);
474EXCPT 0x5;
475    R3 += 4;
476N3B:R2 += 3;
477
478LSETUP ( N4T , N4B ) LC0 = P1;
479NOP;
480N4T:R0 = LC0;
481CC = R0 == 1;
482IF !CC JUMP N4B (BP);
483    R0 += 1;
484    R1 += 2;
485EXCPT 0x5;
486    R3 += 4;
487    R4 += 5;
488N4B:R2 += 3;
489
490LSETUP ( N5T , N5B ) LC0 = P1;
491NOP;
492N5T:R0 = LC0;
493    R0 += 1;
494    R1 += 2;
495CC = R0 == 1;
496IF !CC JUMP N5B (BP);
497EXCPT 0x5;
498    R3 += 4;
499    R4 += 5;
500N5B:R2 += 3;
501
502LSETUP ( N6T , N6B ) LC0 = P1;
503NOP;
504N6T:R0 = LC0;
505CC = R0 == 1;
506IF !CC JUMP N6B (BP);
507    R0 += 1;
508    R1 += 2;
509EXCPT 0x5;
510    R3 += 4;
511    R4 += 5;
512    R5 += 6;
513N6B:R2 += 3;
514
515LSETUP ( N7T , N7B ) LC0 = P1;
516NOP;
517N7T:R0 = LC0;
518    R0 += 1;
519    R1 += 2;
520CC = R0 == 1;
521IF !CC JUMP N7B (BP);
522EXCPT 0x5;
523    R3 += 4;
524    R4 += 5;
525    R5 += 6;
526N7B:R2 += 3;
527
528LSETUP ( N8T , N8B ) LC0 = P1;
529NOP;
530N8T:R0 = LC0;
531CC = R0 == 1;
532IF !CC JUMP N8B (BP);
533    R0 += 1;
534    R1 += 2;
535EXCPT 0x5;
536    R3 += 4;
537    R4 += 5;
538    R5 += 6;
539    R6 += 7;
540N8B:R2 += 3;
541
542LSETUP ( N9T , N9B ) LC0 = P1;
543NOP;
544N9T:R0 = LC0;
545    R0 += 1;
546    R1 += 2;
547CC = R0 == 1;
548IF !CC JUMP N9B (BP);
549EXCPT 0x5;
550    R3 += 4;
551    R4 += 5;
552    R5 += 6;
553    R6 += 7;
554N9B:R2 += 3;
555
556LSETUP ( NAT , NAB ) LC0 = P1;
557NOP;
558NAT:
559	R0 = LC0;
560CC = R0 == 1;
561IF !CC JUMP NAB (BP);
562    R0 += 1;
563    R1 += 2;
564EXCPT 0x5;
565    R3 += 4;
566    R4 += 5;
567    R5 += 6;
568    R6 += 7;
569    R7 += 8;
570NAB:
571	R2 += 3;
572
573LSETUP ( NBT , NBB ) LC0 = P1;
574NOP;
575NBT:
576	R0 = LC0;
577    R0 += 1;
578    R1 += 2;
579CC = R0 == 1;
580IF !CC JUMP NBB (BP);
581EXCPT 0x5;
582    R3 += 4;
583    R4 += 5;
584    R5 += 6;
585    R6 += 7;
586    R7 += 8;
587NBB:
588	R2 += 3;
589
590
591/////////////////////////////////////////////////////////////////////////////
592// Loop 1 (Kill during the last iteration at each pipe stage)
593/////////////////////////////////////////////////////////////////////////////
594
595LSETUP ( O0T , O0B ) LC1 = P1;
596NOP;
597O0T:R0 = LC1;
598CC = R0 == 1;
599IF !CC JUMP O0B (BP);
600    R0 += 1;
601    R1 += 2;
602EXCPT 0x5;
603O0B:R2 += 3;
604
605LSETUP ( O1T , O1B ) LC1 = P1;
606NOP;
607O1T:R0 = LC1;
608    R0 += 1;
609    R1 += 2;
610CC = R0 == 1;
611IF !CC JUMP O1B (BP);
612EXCPT 0x5;
613O1B:R2 += 3;
614
615LSETUP ( O2T , O2B ) LC1 = P1;
616NOP;
617O2T:R0 = LC1;
618CC = R0 == 1;
619IF !CC JUMP O2B (BP);
620    R0 += 1;
621    R1 += 2;
622EXCPT 0x5;
623    R3 += 4;
624O2B:R2 += 3;
625
626LSETUP ( O3T , O3B ) LC1 = P1;
627NOP;
628O3T:R0 = LC1;
629    R0 += 1;
630    R1 += 2;
631CC = R0 == 1;
632IF !CC JUMP O3B (BP);
633EXCPT 0x5;
634    R3 += 4;
635O3B:R2 += 3;
636
637LSETUP ( O4T , O4B ) LC1 = P1;
638NOP;
639O4T:R0 = LC1;
640CC = R0 == 1;
641IF !CC JUMP O4B (BP);
642    R0 += 1;
643    R1 += 2;
644EXCPT 0x5;
645    R3 += 4;
646    R4 += 5;
647O4B:R2 += 3;
648
649LSETUP ( O5T , O5B ) LC1 = P1;
650NOP;
651O5T:R0 = LC1;
652    R0 += 1;
653    R1 += 2;
654CC = R0 == 1;
655IF !CC JUMP O5B (BP);
656EXCPT 0x5;
657    R3 += 4;
658    R4 += 5;
659O5B:R2 += 3;
660
661LSETUP ( O6T , O6B ) LC1 = P1;
662NOP;
663O6T:R0 = LC1;
664CC = R0 == 1;
665IF !CC JUMP O6B (BP);
666    R0 += 1;
667    R1 += 2;
668EXCPT 0x5;
669    R3 += 4;
670    R4 += 5;
671    R5 += 6;
672O6B:R2 += 3;
673
674LSETUP ( O7T , O7B ) LC1 = P1;
675NOP;
676O7T:R0 = LC1;
677    R0 += 1;
678    R1 += 2;
679CC = R0 == 1;
680IF !CC JUMP O7B (BP);
681EXCPT 0x5;
682    R3 += 4;
683    R4 += 5;
684    R5 += 6;
685O7B:R2 += 3;
686
687LSETUP ( O8T , O8B ) LC1 = P1;
688NOP;
689O8T:R0 = LC1;
690CC = R0 == 1;
691IF !CC JUMP O8B (BP);
692    R0 += 1;
693    R1 += 2;
694EXCPT 0x5;
695    R3 += 4;
696    R4 += 5;
697    R5 += 6;
698    R6 += 7;
699O8B:R2 += 3;
700
701LSETUP ( O9T , O9B ) LC1 = P1;
702NOP;
703O9T:R0 = LC1;
704    R0 += 1;
705    R1 += 2;
706CC = R0 == 1;
707IF !CC JUMP O9B (BP);
708EXCPT 0x5;
709    R3 += 4;
710    R4 += 5;
711    R5 += 6;
712    R6 += 7;
713O9B:R2 += 3;
714
715LSETUP ( OAT , OAB ) LC1 = P1;
716NOP;
717OAT:
718	R0 = LC1;
719CC = R0 == 1;
720IF !CC JUMP OAB (BP);
721    R0 += 1;
722    R1 += 2;
723EXCPT 0x5;
724    R3 += 4;
725    R4 += 5;
726    R5 += 6;
727    R6 += 7;
728    R7 += 8;
729OAB:
730	R2 += 3;
731
732LSETUP ( OBT , OBB ) LC1 = P1;
733NOP;
734OBT:
735	R0 = LC1;
736    R0 += 1;
737    R1 += 2;
738CC = R0 == 1;
739IF !CC JUMP OBB (BP);
740EXCPT 0x5;
741    R3 += 4;
742    R4 += 5;
743    R5 += 6;
744    R6 += 7;
745    R7 += 8;
746OBB:
747	R2 += 3;
748
749NOP;
750NOP;
751NOP;
752dbg_pass;        // Call Endtest Macro
753
754/////////////////////////////////////////////////////////////////////////////
755///////////////////////// DATA MEMRORY          /////////////////////////////
756/////////////////////////////////////////////////////////////////////////////
757
758.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
759.dd 0xdeadbeef;
760.section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
761.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
762.dd 0x02020202;
763.dd 0x03030303;
764.dd 0x04040404;
765
766// Define Kernal Stack
767.data
768    .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
769     KSTACK :
770
771    .space (STACKSIZE);
772     USTACK :
773
774/////////////////////////////////////////////////////////////////////////////
775///////////////////////// END OF TEST           /////////////////////////////
776/////////////////////////////////////////////////////////////////////////////
777