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