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