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