• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-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
24entrypoints:
25- name: Deoptimize
26  entrypoint: DeoptimizeEntrypoint
27  bridge: entrypoint
28  properties: [no_return]
29  signature:
30  - void
31  - uint64_t
32
33- name: AbstractMethodError
34  entrypoint: AbstractMethodErrorEntrypoint
35  bridge: entrypoint
36  properties: [no_return]
37  signature:
38  - void
39  - ark::Method*
40
41- name: AnnotateSanitizers
42  entrypoint: AnnotateSanitizersEntrypoint
43  bridge: entrypoint
44  properties: []
45  signature:
46  - void
47  - void const*
48  - size_t
49
50- name: AnnotateSanitizersNoBridge
51  entrypoint: AnnotateSanitizersEntrypoint
52  bridge: none
53  properties: []
54  signature:
55  - void
56  - void const*
57  - size_t
58
59- name: CheckCast
60  entrypoint: CheckCastEntrypoint
61  bridge: entrypoint
62  properties: []
63  signature:
64  - void
65  - const ark::ObjectHeader*
66  - ark::Class*
67
68- name: CheckCastSlowPath
69  entrypoint: CheckCastEntrypoint
70  bridge: slow_path
71  properties: []
72  signature:
73  - void
74  - const ark::ObjectHeader*
75  - ark::Class*
76
77- name: CheckCastDeoptimize
78  entrypoint: CheckCastDeoptimizeEntrypoint
79  bridge: entrypoint
80  properties: []
81  signature:
82  - void
83  - const ark::ObjectHeader*
84  - ark::Class*
85
86- name: CheckCastInterface
87  entrypoint: CheckCastInterfaceEntrypoint
88  bridge: none
89  properties: [irtoc]
90  signature:
91  - void
92  - const ark::ObjectHeader*
93  - ark::Class*
94
95- name: CheckStoreArrayReference
96  entrypoint: CheckStoreArrayReferenceEntrypoint
97  bridge: entrypoint
98  properties: []
99  signature:
100  - void
101  - ark::coretypes::Array*
102  - ark::ObjectHeader*
103
104- name: CheckStoreArrayReferenceDeoptimize
105  entrypoint: CheckStoreArrayReferenceDeoptimizeEntrypoint
106  bridge: entrypoint
107  properties: []
108  signature:
109  - void
110  - ark::coretypes::Array*
111  - ark::ObjectHeader*
112
113- name: ArithmeticException
114  entrypoint: ArithmeticExceptionEntrypoint
115  bridge: entrypoint
116  properties: [no_return]
117  signature:
118  - void
119
120- name: ArrayIndexOutOfBoundsException
121  entrypoint: ArrayIndexOutOfBoundsExceptionEntrypoint
122  bridge: entrypoint
123  properties: [no_return]
124  signature:
125  - void
126  - ssize_t
127  - size_t
128
129- name: StringIndexOutOfBoundsException
130  entrypoint: StringIndexOutOfBoundsExceptionEntrypoint
131  bridge: entrypoint
132  properties: [no_return]
133  signature:
134  - void
135  - ssize_t
136  - size_t
137
138- name: ClassCastException
139  entrypoint: ClassCastExceptionEntrypoint
140  bridge: entrypoint
141  properties: [no_return]
142  signature:
143  - void
144  - ark::Class*
145  - ark::ObjectHeader*
146
147- name: NegativeArraySizeException
148  entrypoint: NegativeArraySizeExceptionEntrypoint
149  bridge: entrypoint
150  properties: [no_return]
151  signature:
152  - void
153  - ssize_t
154
155- name: NullPointerException
156  entrypoint: NullPointerExceptionEntrypoint
157  bridge: entrypoint
158  properties: [no_return]
159  signature:
160  - void
161
162- name: StackOverflowException
163  entrypoint: StackOverflowExceptionEntrypoint
164  bridge: entrypoint
165  properties: [no_return]
166  signature:
167  - void
168
169- name: ThrowException
170  entrypoint: ThrowExceptionEntrypoint
171  bridge: entrypoint
172  properties: [no_return]
173  signature:
174  - void
175  - ark::ObjectHeader*
176
177- name: CreateEmptyString
178  entrypoint: CreateEmptyStringEntrypoint
179  bridge: entrypoint
180  properties: []
181  signature:
182  - ark::coretypes::String*
183
184- name: CreateEmptyStringSlowPath
185  entrypoint: CreateEmptyStringEntrypoint
186  bridge: slow_path
187  properties: []
188  signature:
189  - ark::coretypes::String*
190
191- name: CreateEmptyString1Arg
192  entrypoint: CreateEmptyStringEntrypoint
193  bridge: odd_saved1
194  properties: []
195  signature:
196  - ark::coretypes::String*
197
198- name: CreateStringFromChars
199  entrypoint: CreateStringFromCharsEntrypoint
200  bridge: entrypoint
201  properties: []
202  signature:
203  - ark::coretypes::String*
204  - ark::ObjectHeader*
205
206- name: CreateStringFromString
207  entrypoint: CreateStringFromStringEntrypoint
208  bridge: entrypoint
209  properties: []
210  signature:
211  - ark::coretypes::String*
212  - ark::ObjectHeader*
213
214- name: CreateMultiArray
215  entrypoint: CreateMultiArrayEntrypoint
216  bridge: entrypoint
217  properties: []
218  signature:
219  - ark::coretypes::Array*
220  - ark::Class*
221  - uint32_t
222  - size_t*
223
224- name: ResolveLiteralArray
225  entrypoint: ResolveLiteralArrayEntrypoint
226  bridge: entrypoint
227  properties: []
228  signature:
229  - ark::coretypes::Array*
230  - const ark::Method*
231  - uint32_t
232
233- name: CreateObjectByClass
234  entrypoint: CreateObjectByClassEntrypoint
235  bridge: entrypoint
236  properties: []
237  signature:
238  - ark::ObjectHeader*
239  - ark::Class*
240
241- name: CloneObject
242  entrypoint: CloneObjectEntrypoint
243  bridge: entrypoint
244  properties: []
245  signature:
246  - ark::ObjectHeader*
247  - ark::ObjectHeader*
248
249- name: PostBarrierWrite
250  entrypoint: PostBarrierWriteEntrypoint
251  bridge: entrypoint
252  properties: []
253  signature:
254  - ark::ObjectHeader*
255  - ark::ObjectHeader*
256  - size_t
257
258- name: Safepoint
259  entrypoint: SafepointEntrypoint
260  bridge: entrypoint
261  properties: []
262  signature:
263  - void
264
265- name: GetCalleeMethod
266  entrypoint: GetCalleeMethodEntrypoint
267  bridge: entrypoint
268  properties: []
269  signature:
270  - ark::Method*
271  - const ark::Method*
272  - size_t
273
274- name: GetCalleeMethodDirect
275  entrypoint: GetCalleeMethodEntrypoint
276  bridge: none
277  properties: []
278  signature:
279  - ark::Method*
280  - const ark::Method*
281  - size_t
282
283- name: GetUnknownCalleeMethod
284  entrypoint: GetUnknownCalleeMethodEntrypoint
285  bridge: entrypoint
286  properties: []
287  signature:
288  - ark::Method*
289  - const ark::Method*
290  - size_t
291  - size_t*
292
293- name: GetFieldOffset
294  entrypoint: GetFieldOffsetEntrypoint
295  bridge: entrypoint
296  properties: []
297  signature:
298  - size_t
299  - ark::Method*
300  - uint32_t
301
302- name: GetStaticFieldAddress
303  entrypoint: GetStaticFieldAddressEntrypoint
304  bridge: entrypoint
305  properties: []
306  signature:
307  - uintptr_t
308  - ark::Method*
309  - uint32_t
310
311- name: UnresolvedStoreStaticBarriered
312  entrypoint: UnresolvedStoreStaticBarrieredEntrypoint
313  bridge: entrypoint
314  properties: []
315  signature:
316  - void
317  - ark::Method*
318  - uint32_t
319  - ark::ObjectHeader*
320
321- name: GetUnknownStaticFieldMemoryAddress
322  entrypoint: GetUnknownStaticFieldMemoryAddressEntrypoint
323  bridge: entrypoint
324  properties: []
325  signature:
326  - uintptr_t
327  - ark::Method*
328  - uint32_t
329  - size_t*
330
331- name: InitializeClass
332  entrypoint: InitializeClassEntrypoint
333  bridge: entrypoint
334  properties: []
335  signature:
336  - void
337  - ark::Class*
338
339- name: InitializeClassById
340  entrypoint: InitializeClassByIdEntrypoint
341  bridge: entrypoint
342  properties: []
343  signature:
344  - ark::Class*
345  - const ark::Method*
346  - ark::FileEntityId
347
348- name: InitializeClassByIdDirect
349  entrypoint: InitializeClassByIdEntrypoint
350  bridge: none
351  properties: []
352  signature:
353  - ark::Class*
354  - const ark::Method*
355  - ark::FileEntityId
356
357- name: IsInstance
358  entrypoint: IsInstanceEntrypoint
359  bridge: entrypoint
360  properties: []
361  signature:
362  - uint8_t
363  - ark::ObjectHeader*
364  - ark::Class*
365
366- name: PostWrbUpdateCardFuncNoBridge
367  entrypoint: PostWrbUpdateCardFuncEntrypoint
368  bridge: none
369  properties: []
370  signature:
371  - void
372  - const void*
373  - const void*
374
375- name: ResolveClass
376  entrypoint: ResolveClassEntrypoint
377  bridge: entrypoint
378  properties: []
379  signature:
380  - ark::Class*
381  - const ark::Method*
382  - ark::FileEntityId
383
384- name: ResolveClassDirect
385  entrypoint: ResolveClassEntrypoint
386  bridge: none
387  properties: []
388  signature:
389  - ark::Class*
390  - const ark::Method*
391  - ark::FileEntityId
392
393- name: ResolveClassObject
394  entrypoint: ResolveClassObjectEntrypoint
395  bridge: entrypoint
396  properties: []
397  signature:
398  - ark::ObjectHeader*
399  - const ark::Method*
400  - ark::FileEntityId
401
402- name: ResolveString
403  entrypoint: ResolveStringEntrypoint
404  bridge: entrypoint
405  properties: []
406  signature:
407  - ark::coretypes::String*
408  - const ark::Method*
409  - ark::FileEntityId
410
411- name: ResolveStringAot
412  entrypoint: ResolveStringAotEntrypoint
413  bridge: entrypoint
414  properties: []
415  signature:
416  - ark::coretypes::String*
417  - const ark::Method*
418  - ark::FileEntityId
419  - ark::ObjectHeader**
420
421- name: ResolveUnknownVirtualCall
422  entrypoint: ResolveUnknownVirtualCallEntrypoint
423  bridge: entrypoint
424  properties: []
425  signature:
426  - uintptr_t
427  - const ark::Method*
428  - ark::ObjectHeader*
429  - size_t
430  - size_t*
431
432- name: ResolveVirtualCallAot
433  entrypoint: ResolveVirtualCallAotEntrypoint
434  bridge: entrypoint
435  properties: []
436  signature:
437  - uintptr_t
438  - const ark::Method*
439  - ark::ObjectHeader*
440  - size_t
441  - uintptr_t
442
443- name: ResolveVirtualCallAotSlowPath
444  entrypoint: ResolveVirtualCallAotEntrypoint
445  bridge: slow_path
446  properties: []
447  signature:
448  - uintptr_t
449  - const ark::Method*
450  - ark::ObjectHeader*
451  - size_t
452  - uintptr_t
453
454- name: ResolveVirtualCall
455  entrypoint: ResolveVirtualCallEntrypoint
456  bridge: entrypoint
457  properties: []
458  signature:
459  - uintptr_t
460  - const ark::Method*
461  - ark::ObjectHeader*
462
463- name: Trace
464  entrypoint: TraceEntrypoint
465  bridge: entrypoint
466  properties: []
467  signature:
468  - void
469  - size_t pid
470  - ...
471
472- name: WriteTlabStats
473  entrypoint: WriteTlabStatsEntrypoint
474  bridge: entrypoint
475  properties: []
476  signature:
477  - void
478  - void const*
479  - size_t
480
481- name: WriteTlabStatsNoBridge
482  entrypoint: WriteTlabStatsEntrypoint
483  bridge: none
484  properties: []
485  signature:
486  - void
487  - void const*
488  - size_t
489
490- name: LockObject
491  entrypoint: LockObjectEntrypoint
492  bridge: entrypoint
493  properties: []
494  signature:
495  - void
496  - ark::ObjectHeader*
497
498- name: UnlockObject
499  entrypoint: UnlockObjectEntrypoint
500  bridge: entrypoint
501  properties: []
502  signature:
503  - void
504  - ark::ObjectHeader*
505
506- name: IncompatibleClassChangeErrorForMethodConflict
507  entrypoint: IncompatibleClassChangeErrorForMethodConflictEntrypoint
508  bridge: none
509  properties: [no_return]
510  signature:
511  - void
512  - ark::Method*
513
514- name: AllocateObjectTlab
515  entrypoint: AllocateObjectTlab
516  bridge: none
517  properties: [irtoc]
518  signature:
519  - ark::ObjectHeader*
520  - ark::Class*
521  - size_t
522
523- name: CreateObjectByClassSlowPath
524  entrypoint: CreateObjectByClassEntrypoint
525  bridge: slow_path
526  properties: []
527  signature:
528  - ark::ObjectHeader*
529  - ark::Class*
530
531- name: AllocateArrayTlab8
532  entrypoint: AllocateArrayTlab8
533  bridge: none
534  properties: [irtoc]
535  signature:
536    - ark::coretypes::Array*
537    - ark::Class*
538    - size_t
539
540- name: AllocateArrayTlab16
541  entrypoint: AllocateArrayTlab16
542  bridge: none
543  properties: [irtoc]
544  signature:
545    - ark::coretypes::Array*
546    - ark::Class*
547    - size_t
548
549- name: AllocateArrayTlab32
550  entrypoint: AllocateArrayTlab32
551  bridge: none
552  properties: [irtoc]
553  signature:
554    - ark::coretypes::Array*
555    - ark::Class*
556    - size_t
557
558- name: AllocateArrayTlab64
559  entrypoint: AllocateArrayTlab64
560  bridge: none
561  properties: [irtoc]
562  signature:
563    - ark::coretypes::Array*
564    - ark::Class*
565    - size_t
566
567- name: CreateArray
568  entrypoint: CreateArraySlowPathEntrypoint
569  bridge: entrypoint
570  properties: []
571  signature:
572    - ark::coretypes::Array*
573    - ark::Class*
574    - size_t
575
576- name: CreateArraySlowPath
577  entrypoint: CreateArraySlowPathEntrypoint
578  bridge: slow_path
579  properties: []
580  signature:
581    - ark::coretypes::Array*
582    - ark::Class*
583    - size_t
584
585- name: ClassResolver
586  entrypoint: ClassResolver
587  bridge: none
588  properties: [irtoc]
589  signature:
590    - ark::Class*
591    - void*
592
593- name: ClassInitResolver
594  entrypoint: ClassInitResolver
595  bridge: none
596  properties: [irtoc]
597  signature:
598    - ark::Class*
599    - void*
600
601- name: CallVirtualResolver
602  entrypoint: CallVirtualResolver
603  bridge: none
604  properties: [irtoc]
605  signature:
606    - void*
607
608- name: IntfInlineCache
609  entrypoint: IntfInlineCache
610  bridge: none
611  properties: [irtoc]
612  signature:
613    - ark::Method*
614    - const ark::Method*
615    - ark::ObjectHeader*
616    - size_t
617    - void*
618
619- name: MonitorEnterFastPath
620  entrypoint: MonitorEnterFastPath
621  bridge: none
622  properties: [irtoc]
623  signature:
624    - void
625    - ark::ObjectHeader*
626
627- name: MonitorExitFastPath
628  entrypoint: MonitorExitFastPath
629  bridge: none
630  properties: [irtoc]
631  signature:
632    - void
633    - ark::ObjectHeader*
634
635- name: EmptyPostWriteBarrier
636  entrypoint: EmptyPostWriteBarrier
637  bridge: none
638  properties: [irtoc]
639  signature:
640    - void
641
642- name: PostInterGenerationalBarrier0
643  entrypoint: PostInterGenerationalBarrier0
644  bridge: none
645  properties: [irtoc]
646  signature:
647    - void
648    - ark::ObjectHeader*
649
650- name: PostInterGenerationalBarrier1
651  entrypoint: PostInterGenerationalBarrier1
652  bridge: none
653  properties: [irtoc]
654  signature:
655    - void
656    - ark::ObjectHeader*
657    - size_t
658    - ark::ObjectHeader*
659
660- name: PostInterGenerationalBarrier2
661  entrypoint: PostInterGenerationalBarrier2
662  bridge: none
663  properties: [irtoc]
664  signature:
665    - void
666    - ark::ObjectHeader*
667    - size_t
668    - ark::ObjectHeader*
669    - ark::ObjectHeader*
670
671- name: PostInterRegionBarrierMarkSingleFast
672  entrypoint: PostInterRegionBarrierMarkSingleFast
673  bridge: none
674  properties: [irtoc]
675  signature:
676    - void
677    - ark::ObjectHeader*
678    - size_t
679    - ark::ObjectHeader*
680
681- name: PostInterRegionBarrierMarkPairFast
682  entrypoint: PostInterRegionBarrierMarkPairFast
683  bridge: none
684  properties: [irtoc]
685  signature:
686    - void
687    - ark::ObjectHeader*
688    - size_t
689    - ark::ObjectHeader*
690    - ark::ObjectHeader*
691
692- name: PostInterRegionBarrierSlow
693  entrypoint: PostInterRegionBarrierSlow
694  bridge: none
695  properties: [irtoc]
696  signature:
697    - void
698    - ark::ObjectHeader*
699
700- name: PostInterRegionBarrierTwoCardsSlow
701  entrypoint: PostInterRegionBarrierTwoCardsSlow
702  bridge: none
703  properties: [irtoc]
704  signature:
705    - void
706    - ark::ObjectHeader*
707
708- name: MonitorEnterOddSaved
709  entrypoint: LockObjectSlowPathEntrypoint
710  bridge: odd_saved
711  properties: []
712  signature:
713    - void
714    - ark::ObjectHeader*
715
716- name: MonitorExitOddSaved
717  entrypoint: UnlockObjectSlowPathEntrypoint
718  bridge: odd_saved
719  properties: []
720  signature:
721    - void
722    - ark::ObjectHeader*
723
724- name: MonitorEnterSlowPath
725  entrypoint: LockObjectSlowPathEntrypoint
726  bridge: slow_path
727  properties: []
728  signature:
729    - void
730    - ark::ObjectHeader*
731
732- name: MonitorExitSlowPath
733  entrypoint: UnlockObjectSlowPathEntrypoint
734  bridge: slow_path
735  properties: []
736  signature:
737    - void
738    - ark::ObjectHeader*
739
740- name: JsCastDoubleToInt32NoBridge
741  entrypoint: JsCastDoubleToInt32
742  bridge: none
743  properties: []
744  signature:
745    - int32_t
746    - double
747
748- name: JsCastDoubleToInt32
749  entrypoint: JsCastDoubleToInt32Entrypoint
750  bridge: entrypoint
751  properties: []
752  signature:
753    - int32_t
754    - uint64_t
755
756- name: ExpandCompiledCodeArgsDyn
757  entrypoint: ExpandCompiledCodeArgsDyn
758  bridge: none
759  properties: []
760  signature:
761    - void
762    - ark::Method*
763    - uint32_t
764    - uint32_t
765
766- name: StringEquals
767  entrypoint: StringEquals
768  bridge: none
769  properties: [irtoc]
770  signature:
771    - uint8_t
772    - ark::coretypes::String*
773    - ark::coretypes::String*
774
775- name: StringEqualsCompressed
776  entrypoint: StringEqualsCompressed
777  bridge: none
778  properties: [irtoc]
779  signature:
780    - uint8_t
781    - ark::coretypes::String*
782    - ark::coretypes::String*
783
784- name: StringEqualsUnroll
785  entrypoint: StringEqualsUnroll
786  bridge: none
787  properties: [irtoc]
788  signature:
789    - uint8_t
790    - ark::coretypes::String*
791    - ark::coretypes::String*
792
793- name: StringEqualsUnrollCompressed
794  entrypoint: StringEqualsUnrollCompressed
795  bridge: none
796  properties: [irtoc]
797  signature:
798    - uint8_t
799    - ark::coretypes::String*
800    - ark::coretypes::String*
801
802- name: StringBuilderBool
803  entrypoint: StringBuilderBool
804  bridge: none
805  properties: [irtoc]
806  signature:
807    - ark::coretypes::String*
808    - ark::coretypes::String*
809    - uint8_t
810
811- name: StringBuilderChar
812  entrypoint: StringBuilderChar
813  bridge: none
814  properties: [irtoc]
815  signature:
816    - ark::coretypes::String*
817    - ark::coretypes::String*
818    - uint16_t
819
820- name: StringBuilderString
821  entrypoint: StringBuilderString
822  bridge: none
823  properties: [irtoc]
824  signature:
825    - ark::coretypes::String*
826    - ark::coretypes::String*
827    - ark::coretypes::String*
828
829- name: StringBuilderStringCompressed
830  entrypoint: StringBuilderStringCompressed
831  bridge: none
832  properties: [irtoc]
833  signature:
834    - ark::coretypes::String*
835    - ark::coretypes::String*
836    - ark::coretypes::String*
837
838- name: StringBuilderStringSlowPath
839  entrypoint: CoreStringBuilderString
840  bridge: slow_path
841  properties: []
842  signature:
843    - ark::ObjectHeader*
844    - ark::ObjectHeader*
845    - void*
846
847- name: StringBuilderStringUsual
848  entrypoint: CoreStringBuilderString
849  bridge: entrypoint
850  properties: []
851  signature:
852    - ark::ObjectHeader*
853    - ark::ObjectHeader*
854    - void*
855
856- name: StringBuilderCharSlowPath
857  entrypoint: CoreStringBuilderChar
858  bridge: slow_path
859  properties: []
860  signature:
861    - ark::ObjectHeader*
862    - ark::ObjectHeader*
863    - uint16_t
864
865- name: StringBuilderCharUsual
866  entrypoint: CoreStringBuilderChar
867  bridge: entrypoint
868  properties: []
869  signature:
870    - ark::ObjectHeader*
871    - ark::ObjectHeader*
872    - uint16_t
873
874- name: StringBuilderBoolSlowPath
875  entrypoint: CoreStringBuilderBool
876  bridge: slow_path
877  properties: []
878  signature:
879    - ark::ObjectHeader*
880    - ark::ObjectHeader*
881    - uint8_t
882
883- name: StringBuilderBoolUsual
884  entrypoint: CoreStringBuilderBool
885  bridge: entrypoint
886  properties: []
887  signature:
888    - ark::ObjectHeader*
889    - ark::ObjectHeader*
890    - uint8_t
891
892- name: CoreStringBuilderInt
893  entrypoint: CoreStringBuilderInt
894  bridge: entrypoint
895  properties: []
896  signature:
897    - ark::ObjectHeader*
898    - ark::ObjectHeader*
899    - int32_t
900
901- name: CoreStringBuilderLong
902  entrypoint: CoreStringBuilderLong
903  bridge: entrypoint
904  properties: []
905  signature:
906    - ark::ObjectHeader*
907    - ark::ObjectHeader*
908    - int64_t
909
910- name: StringHashCode
911  entrypoint: StringHashCode
912  bridge: none
913  properties: [irtoc]
914  signature:
915    - uint32_t                 # resulting hashcode
916    - ark::coretypes::String*  # src string
917
918- name: StringHashCodeCompressed
919  entrypoint: StringHashCodeCompressed
920  bridge: none
921  properties: [irtoc]
922  signature:
923    - uint32_t                 # resulting hashcode
924    - ark::coretypes::String*  # src string
925
926- name: CreateStringFromStringTlab
927  entrypoint: CreateStringFromStringTlab
928  bridge: none
929  properties: [irtoc]
930  signature:
931    - ark::coretypes::String*  # resulting string
932    - ark::coretypes::String*  # src string
933
934- name: CreateStringFromStringTlabCompressed
935  entrypoint: CreateStringFromStringTlabCompressed
936  bridge: none
937  properties: [irtoc]
938  signature:
939    - ark::coretypes::String*  # resulting string
940    - ark::coretypes::String*  # src string
941
942- name: CreateStringFromStringSlowPath
943  entrypoint: CreateStringFromStringEntrypoint
944  bridge: slow_path
945  properties: []
946  signature:
947    - ark::ObjectHeader*  # resulting string
948    - ark::ObjectHeader*  # src string
949
950- name: CreateStringFromStringOddSaved
951  entrypoint: CreateStringFromStringEntrypoint
952  bridge: odd_saved
953  properties: []
954  signature:
955    - ark::ObjectHeader*  # resulting string
956    - ark::ObjectHeader*  # src string
957
958- name: CreateStringFromCharArrayTlab
959  entrypoint: CreateStringFromCharArrayTlab
960  bridge: none
961  properties: [irtoc]
962  signature:
963    - ark::coretypes::String*  # resulting string
964    - uint32_t                 # offset
965    - uint32_t                 # length
966    - ark::ObjectHeader*       # u16 array
967    - ark::Class*              # string class pointer
968
969- name: CreateStringFromCharArrayTlabCompressed
970  entrypoint: CreateStringFromCharArrayTlabCompressed
971  bridge: none
972  properties: [irtoc]
973  signature:
974    - ark::coretypes::String*  # resulting string
975    - uint32_t                 # offset
976    - uint32_t                 # length
977    - ark::ObjectHeader*       # u16 array
978    - ark::Class*              # string class pointer
979
980- name: CreateStringFromCharArraySlowPath
981  entrypoint: CreateStringFromCharsWithOffsetEntrypoint
982  bridge: slow_path
983  properties: []
984  signature:
985    - ark::coretypes::String*  # resulting string
986    - uint32_t                 # offset
987    - uint32_t                 # length
988    - ark::ObjectHeader*       # u16 array
989
990- name: CreateStringFromCharArray4Arg
991  entrypoint: CreateStringFromCharsWithOffsetEntrypoint
992  bridge: odd_saved4
993  properties: []
994  signature:
995    - ark::coretypes::String*  # resulting string
996    - uint32_t                 # offset
997    - uint32_t                 # length
998    - ark::ObjectHeader*       # u16 array
999
1000- name: CreateStringFromZeroBasedCharArrayTlab
1001  entrypoint: CreateStringFromZeroBasedCharArrayTlab
1002  bridge: none
1003  properties: [irtoc]
1004  signature:
1005    - ark::coretypes::String*  # resulting string
1006    - uint32_t                 # length
1007    - ark::ObjectHeader*       # u16 array
1008    - ark::Class*              # string class pointer
1009
1010- name: CreateStringFromZeroBasedCharArrayTlabCompressed
1011  entrypoint: CreateStringFromZeroBasedCharArrayTlabCompressed
1012  bridge: none
1013  properties: [irtoc]
1014  signature:
1015    - ark::coretypes::String*  # resulting string
1016    - uint32_t                 # length
1017    - ark::ObjectHeader*       # u16 array
1018    - ark::Class*              # string class pointer
1019
1020- name: CreateStringFromZeroBasedCharArraySlowPath
1021  entrypoint: CreateStringFromCharsZeroOffsetEntrypoint
1022  bridge: slow_path
1023  properties: []
1024  signature:
1025    - ark::coretypes::String*  # resulting string
1026    - uint32_t                 # length
1027    - ark::ObjectHeader*       # u16 array
1028
1029- name: CreateStringFromZeroBasedCharArray3Arg
1030  entrypoint: CreateStringFromCharsZeroOffsetEntrypoint
1031  bridge: odd_saved3
1032  properties: []
1033  signature:
1034    - ark::coretypes::String*  # resulting string
1035    - uint32_t                 # length
1036    - ark::ObjectHeader*       # u16 array
1037
1038- name: SubStringFromStringTlab
1039  entrypoint: SubStringFromStringTlab
1040  bridge: none
1041  properties: [irtoc]
1042  signature:
1043    - ark::coretypes::String*  # resulting string
1044    - ark::ObjectHeader*       # src string
1045    - int32_t                  # begin index
1046    - int32_t                  # end index
1047
1048- name: SubStringFromStringTlabCompressed
1049  entrypoint: SubStringFromStringTlabCompressed
1050  bridge: none
1051  properties: [irtoc]
1052  signature:
1053    - ark::coretypes::String*  # resulting string
1054    - ark::ObjectHeader*       # src string
1055    - int32_t                  # begin index
1056    - int32_t                  # end index
1057
1058- name: SubStringFromStringSlowPath
1059  entrypoint: SubStringFromStringEntrypoint
1060  bridge: slow_path
1061  properties: []
1062  signature:
1063    - ark::coretypes::String*  # resulting string
1064    - ark::ObjectHeader*       # src string
1065    - int32_t                  # begin index
1066    - int32_t                  # end index
1067
1068- name: SubStringFromStringOddSaved
1069  entrypoint: SubStringFromStringEntrypoint
1070  bridge: odd_saved
1071  properties: []
1072  signature:
1073    - ark::coretypes::String*  # resulting string
1074    - ark::ObjectHeader*       # src string
1075    - int32_t                  # begin index
1076    - int32_t                  # end index
1077
1078- name: StringGetCharsTlab
1079  entrypoint: StringGetCharsTlab
1080  bridge: none
1081  properties: [irtoc]
1082  signature:
1083    - ark::coretypes::Array*   # resulting array of utf16 chars
1084    - ark::ObjectHeader*       # src string
1085    - int32_t                  # begin index
1086    - int32_t                  # end index
1087    - ark::Class*              # Array u16 class pointer
1088
1089- name: StringGetCharsTlabCompressed
1090  entrypoint: StringGetCharsTlabCompressed
1091  bridge: none
1092  properties: [irtoc]
1093  signature:
1094    - ark::coretypes::Array*   # resulting array of utf16 chars
1095    - ark::ObjectHeader*       # src string
1096    - int32_t                  # begin index
1097    - int32_t                  # end index
1098    - ark::Class*              # Array u16 class pointer
1099
1100- name: StringGetCharsSlowPath
1101  entrypoint: StringGetCharsEntrypoint
1102  bridge: slow_path
1103  properties: []
1104  signature:
1105    - ark::coretypes::Array*   # resulting array of utf16 chars
1106    - ark::ObjectHeader*       # src string
1107    - int32_t                  # begin index
1108    - int32_t                  # end index
1109
1110- name: StringGetChars4Arg
1111  entrypoint: StringGetCharsEntrypoint
1112  bridge: odd_saved4
1113  properties: []
1114  signature:
1115    - ark::coretypes::Array*   # resulting array of utf16 chars
1116    - ark::ObjectHeader*       # src string
1117    - int32_t                  # begin index
1118    - int32_t                  # end index
1119
1120- name: MemmoveInterposer        # "bridge" to avoid generating the excessive prologue
1121  entrypoint: MemmoveInterposer
1122  bridge: none
1123  properties: [irtoc]
1124  signature:
1125    - void
1126    - void*
1127    - void*
1128    - uint32_t
1129
1130- name: ArrayCopyTo_1b
1131  entrypoint: ArrayCopyTo1B
1132  bridge: none
1133  properties: [irtoc]
1134  signature:
1135    - void
1136    - ark::ObjectHeader*
1137    - ark::ObjectHeader*
1138    - int32_t
1139    - int32_t
1140    - int32_t
1141
1142- name: ArrayCopyTo_2b
1143  entrypoint: ArrayCopyTo2B
1144  bridge: none
1145  properties: [irtoc]
1146  signature:
1147    - void
1148    - ark::ObjectHeader*
1149    - ark::ObjectHeader*
1150    - int32_t
1151    - int32_t
1152    - int32_t
1153
1154- name: ArrayCopyTo_4b
1155  entrypoint: ArrayCopyTo4B
1156  bridge: none
1157  properties: [irtoc]
1158  signature:
1159    - void
1160    - ark::ObjectHeader*
1161    - ark::ObjectHeader*
1162    - int32_t
1163    - int32_t
1164    - int32_t
1165
1166- name: ArrayCopyTo_8b
1167  entrypoint: ArrayCopyTo8B
1168  bridge: none
1169  properties: [irtoc]
1170  signature:
1171    - void
1172    - ark::ObjectHeader*
1173    - ark::ObjectHeader*
1174    - int32_t
1175    - int32_t
1176    - int32_t
1177
1178- name: ArrayCopyToUnchecked_1Byte
1179  entrypoint: ArrayCopyToUnchecked1Byte
1180  bridge: none
1181  properties: [irtoc]
1182  signature:
1183    - void
1184    - ark::ObjectHeader*
1185    - ark::ObjectHeader*
1186    - int32_t
1187    - int32_t
1188    - int32_t
1189
1190- name: ArrayCopyToUnchecked_2Byte
1191  entrypoint: ArrayCopyToUnchecked2Byte
1192  bridge: none
1193  properties: [irtoc]
1194  signature:
1195    - void
1196    - ark::ObjectHeader*
1197    - ark::ObjectHeader*
1198    - int32_t
1199    - int32_t
1200    - int32_t
1201
1202- name: ArrayCopyToUnchecked_4Byte
1203  entrypoint: ArrayCopyToUnchecked4Byte
1204  bridge: none
1205  properties: [irtoc]
1206  signature:
1207    - void
1208    - ark::ObjectHeader*
1209    - ark::ObjectHeader*
1210    - int32_t
1211    - int32_t
1212    - int32_t
1213
1214- name: ArrayCopyToUnchecked_8Byte
1215  entrypoint: ArrayCopyToUnchecked8Byte
1216  bridge: none
1217  properties: [irtoc]
1218  signature:
1219    - void
1220    - ark::ObjectHeader*
1221    - ark::ObjectHeader*
1222    - int32_t
1223    - int32_t
1224    - int32_t
1225
1226- name: ArraycopyBigloop
1227  entrypoint: TryBigCopy
1228  bridge: none
1229  properties: [irtoc]
1230  signature:
1231    - void
1232    - void*
1233    - void*
1234    - int32_t
1235
1236- name: StringConcat2Tlab
1237  entrypoint: StringConcat2Tlab
1238  bridge: none
1239  properties: [irtoc]
1240  signature:
1241    - ark::coretypes::String*
1242    - ark::coretypes::String*
1243    - ark::coretypes::String*
1244
1245- name: StringConcat3Tlab
1246  entrypoint: StringConcat3Tlab
1247  bridge: none
1248  properties: [irtoc]
1249  signature:
1250    - ark::coretypes::String*
1251    - ark::coretypes::String*
1252    - ark::coretypes::String*
1253    - ark::coretypes::String*
1254
1255- name: StringConcat4Tlab
1256  entrypoint: StringConcat4Tlab
1257  bridge: none
1258  properties: [irtoc]
1259  signature:
1260    - ark::coretypes::String*
1261    - ark::coretypes::String*
1262    - ark::coretypes::String*
1263    - ark::coretypes::String*
1264    - ark::coretypes::String*
1265
1266- name: StringConcat2SlowPath
1267  entrypoint: CoreStringConcat2
1268  bridge: slow_path
1269  properties: []
1270  signature:
1271    - ark::coretypes::String*
1272    - ark::coretypes::String*
1273    - ark::coretypes::String*
1274
1275- name: StringConcat3SlowPath
1276  entrypoint: CoreStringConcat3
1277  bridge: slow_path
1278  properties: []
1279  signature:
1280    - ark::coretypes::String*
1281    - ark::coretypes::String*
1282    - ark::coretypes::String*
1283    - ark::coretypes::String*
1284
1285- name: StringConcat4SlowPath
1286  entrypoint: CoreStringConcat4
1287  bridge: slow_path
1288  properties: []
1289  signature:
1290    - ark::coretypes::String*
1291    - ark::coretypes::String*
1292    - ark::coretypes::String*
1293    - ark::coretypes::String*
1294    - ark::coretypes::String*
1295
1296- name: StringConcat2Usual
1297  entrypoint: CoreStringConcat2
1298  bridge: entrypoint
1299  properties: []
1300  signature:
1301    - ark::coretypes::String*
1302    - ark::coretypes::String*
1303    - ark::coretypes::String*
1304
1305- name: StringConcat3OddSaved
1306  entrypoint: CoreStringConcat3
1307  bridge: odd_saved
1308  properties: []
1309  signature:
1310    - ark::coretypes::String*
1311    - ark::coretypes::String*
1312    - ark::coretypes::String*
1313    - ark::coretypes::String*
1314
1315- name: StringConcat4Usual
1316  entrypoint: CoreStringConcat4
1317  bridge: entrypoint
1318  properties: []
1319  signature:
1320    - ark::coretypes::String*
1321    - ark::coretypes::String*
1322    - ark::coretypes::String*
1323    - ark::coretypes::String*
1324    - ark::coretypes::String*
1325
1326- name: StringCompareTo
1327  entrypoint: StringCompareTo
1328  bridge: none
1329  properties: [irtoc]
1330  signature:
1331    - int32_t                  # compare result
1332    - ark::coretypes::String*  # first string
1333    - ark::coretypes::String*  # second string
1334