OSDN Git Service

debug MicroBlaze
[hos/hos-v4a.git] / kernel / source / arch / proc / mb / mb_v8 / gcc / kint_hdr.S
1 /* ------------------------------------------------------------------------ */
2 /* Hyper Operating System V4 Advance                                        */
3 /*                                                                          */
4 /*                                  Copyright (C) 1998-2011 by Project HOS  */
5 /*                                  http://sourceforge.jp/projects/hos/     */
6 /* ------------------------------------------------------------------------ */
7
8                                 .global _kernel_int_hdr
9                                 .global _kernel_ictxcb
10                                 .global _kernel_sta_inh
11                                 .global _kernel_exe_inh
12                                 .global _kernel_end_inh
13
14
15                                 .text
16
17
18 #define ICTXCB_ISP              0
19
20
21 /************************************************
22   割込みハンドラ
23  ************************************************/
24                                 .align  2
25 _kernel_int_hdr:
26                 /* ---- レジスタ保存 */
27                                 addik   r1, r1, -80
28                                 swi             r14, r1, 0
29                                 swi             r3, r1, 28
30                                 swi             r4, r1, 32
31                                 swi             r5, r1, 36
32                                 swi             r6, r1, 40
33                                 swi             r7, r1, 44
34                                 swi             r8, r1, 48
35                                 swi             r9, r1, 52
36                                 swi             r10, r1, 56
37                                 swi             r11, r1, 60
38                                 swi             r12, r1, 64
39                                 swi             r15, r1, 68
40                                 swi             r18, r1, 72
41                                 mfs             r3, rmsr
42                                 swi             r3, r1, 76
43                                 
44                 /* ---- スタック入れ替え */
45                                 addik   r3, r1, 0
46                                 addik   r4, r0, _kernel_ictxcb
47                                 lwi             r1, r4, ICTXCB_ISP
48                                 
49                 /* ---- 割り込み開始処理呼び出し */
50                                 addik   r1, r1, -32
51                                 brlid   r15, _kernel_sta_inh
52                                 swi             r3, r1, 28                                      /* 旧スタックポインタ保存 */
53                                 
54                 /* ---- 割り込み実行処理呼び出し */
55                                 brlid   r15, _kernel_exe_inh
56                                 addik   r5, r0, 0
57                                 
58                                 
59                 /* ---- 割込み終了処理呼び出し */
60                                 brlid   r15, _kernel_end_inh
61                                 lwi             r1, r1, 28                                      /* スタックの復帰 */
62                                 
63                 /* ---- レジスタ復帰 */
64                                 lwi             r3, r1, 76
65                                 mts             rmsr, r3
66                                 lwi             r14, r1, 0
67                                 lwi             r3, r1, 28
68                                 lwi             r4, r1, 32
69                                 lwi             r5, r1, 36
70                                 lwi             r6, r1, 40
71                                 lwi             r7, r1, 44
72                                 lwi             r8, r1, 48
73                                 lwi             r9, r1, 52
74                                 lwi             r10, r1, 56
75                                 lwi             r11, r1, 60
76                                 lwi             r12, r1, 64
77                                 lwi             r15, r1, 68
78                                 lwi             r18, r1, 72
79                                 rtid    r14, 0
80                                 addik   r1, r1, 80
81
82
83 /* end of file */