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