OSDN Git Service

add sh2a-fpu
[hos/hos-v4a.git] / kernel / source / arch / proc / sh / sh2a-fpu / gcc / kcre_ctx.S
1 /* ------------------------------------------------------------------------ */
2 /* Hyper Operating System V4 Advance                                        */
3 /*                                                                          */
4 /*                                  Copyright (C) 1998-2006 by Project HOS  */
5 /*                                  http://sourceforge.jp/projects/hos/     */
6 /* ------------------------------------------------------------------------ */
7
8
9                                 .text
10
11
12 /************************************************
13   実行コンテキストエントリーアドレス
14  ************************************************/
15                                 .align  2
16 ctx_entry:              
17                                 mov             r9, r4                                  /* 実行時パラメータ1を設定 */
18                                 jmp             @r8                                             /* 実行開始アドレスに分岐 */
19                                 mov             r10, r5                                 /* 実行時パラメータ2を設定(遅延スロット) */
20
21
22 /************************************************
23   実行コンテキストの作成
24   _kernel_cre_ctx(
25                 _KERNEL_T_CTXCB *pk_ctxcb,      作成するコンテキスト [r4]
26                 VP              isp,            初期スタックポインタ [r5]
27                 FP              entry,          実行アドレス         [r6]
28                 VP_INT          par1,           実行時パラメータ1    [r7]
29                 VP_INT          par2)           実行時パラメータ2    [@(0, r15)]
30  ************************************************/
31                                 .align  2
32                                 .global __kernel_cre_ctx
33 __kernel_cre_ctx:
34                                 add     #-40, r5                                /* スタックに領域を確保 */
35                                 mov.l   r6, @(36, r5)                   /* 実行アドレスを      r8 の領域に設定 */
36                                 mov.l   r7, @(32, r5)                   /* 実行時パラメータ1を r9 の領域に設定 */
37                                 mov.l   @(0, r15), r0
38                                 mov.l   r0, @(28, r5)                   /* 実行時パラメータ2を r10 の領域に設定 */
39                                 mov.l   addr_ctx_entry, r0
40                                 mov.l   r0, @(0, r5)                    /* 実行エントリポイントを pr の領域に設定 */
41                                 rts
42                                 mov.l   r5, @(0, r4)                    /* スタックポインタを保存(遅延スロット) */
43
44                                 .align  2
45 addr_ctx_entry:
46                                 .long   ctx_entry
47
48
49
50
51                                 .end
52
53
54 /* end of file */