• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13#
14# This file describes copmiler-to-runtime entrypoints.
15# Fields:
16#  * properties:
17#    - no_return: entrypoint doesn't jump back to the caller.
18#    - external: don't generate entrypoint and bridge declarations, initialize table's element by nullptr.
19#  * signature: signature of the entrypoint, the first element is the return value, the rest are arguments.
20#  * entrypoint: explicitly defined Entrypoint name.
21
22entrypoints:
23- name: Deoptimize
24  properties: [no_return]
25  signature:
26  - void
27  - uint8_t
28
29- name: AbstractMethodError
30  properties: [no_return]
31  signature:
32  - void
33  - panda::Method*
34
35- name: AnnotateSanitizers
36  properties: []
37  signature:
38  - void
39  - void const*
40  - size_t
41
42- name: CheckCast
43  properties: []
44  signature:
45  - void
46  - const panda::Method*
47  - const panda::ObjectHeader*
48  - panda::FileEntityId
49
50- name: CheckStoreArrayReference
51  properties: []
52  signature:
53  - void
54  - panda::coretypes::Array*
55  - panda::ObjectHeader*
56
57- name: ArithmeticException
58  properties: [no_return]
59  signature:
60  - void
61
62- name: ArrayIndexOutOfBoundsException
63  properties: [no_return]
64  signature:
65  - void
66  - ssize_t
67  - size_t
68
69- name: StringIndexOutOfBoundsException
70  properties: [no_return]
71  signature:
72  - void
73  - ssize_t
74  - size_t
75
76- name: ClassCastException
77  properties: [no_return]
78  signature:
79  - void
80  - panda::Class*
81  - panda::ObjectHeader*
82
83- name: NegativeArraySizeException
84  properties: [no_return]
85  signature:
86  - void
87  - ssize_t
88
89- name: NullPointerException
90  properties: [no_return]
91  signature:
92  - void
93
94- name: ThrowException
95  properties: [no_return]
96  signature:
97  - void
98  - panda::ObjectHeader*
99
100- name: ThrowNativeException
101  properties: [no_return]
102  signature:
103  - void
104
105- name: CreateArray
106  properties: []
107  signature:
108  - panda::coretypes::Array*
109  - const panda::Method*
110  - panda::FileEntityId
111  - size_t
112
113- name: CreateMultiArray
114  properties: []
115  signature:
116  - panda::coretypes::Array*
117  - panda::Class*
118  - uint32_t
119  - size_t*
120
121- name: CreateObjectByClass
122  properties: []
123  signature:
124  - panda::ObjectHeader*
125  - panda::Class*
126
127- name: Safepoint
128  properties: []
129  signature:
130  - void
131
132- name: GetCalleeMethod
133  properties: []
134  signature:
135  - panda::Method*
136  - const panda::Method*
137  - size_t
138
139- name: GetCalleeMethodDirect
140  properties: []
141  entrypoint: GetCalleeMethodEntrypoint
142  signature:
143  - panda::Method*
144  - const panda::Method*
145  - size_t
146
147- name: GetUnknownCalleeMethod
148  properties: []
149  signature:
150  - panda::Method*
151  - const panda::Method*
152  - size_t
153  - size_t*
154
155- name: GetFieldOffset
156  properties: []
157  signature:
158  - size_t
159  - panda::Method*
160  - uint32_t
161
162- name: GetStaticFieldAddress
163  properties: []
164  signature:
165  - uintptr_t
166  - panda::Method*
167  - uint32_t
168
169- name: GetUnknownStaticFieldMemoryAddress
170  properties: []
171  signature:
172  - uintptr_t
173  - panda::Method*
174  - uint32_t
175  - size_t*
176
177- name: GetUnknownStaticFieldPtr
178  properties: []
179  signature:
180    - uintptr_t
181    - panda::Method*
182    - uint32_t
183    - size_t*
184
185- name: InitializeClass
186  properties: []
187  signature:
188  - void
189  - panda::Class*
190
191- name: InitializeClassById
192  properties: []
193  signature:
194  - panda::Class*
195  - const panda::Method*
196  - panda::FileEntityId
197
198- name: InitializeClassByIdDirect
199  properties: []
200  entrypoint: InitializeClassByIdEntrypoint
201  signature:
202  - panda::Class*
203  - const panda::Method*
204  - panda::FileEntityId
205
206- name: IsInstance
207  properties: []
208  signature:
209  - uint8_t
210  - const panda::Method*
211  - panda::ObjectHeader*
212  - panda::FileEntityId
213
214- name: PostWrbUpdateCardFunc
215  properties: [external]
216  signature:
217  - void
218
219- name: PreWrbFunc
220  properties: [external]
221  signature:
222  - void
223  - void*
224
225- name: ResolveClass
226  properties: []
227  signature:
228  - void*
229  - const panda::Method*
230  - panda::FileEntityId
231
232- name: ResolveClassDirect
233  properties: []
234  entrypoint: ResolveClassEntrypoint
235  signature:
236  - void*
237  - const panda::Method*
238  - panda::FileEntityId
239
240- name: ResolveClassObject
241  properties: []
242  signature:
243  - void*
244  - const panda::Method*
245  - panda::FileEntityId
246
247- name: ResolveString
248  properties: []
249  signature:
250  - panda::coretypes::String*
251  - const panda::Method*
252  - panda::FileEntityId
253
254- name: ResolveStringAot
255  properties: []
256  signature:
257  - panda::coretypes::String*
258  - const panda::Method*
259  - panda::FileEntityId
260  - panda::ObjectHeader**
261
262- name: ResolveUnknownVirtualCall
263  properties: []
264  signature:
265  - uintptr_t
266  - const panda::Method*
267  - panda::ObjectHeader*
268  - size_t
269  - size_t*
270
271- name: ResolveVirtualCallAot
272  properties: []
273  signature:
274  - uintptr_t
275  - const panda::Method*
276  - panda::ObjectHeader*
277  - size_t
278
279- name: ResolveVirtualCall
280  properties: []
281  signature:
282  - uintptr_t
283  - const panda::Method*
284  - panda::ObjectHeader*
285
286- name: Trace
287  properties: []
288  signature:
289  - void
290  - size_t pid
291  - ...
292
293- name: WriteTlabStats
294  properties: []
295  signature:
296  - void
297  - size_t
298
299- name: LockObject
300  properties: []
301  signature:
302  - void
303  - panda::ObjectHeader*
304
305- name: UnlockObject
306  properties: []
307  signature:
308  - void
309  - panda::ObjectHeader*
310