source: atk2-sc3-1.4.0-ntisr/arch/v850_ghs/prc_tool.S@ 172

Last change on this file since 172 was 172, checked in by ertl-ishikawa, 8 years ago

ATK2-SC3 1.4.0 RH850依存部 非信頼C2ISR対応を追加

  • Property svn:executable set to *
File size: 5.6 KB
Line 
1/*
2 * TOPPERS ATK2
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 * Automotive Kernel Version 2
5 *
6 * Copyright (C) 2015 by Center for Embedded Computing Systems
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
8 *
9 * 上記著作権者
10は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12 * 変・再é…
13å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
16 * スコード中に含まれていること.
17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
18 * 用できる形で再é…
19å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
20å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
21 * 者
22マニュアルなど)に,上記の著作権表示,この利用条件および下記
23 * の無保証規定を掲載すること.
24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
25 * 用できない形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
27 * と.
28 * (a) 再é…
29å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
30マニュアルなど)に,上記の著
31 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
32 * (b) 再é…
33å¸ƒã®å½¢æ…
34‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
35 * 報告すること.
36 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37 * 害からも,上記著作権者
38およびTOPPERSプロジェクトをå…
39è²¬ã™ã‚‹ã“と.
40 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
41 * 由に基づく請求からも,上記著作権者
42およびTOPPERSプロジェクトを
43 * å…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
49 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
50 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
51 * の責任を負わない.
52 *
53 * $Id: prc_tool.S 183 2015-06-24 08:19:10Z t_ishikawa $
54 */
55
56/*
57 * V850用cal_svc実装
58
59 * GHSにおけるインラインアセンブラでは,破壊レジスタの指定が
60 * 保証されないため,直接アセンブリで記述する
61 */
62#include <v850asm.inc>
63#include "offset.h"
64
65#ifdef USE_ASMCONFIG_INC
66#include "asm_config.inc"
67#endif /* USE_ASMCONFIG_INC */
68
69 .section .text_kernel
70 .align 4
71/*
72 * メモリ再読込が必
73要なことをコンパイラに伝えるためのダミー関数
74 */
75 .globl _v850_memory_changed
76 /*
77 * void v850_memory_changed(void)
78 */
79FLABEL(_v850_memory_changed)
80 jmp lp
81 nop
82
83 .globl _v850_sync_memory
84 /*
85 * void v850_sync_memory(void)
86 */
87FLABEL(_v850_sync_memory)
88 syncm
89 jmp lp
90 nop
91
92/*
93 * サービスコールの出å…
94¥å£
95 * r10 : 返り値
96 * r11:関数コード
97 * r6 - r9 : 引数(4つまで)
98 * スクラッチレジスタ保存(関数呼出しによりここでは保存済み)
99 * lp保存
100 */
101 .section .text_shared
102 .align 4
103 .globl _cal_svc_0m
104 /*
105 * extern int cal_svc_0m(int fncd)
106 * __attribute__((section(".text_shared")));
107 */
108FLABEL(_cal_svc_0m)
109 mov r6, r11
110 pushsp ep-lp
111 syscall 1
112 nop
113 popsp ep-lp
114 jmp [lp]
115 nop
116
117 .globl _cal_svc_1m
118 /*
119 * extern int cal_svc_1m(int par1, int fncd)
120 * __attribute__((section(".text_shared")));
121 */
122FLABEL(_cal_svc_1m)
123 mov r7, r11
124 pushsp ep-lp
125 syscall 1
126 nop
127 popsp ep-lp
128 jmp [lp]
129 nop
130
131 .globl _cal_svc_2m
132 /*
133 * extern int cal_svc_2m(int par1, int par2, int fncd)
134 * __attribute__((section(".text_shared")));
135 */
136FLABEL(_cal_svc_2m)
137 mov r8, r11
138 pushsp ep-lp
139 syscall 1
140 nop
141 popsp ep-lp
142 jmp [lp]
143 nop
144
145 .globl _cal_svc_3m
146 /*
147 * extern int cal_svc_3m(int par1, int par2, int par3, int fncd)
148 * __attribute__((section(".text_shared")));
149 */
150FLABEL(_cal_svc_3m)
151 mov r9, r11
152 pushsp ep-lp
153 syscall 1
154 nop
155 popsp ep-lp
156 jmp [lp]
157 nop
158
159 .globl _cal_svc_0n
160 /*
161 * extern void cal_svc_0n(int fncd)
162 * __attribute__((section(".text_shared")));
163 */
164FLABEL(_cal_svc_0n)
165 mov r6, r11
166 pushsp ep-lp
167 syscall 1
168 nop
169 popsp ep-lp
170 jmp [lp]
171 nop
172
173 .globl _cal_svc_1n
174 /*
175 * extern void cal_svc_1n(int par1, int fncd)
176 * __attribute__((section(".text_shared")));
177 */
178FLABEL(_cal_svc_1n)
179 mov r7, r11
180 pushsp ep-lp
181 syscall 1
182 nop
183 popsp ep-lp
184 jmp [lp]
185 nop
186
187 .globl _cal_svc_2n
188 /*
189 * extern void cal_svc_2n(int par1, int par2, int fncd)
190 * __attribute__((section(".text_shared")));
191 */
192FLABEL(_cal_svc_2n)
193 mov r8, r11
194 pushsp ep-lp
195 syscall 1
196 nop
197 popsp ep-lp
198 jmp [lp]
199 nop
200
201 .globl _cal_svc_3n
202 /*
203 * extern void cal_svc_3n(int par1, int par2, int par3, int fncd)
204 * __attribute__((section(".text_shared")));
205 */
206FLABEL(_cal_svc_3n)
207 mov r9, r11
208 pushsp ep-lp
209 syscall 1
210 nop
211 popsp ep-lp
212 jmp [lp]
213 nop
214
215
Note: See TracBrowser for help on using the repository browser.