source: atk2-sc3-1.4.0-ntisr/arch/v850_ccrh/prc_tool_asm.asm

Last change on this file 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.7 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_asm.asm 180 2015-06-12 04:46:49Z 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 "kernel.text", text
70 .align 4
71;/*
72 ;* メモリ再読込が必
73要なことをコンパイラに伝えるためのダミー関数
74 ;*/
75 .public _v850_memory_changed
76 ;/*
77 ;* void v850_memory_changed(void)
78 ;*/
79_v850_memory_changed:
80 jmp [lp]
81 nop
82
83 .public _v850_sync_memory
84 ;/*
85 ;* void v850_sync_memory(void)
86 ;*/
87_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 ;* ep保存(RH850ではcallee saved)
101 ;*/
102 .section "shared.text", text
103 .align 4
104 .public _cal_svc_0m
105 ;/*
106 ;* extern int cal_svc_0m(int fncd)
107 ;* __attribute__((section("text_shared")));
108 ;*/
109_cal_svc_0m:
110 mov r6, r11
111 pushsp ep,lp
112 syscall 1
113 nop
114 popsp ep,lp
115 jmp [lp]
116 nop
117
118 .public _cal_svc_1m
119 ;/*
120 ;* extern int cal_svc_1m(int par1, int fncd)
121 ;* __attribute__((section("text_shared")));
122 ;*/
123_cal_svc_1m:
124 mov r7, r11
125 pushsp ep, lp
126 syscall 1
127 nop
128 popsp ep, lp
129 jmp [lp]
130 nop
131
132 .public _cal_svc_2m
133 ;/*
134 ;* extern int cal_svc_2m(int par1, int par2, int fncd)
135 ;* __attribute__((section("text_shared")));
136 ;*/
137_cal_svc_2m:
138 mov r8, r11
139 pushsp ep, lp
140 syscall 1
141 nop
142 popsp ep, lp
143 jmp [lp]
144 nop
145
146 .public _cal_svc_3m
147 ;/*
148 ;* extern int cal_svc_3m(int par1, int par2, int par3, int fncd)
149 ;* __attribute__((section("text_shared")));
150 ;*/
151_cal_svc_3m:
152 mov r9, r11
153 pushsp ep, lp
154 syscall 1
155 nop
156 popsp ep, lp
157 jmp [lp]
158 nop
159
160 .public _cal_svc_0n
161 ;/*
162 ;* extern void cal_svc_0n(int fncd)
163 ;* __attribute__((section("text_shared")));
164 ;*/
165_cal_svc_0n:
166 mov r6, r11
167 pushsp ep, lp
168 syscall 1
169 nop
170 popsp ep, lp
171 jmp [lp]
172 nop
173
174 .public _cal_svc_1n
175 ;/*
176 ;* extern void cal_svc_1n(int par1, int fncd)
177 ;* __attribute__((section("text_shared")));
178 ;*/
179_cal_svc_1n:
180 mov r7, r11
181 pushsp ep, lp
182 syscall 1
183 nop
184 popsp ep, lp
185 jmp [lp]
186 nop
187
188 .public _cal_svc_2n
189 ;/*
190 ;* extern void cal_svc_2n(int par1, int par2, int fncd)
191 ;* __attribute__((section("text_shared")));
192 ;*/
193_cal_svc_2n:
194 mov r8, r11
195 pushsp ep, lp
196 syscall 1
197 nop
198 popsp ep, lp
199 jmp [lp]
200 nop
201
202 .public _cal_svc_3n
203 ;/*
204 ;* extern void cal_svc_3n(int par1, int par2, int par3, int fncd)
205 ;* __attribute__((section("text_shared")));
206 ;*/
207_cal_svc_3n:
208 mov r9, r11
209 pushsp ep, lp
210 syscall 1
211 nop
212 popsp ep, lp
213 jmp [lp]
214 nop
215
216
Note: See TracBrowser for help on using the repository browser.