• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023-2024 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#    - irtoc: entrypoint is generated by irtoc tool
20#    - intrinsic: this is call of intrinsic wrapped in entrypoint bridge
21#  * signature: signature of the entrypoint, the first element is the return value, the rest are arguments.
22#  * entrypoint: entrypoint function name.
23
24- name: CreateLaunchStaticCoroutine
25  entrypoint: CreateLaunchStaticCoroutineEntrypoint
26  bridge: entrypoint
27  properties: []
28  signature:
29  - void
30  - ark::Method*
31  - ark::ObjectHeader*
32  - uint64_t*
33
34- name: CreateLaunchVirtualCoroutine
35  entrypoint: CreateLaunchVirtualCoroutineEntrypoint
36  bridge: entrypoint
37  properties: []
38  signature:
39  - void
40  - ark::Method*
41  - ark::ObjectHeader*
42  - uint64_t*
43  - ark::ObjectHeader*
44
45- name: ArrayCopyTo1bSlowPath
46  entrypoint: StdCoreByteCopyTo
47  bridge: slow_path
48  properties: [intrinsic]
49  signature:
50      - void
51      - void*
52      - void*
53      - int32_t
54      - int32_t
55      - int32_t
56
57- name: ArrayCopyTo2bSlowPath
58  entrypoint: StdCoreShortCopyTo
59  bridge: slow_path
60  properties: [intrinsic]
61  signature:
62      - void
63      - void*
64      - void*
65      - int32_t
66      - int32_t
67      - int32_t
68
69- name: ArrayCopyTo4bSlowPath
70  entrypoint: StdCoreIntCopyTo
71  bridge: slow_path
72  properties: [intrinsic]
73  signature:
74      - void
75      - void*
76      - void*
77      - int32_t
78      - int32_t
79      - int32_t
80
81- name: ArrayCopyTo8bSlowPath
82  entrypoint: StdCoreLongCopyTo
83  bridge: slow_path
84  properties: [intrinsic]
85  signature:
86      - void
87      - void*
88      - void*
89      - int32_t
90      - int32_t
91      - int32_t
92
93- name: ArrayCopyTo1bOddSaved
94  entrypoint: StdCoreByteCopyTo
95  bridge: odd_saved
96  properties: [intrinsic]
97  signature:
98      - void
99      - void*
100      - void*
101      - int32_t
102      - int32_t
103      - int32_t
104
105- name: ArrayCopyTo2bOddSaved
106  entrypoint: StdCoreShortCopyTo
107  bridge: odd_saved
108  properties: [intrinsic]
109  signature:
110      - void
111      - void*
112      - void*
113      - int32_t
114      - int32_t
115      - int32_t
116
117- name: ArrayCopyTo4bOddSaved
118  entrypoint: StdCoreIntCopyTo
119  bridge: odd_saved
120  properties: [intrinsic]
121  signature:
122      - void
123      - void*
124      - void*
125      - int32_t
126      - int32_t
127      - int32_t
128
129- name: ArrayCopyTo8bOddSaved
130  entrypoint: StdCoreLongCopyTo
131  bridge: odd_saved
132  properties: [intrinsic]
133  signature:
134      - void
135      - void*
136      - void*
137      - int32_t
138      - int32_t
139      - int32_t
140
141- name: StringBuilderAppendLong
142  entrypoint: StringBuilderAppendLong
143  bridge: none
144  properties: [irtoc]
145  signature:
146    - ark::ObjectHeader*  # string builder (result)
147    - ark::ObjectHeader*  # string builder
148    - int64_t             # long value
149    - ark::Class*         # array class pointer
150
151- name: StringBuilderAppendLongSlowPath
152  entrypoint: StringBuilderAppendLongEntrypoint
153  bridge: slow_path
154  properties: []
155  signature:
156    - ark::ObjectHeader*  # string builder (result)
157    - ark::ObjectHeader*  # string builder
158    - int64_t             # long value
159
160- name: StringBuilderAppendLong3Arg
161  entrypoint: StringBuilderAppendLongEntrypoint
162  bridge: odd_saved3
163  properties: []
164  signature:
165    - ark::ObjectHeader*  # string builder (result)
166    - ark::ObjectHeader*  # string builder
167    - int64_t             # long value
168
169- name: StringBuilderAppendChar
170  entrypoint: StringBuilderAppendChar
171  bridge: none
172  properties: [irtoc]
173  signature:
174    - ark::ObjectHeader*  # string builder (result)
175    - ark::ObjectHeader*  # string builder
176    - uint16_t            # char
177    - ark::Class*         # array class pointer
178
179- name: StringBuilderAppendCharCompressed
180  entrypoint: StringBuilderAppendCharCompressed
181  bridge: none
182  properties: [irtoc]
183  signature:
184    - ark::ObjectHeader*  # string builder (result)
185    - ark::ObjectHeader*  # string builder
186    - uint16_t            # char
187    - ark::Class*         # array class pointer
188
189- name: StringBuilderAppendCharSlowPath
190  entrypoint: StringBuilderAppendCharEntrypoint
191  bridge: slow_path
192  properties: []
193  signature:
194    - ark::ObjectHeader*  # string builder (result)
195    - ark::ObjectHeader*  # string builder
196    - uint16_t            # char
197
198- name: StringBuilderAppendChar3Arg
199  entrypoint: StringBuilderAppendCharEntrypoint
200  bridge: odd_saved3
201  properties: []
202  signature:
203    - ark::ObjectHeader*  # string builder (result)
204    - ark::ObjectHeader*  # string builder
205    - uint16_t            # char
206
207- name: StringBuilderAppendBool
208  entrypoint: StringBuilderAppendBool
209  bridge: none
210  properties: [irtoc]
211  signature:
212    - ark::ObjectHeader*  # string builder (result)
213    - ark::ObjectHeader*  # string builder
214    - uint8_t             # boolean
215    - ark::Class*         # array class pointer
216
217- name: StringBuilderAppendBoolSlowPath
218  entrypoint: StringBuilderAppendBoolEntrypoint
219  bridge: slow_path
220  properties: []
221  signature:
222    - ark::ObjectHeader*  # string builder (result)
223    - ark::ObjectHeader*  # string builder
224    - uint8_t             # boolean
225
226- name: StringBuilderAppendBool3Arg
227  entrypoint: StringBuilderAppendBoolEntrypoint
228  bridge: odd_saved3
229  properties: []
230  signature:
231    - ark::ObjectHeader*  # string builder (result)
232    - ark::ObjectHeader*  # string builder
233    - uint8_t             # boolean
234
235- name: StringBuilderAppendString
236  entrypoint: StringBuilderAppendStringEntrypoint
237  bridge: entrypoint
238  properties: []
239  signature:
240    - ark::ObjectHeader*  # string builder (result)
241    - ark::ObjectHeader*  # string builder
242    - ark::ObjectHeader*  # string
243
244- name: StringBuilderAppendNullString
245  entrypoint: StringBuilderAppendNullStringEntrypoint
246  bridge: entrypoint
247  properties: []
248  signature:
249    - ark::ObjectHeader*  # string builder (result)
250    - ark::ObjectHeader*  # string builder
251
252- name: StringBuilderToString
253  entrypoint: StringBuilderToString
254  bridge: none
255  properties: [irtoc]
256  signature:
257    - ark::ObjectHeader*  # string (result)
258    - ark::ObjectHeader*  # string builder
259    - ark::Class*         # string class pointer
260
261- name: StringBuilderToStringSlowPath
262  entrypoint: StringBuilderToStringEntrypoint
263  bridge: slow_path
264  properties: []
265  signature:
266    - ark::ObjectHeader*  # string (result)
267    - ark::ObjectHeader*  # string builder
268
269- name: StringBuilderToString2Arg
270  entrypoint: StringBuilderToStringEntrypoint
271  bridge: odd_saved2
272  properties: []
273  signature:
274    - ark::ObjectHeader*  # string (result)
275    - ark::ObjectHeader*  # string builder
276
277- name: DoubleToStringDecimal
278  entrypoint: DoubleToStringDecimal
279  bridge: none
280  properties: [irtoc]
281  signature:
282    - ark::ObjectHeader*  # string (result)
283    - ark::ObjectHeader*  # cache
284    - uint64_t            # number
285    - uint64_t            # unused
286
287- name: DoubleToStringDecimalSlowPath
288  entrypoint: DoubleToStringDecimalEntrypoint
289  bridge: slow_path
290  properties: []
291  signature:
292    - ark::ObjectHeader*  # string (result)
293    - ark::ObjectHeader*  # cache
294    - uint64_t            # number
295
296- name: DoubleToStringDecimal3Arg
297  entrypoint: DoubleToStringDecimalEntrypoint
298  bridge: odd_saved3
299  properties: []
300  signature:
301    - ark::ObjectHeader*  # string (result)
302    - ark::ObjectHeader*  # cache
303    - uint64_t            # number
304
305- name: DoubleToStringDecimalStoreSlowPath
306  entrypoint: DoubleToStringDecimalStoreEntrypoint
307  bridge: slow_path
308  properties: []
309  signature:
310    - ark::ObjectHeader*  # string (result)
311    - ark::ObjectHeader*  # cache element
312    - uint64_t            # number
313    - uint64_t            # cache data
314
315- name: DoubleToStringDecimalStoreOddSaved
316  entrypoint: DoubleToStringDecimalStoreEntrypoint
317  bridge: odd_saved
318  properties: []
319  signature:
320    - ark::ObjectHeader*  # string (result)
321    - ark::ObjectHeader*  # cache element
322    - uint64_t            # number
323    - uint64_t            # cache data
324
325- name: DoubleToStringDecimalNoCacheSlowPath
326  entrypoint: DoubleToStringDecimalNoCacheEntrypoint
327  bridge: slow_path
328  properties: []
329  signature:
330    - ark::ObjectHeader*  # string (result)
331    - uint64_t            # number
332
333- name: DoubleToStringDecimalNoCache3Arg
334  entrypoint: DoubleToStringDecimalNoCacheEntrypoint
335  bridge: odd_saved3
336  properties: []
337  signature:
338    - ark::ObjectHeader*  # string (result)
339    - uint64_t            # number
340
341- name: StringEmpty
342  entrypoint: StringEmpty
343  bridge: none
344  properties: [irtoc]
345  signature:
346    - ark::ObjectHeader*  # string (result)
347    - ark::ObjectHeader*  # string (to obtain klass)
348
349- name: StringTrimLeft
350  entrypoint: StringTrimLeft
351  bridge: none
352  properties: [irtoc]
353  signature:
354    - ark::ObjectHeader*  # string (result)
355    - ark::ObjectHeader*  # string to trim
356    - int32_t             # unused
357    - int32_t             # unused
358
359- name: StringTrimLeftBase
360  entrypoint: StringTrimLeftBase
361  bridge: none
362  properties: [irtoc]
363  signature:
364    - ark::ObjectHeader*  # string (result)
365    - ark::ObjectHeader*  # string to trim
366    - int32_t             # unused
367    - int32_t             # unused
368
369- name: StringTrimRight
370  entrypoint: StringTrimRight
371  bridge: none
372  properties: [irtoc]
373  signature:
374    - ark::ObjectHeader*  # string (result)
375    - ark::ObjectHeader*  # string to trim
376    - int32_t             # unused
377    - int32_t             # unused
378
379- name: StringTrimRightBase
380  entrypoint: StringTrimRightBase
381  bridge: none
382  properties: [irtoc]
383  signature:
384    - ark::ObjectHeader*  # string (result)
385    - ark::ObjectHeader*  # string to trim
386    - int32_t             # unused
387    - int32_t             # unused
388
389- name: StringTrim
390  entrypoint: StringTrim
391  bridge: none
392  properties: [irtoc]
393  signature:
394    - ark::ObjectHeader*  # string (result)
395    - ark::ObjectHeader*  # string to trim
396    - int32_t             # unused
397    - int32_t             # unused
398
399- name: StringTrimBase
400  entrypoint: StringTrimBase
401  bridge: none
402  properties: [irtoc]
403  signature:
404    - ark::ObjectHeader*  # string (result)
405    - ark::ObjectHeader*  # string to trim
406    - int32_t             # unused
407    - int32_t             # unused
408
409- name: CharIsWhiteSpace
410  entrypoint: CharIsWhiteSpace
411  bridge: none
412  properties: [irtoc]
413  signature:
414    - uint8_t   # result (true/false)
415    - uint16_t  # char to test
416