OSDN Git Service

add cortex-a9 base
[hos/hos-v4a.git] / kernel / source / arch / proc / arm / arm_v7a / gcc / kswi_ctx.S
1 /** 
2  *  Hyper Operating System V4 Advance
3  *
4  * Copyright (C) 1998-2014 by Project HOS
5  * http://sourceforge.jp/projects/hos/
6  */
7
8
9 #include "arm_v7a.inc"
10
11
12                                 .text
13                                 .align  2
14
15 /************************************************
16   実行コンテキストの切替
17   void _kernel_swi_ctx(
18                         _KERNEL_T_CTXCB *pk_ctxinf_nxt, r0 : 現在のコンテキストの保存先
19                         _KERNEL_T_CTXCB *pk_ctxinf_now) r1 : 切り替えるコンテキスト
20  ************************************************/
21                                 .global _kernel_swi_ctx
22 _kernel_swi_ctx:
23                                 stmfd   sp!, {r4-r11, lr}                       /* レジスタ保存 */
24                                 str             sp, [r1]                                        /* スタックポインタ保存 */
25                 /* --- そのまま _kernel_sta_ctx に続ける */
26
27
28 /************************************************
29   実行コンテキストの開始
30   void _kernel_sta_ctx(
31                         _KERNEL_T_CTXCB *pk_ctxcb)              r0: 実行を開始するコンテキスト
32  ************************************************/
33                                 .global _kernel_sta_ctx
34 _kernel_sta_ctx:
35                                 ldr             sp, [r0]                                        /* スタックポインタ復帰 */
36                                 ldmfd   sp!, {r4-r11, pc}                       /* レジスタ復帰 */
37
38                                 .end
39
40
41 ; end of file
42