source: atk2-sc3_fl850f1l/arch/v850_ccrh/prc_tool_asm.asm@ 117

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

ATK2-SC3 1.3.2 FL850F1L(RH850F1L)依存部(GCC/GHS/CCRH)を追加

File size: 5.1 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 ;* 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
10 ;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
11 ;* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
12 ;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
13 ;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
14 ;* スコード中に含まれていること.
15 ;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
16 ;* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
17 ;* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
18 ;* の無保証規定を掲載すること.
19 ;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
20 ;* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
21 ;* と.
22 ;* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
23 ;* 作権表示,この利用条件および下記の無保証規定を掲載すること.
24 ;* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
25 ;* 報告すること.
26 ;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
27 ;* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
28 ;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
29 ;* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
30 ;* 免責すること.
31 ;*
32 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
33 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
34 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
35 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
36 ;* の責任を負わない.
37 ;*
38 ;* $Id: prc_tool_asm.asm 180 2015-06-12 04:46:49Z t_ishikawa $
39 ;*/
40
41;/*
42 ;* V850用cal_svc実装
43 ;* GHSにおけるインラインアセンブラでは,破壊レジスタの指定が
44 ;* 保証されないため,直接アセンブリで記述する
45 ;*/
46$include (v850asm.inc)
47$include (offset.h)
48
49$ifdef USE_ASMCONFIG_INC
50$include (asm_config.inc)
51$endif ;/* USE_ASMCONFIG_INC */
52
53 .section "kernel.text", text
54 .align 4
55;/*
56 ;* メモリ再読込が必要なことをコンパイラに伝えるためのダミー関数
57 ;*/
58 .public _v850_memory_changed
59 ;/*
60 ;* void v850_memory_changed(void)
61 ;*/
62_v850_memory_changed:
63 jmp [lp]
64 nop
65
66 .public _v850_sync_memory
67 ;/*
68 ;* void v850_sync_memory(void)
69 ;*/
70_v850_sync_memory:
71 syncm
72 jmp [lp]
73 nop
74
75;/*
76 ;* サービスコールの出入口
77 ;* r10 : 返り値
78 ;* r11:関数コード
79 ;* r6 - r9 : 引数(4つまで)
80 ;* スクラッチレジスタ保存(関数呼出しによりここでは保存済み)
81 ;* lp保存
82 ;* ep保存(RH850ではcallee saved)
83 ;*/
84 .section "shared.text", text
85 .align 4
86 .public _cal_svc_0m
87 ;/*
88 ;* extern int cal_svc_0m(int fncd)
89 ;* __attribute__((section("text_shared")));
90 ;*/
91_cal_svc_0m:
92 mov r6, r11
93 pushsp ep,lp
94 syscall 1
95 nop
96 popsp ep,lp
97 jmp [lp]
98 nop
99
100 .public _cal_svc_1m
101 ;/*
102 ;* extern int cal_svc_1m(int par1, int fncd)
103 ;* __attribute__((section("text_shared")));
104 ;*/
105_cal_svc_1m:
106 mov r7, r11
107 pushsp ep, lp
108 syscall 1
109 nop
110 popsp ep, lp
111 jmp [lp]
112 nop
113
114 .public _cal_svc_2m
115 ;/*
116 ;* extern int cal_svc_2m(int par1, int par2, int fncd)
117 ;* __attribute__((section("text_shared")));
118 ;*/
119_cal_svc_2m:
120 mov r8, r11
121 pushsp ep, lp
122 syscall 1
123 nop
124 popsp ep, lp
125 jmp [lp]
126 nop
127
128 .public _cal_svc_3m
129 ;/*
130 ;* extern int cal_svc_3m(int par1, int par2, int par3, int fncd)
131 ;* __attribute__((section("text_shared")));
132 ;*/
133_cal_svc_3m:
134 mov r9, r11
135 pushsp ep, lp
136 syscall 1
137 nop
138 popsp ep, lp
139 jmp [lp]
140 nop
141
142 .public _cal_svc_0n
143 ;/*
144 ;* extern void cal_svc_0n(int fncd)
145 ;* __attribute__((section("text_shared")));
146 ;*/
147_cal_svc_0n:
148 mov r6, r11
149 pushsp ep, lp
150 syscall 1
151 nop
152 popsp ep, lp
153 jmp [lp]
154 nop
155
156 .public _cal_svc_1n
157 ;/*
158 ;* extern void cal_svc_1n(int par1, int fncd)
159 ;* __attribute__((section("text_shared")));
160 ;*/
161_cal_svc_1n:
162 mov r7, r11
163 pushsp ep, lp
164 syscall 1
165 nop
166 popsp ep, lp
167 jmp [lp]
168 nop
169
170 .public _cal_svc_2n
171 ;/*
172 ;* extern void cal_svc_2n(int par1, int par2, int fncd)
173 ;* __attribute__((section("text_shared")));
174 ;*/
175_cal_svc_2n:
176 mov r8, r11
177 pushsp ep, lp
178 syscall 1
179 nop
180 popsp ep, lp
181 jmp [lp]
182 nop
183
184 .public _cal_svc_3n
185 ;/*
186 ;* extern void cal_svc_3n(int par1, int par2, int par3, int fncd)
187 ;* __attribute__((section("text_shared")));
188 ;*/
189_cal_svc_3n:
190 mov r9, r11
191 pushsp ep, lp
192 syscall 1
193 nop
194 popsp ep, lp
195 jmp [lp]
196 nop
197
198
Note: See TracBrowser for help on using the repository browser.