256 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\ |
256 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\ |
257 template(base_name, "base") \ |
257 template(base_name, "base") \ |
258 /* Type Annotations (JDK 8 and above) */ \ |
258 /* Type Annotations (JDK 8 and above) */ \ |
259 template(type_annotations_name, "typeAnnotations") \ |
259 template(type_annotations_name, "typeAnnotations") \ |
260 \ |
260 \ |
|
261 /* Intrinsic Annotation (JDK 9 and above) */ \ |
|
262 template(jdk_internal_HotSpotIntrinsicCandidate_signature, "Ljdk/internal/HotSpotIntrinsicCandidate;") \ |
261 \ |
263 \ |
262 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ |
264 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ |
263 template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \ |
265 template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \ |
264 template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \ |
266 template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \ |
265 template(java_lang_invoke_DirectMethodHandle, "java/lang/invoke/DirectMethodHandle") \ |
267 template(java_lang_invoke_DirectMethodHandle, "java/lang/invoke/DirectMethodHandle") \ |
343 template(throwIllegalAccessError_name, "throwIllegalAccessError") \ |
345 template(throwIllegalAccessError_name, "throwIllegalAccessError") \ |
344 template(getFromClass_name, "getFromClass") \ |
346 template(getFromClass_name, "getFromClass") \ |
345 template(dispatch_name, "dispatch") \ |
347 template(dispatch_name, "dispatch") \ |
346 template(getSystemClassLoader_name, "getSystemClassLoader") \ |
348 template(getSystemClassLoader_name, "getSystemClassLoader") \ |
347 template(fillInStackTrace_name, "fillInStackTrace") \ |
349 template(fillInStackTrace_name, "fillInStackTrace") \ |
348 template(fillInStackTrace0_name, "fillInStackTrace0") \ |
|
349 template(getCause_name, "getCause") \ |
350 template(getCause_name, "getCause") \ |
350 template(initCause_name, "initCause") \ |
351 template(initCause_name, "initCause") \ |
351 template(setProperty_name, "setProperty") \ |
352 template(setProperty_name, "setProperty") \ |
352 template(getProperty_name, "getProperty") \ |
353 template(getProperty_name, "getProperty") \ |
353 template(context_name, "context") \ |
354 template(context_name, "context") \ |
633 // intentions here about kinds of symbols (class vs. name vs. signature). |
634 // intentions here about kinds of symbols (class vs. name vs. signature). |
634 // |
635 // |
635 // The F_xx is one of the Flags enum; see below. |
636 // The F_xx is one of the Flags enum; see below. |
636 // |
637 // |
637 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t)) |
638 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t)) |
|
639 // |
|
640 // |
|
641 // There are two types of intrinsic methods: (1) Library intrinsics and (2) bytecode intrinsics. |
|
642 // |
|
643 // (1) A library intrinsic method may be replaced with hand-crafted assembly code, |
|
644 // with hand-crafted compiler IR, or with a combination of the two. The semantics |
|
645 // of the replacement code may differ from the semantics of the replaced code. |
|
646 // |
|
647 // (2) Bytecode intrinsic methods are not replaced by special code, but they are |
|
648 // treated in some other special way by the compiler. For example, the compiler |
|
649 // may delay inlining for some String-related intrinsic methods (e.g., some methods |
|
650 // defined in the StringBuilder and StringBuffer classes, see |
|
651 // Compile::should_delay_string_inlining() for more details). |
|
652 // |
|
653 // Due to the difference between the semantics of an intrinsic method as defined |
|
654 // in the (Java) source code and the semantics of the method as defined |
|
655 // by the code in the VM, intrinsic methods must be explicitly marked. |
|
656 // |
|
657 // Intrinsic methods are marked by the jdk.internal.HotSpotIntrinsicCandidate |
|
658 // annotation. If CheckIntrinsics is enabled, the VM performs the following |
|
659 // checks when a class C is loaded: (1) all intrinsics defined by the VM for |
|
660 // class C are present in the loaded class file and are marked; |
|
661 // (2) an intrinsic is defined by the VM for all marked methods of class C. |
|
662 // |
|
663 // If a mismatch is detected for a method, the VM behaves differently depending |
|
664 // on the type of build. A fastdebug build exits and reports an error on a mismatch. |
|
665 // A product build will not replace an unmarked library intrinsic method with |
|
666 // hand-crafted code, that is, unmarked library intrinsics are treated as ordinary |
|
667 // methods in a product build. The special treatment of a bytecode intrinsic method |
|
668 // persists even if the method not marked. |
|
669 // |
|
670 // When adding an intrinsic for a method, please make sure to appropriately |
|
671 // annotate the method in the source code. The list below contains all |
|
672 // library intrinsics followed by bytecode intrinsics. Please also make sure to |
|
673 // add the declaration of the intrinsic to the approriate section of the list. |
638 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias) \ |
674 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias) \ |
|
675 /* (1) Library intrinsics */ \ |
639 do_intrinsic(_hashCode, java_lang_Object, hashCode_name, void_int_signature, F_R) \ |
676 do_intrinsic(_hashCode, java_lang_Object, hashCode_name, void_int_signature, F_R) \ |
640 do_name( hashCode_name, "hashCode") \ |
677 do_name( hashCode_name, "hashCode") \ |
641 do_intrinsic(_getClass, java_lang_Object, getClass_name, void_class_signature, F_R) \ |
678 do_intrinsic(_getClass, java_lang_Object, getClass_name, void_class_signature, F_R) \ |
642 do_name( getClass_name, "getClass") \ |
679 do_name( getClass_name, "getClass") \ |
643 do_intrinsic(_clone, java_lang_Object, clone_name, void_object_signature, F_R) \ |
680 do_intrinsic(_clone, java_lang_Object, clone_name, void_object_signature, F_R) \ |
790 do_intrinsic(_checkIndex, java_nio_Buffer, checkIndex_name, int_int_signature, F_R) \ |
827 do_intrinsic(_checkIndex, java_nio_Buffer, checkIndex_name, int_int_signature, F_R) \ |
791 do_name( checkIndex_name, "checkIndex") \ |
828 do_name( checkIndex_name, "checkIndex") \ |
792 \ |
829 \ |
793 do_class(sun_nio_cs_iso8859_1_Encoder, "sun/nio/cs/ISO_8859_1$Encoder") \ |
830 do_class(sun_nio_cs_iso8859_1_Encoder, "sun/nio/cs/ISO_8859_1$Encoder") \ |
794 do_intrinsic(_encodeISOArray, sun_nio_cs_iso8859_1_Encoder, encodeISOArray_name, encodeISOArray_signature, F_S) \ |
831 do_intrinsic(_encodeISOArray, sun_nio_cs_iso8859_1_Encoder, encodeISOArray_name, encodeISOArray_signature, F_S) \ |
795 do_name( encodeISOArray_name, "encodeISOArray") \ |
832 do_name( encodeISOArray_name, "implEncodeISOArray") \ |
796 do_signature(encodeISOArray_signature, "([CI[BII)I") \ |
833 do_signature(encodeISOArray_signature, "([CI[BII)I") \ |
797 \ |
834 \ |
798 do_class(java_math_BigInteger, "java/math/BigInteger") \ |
835 do_class(java_math_BigInteger, "java/math/BigInteger") \ |
799 do_intrinsic(_multiplyToLen, java_math_BigInteger, multiplyToLen_name, multiplyToLen_signature, F_S) \ |
836 do_intrinsic(_multiplyToLen, java_math_BigInteger, multiplyToLen_name, multiplyToLen_signature, F_S) \ |
800 do_name( multiplyToLen_name, "multiplyToLen") \ |
837 do_name( multiplyToLen_name, "implMultiplyToLen") \ |
801 do_signature(multiplyToLen_signature, "([II[II[I)[I") \ |
838 do_signature(multiplyToLen_signature, "([II[II[I)[I") \ |
802 \ |
839 \ |
803 do_intrinsic(_squareToLen, java_math_BigInteger, squareToLen_name, squareToLen_signature, F_S) \ |
840 do_intrinsic(_squareToLen, java_math_BigInteger, squareToLen_name, squareToLen_signature, F_S) \ |
804 do_name( squareToLen_name, "implSquareToLen") \ |
841 do_name( squareToLen_name, "implSquareToLen") \ |
805 do_signature(squareToLen_signature, "([II[II)[I") \ |
842 do_signature(squareToLen_signature, "([II[II)[I") \ |
821 \ |
858 \ |
822 /* support for com.sun.crypto.provider.AESCrypt and some of its callers */ \ |
859 /* support for com.sun.crypto.provider.AESCrypt and some of its callers */ \ |
823 do_class(com_sun_crypto_provider_aescrypt, "com/sun/crypto/provider/AESCrypt") \ |
860 do_class(com_sun_crypto_provider_aescrypt, "com/sun/crypto/provider/AESCrypt") \ |
824 do_intrinsic(_aescrypt_encryptBlock, com_sun_crypto_provider_aescrypt, encryptBlock_name, byteArray_int_byteArray_int_signature, F_R) \ |
861 do_intrinsic(_aescrypt_encryptBlock, com_sun_crypto_provider_aescrypt, encryptBlock_name, byteArray_int_byteArray_int_signature, F_R) \ |
825 do_intrinsic(_aescrypt_decryptBlock, com_sun_crypto_provider_aescrypt, decryptBlock_name, byteArray_int_byteArray_int_signature, F_R) \ |
862 do_intrinsic(_aescrypt_decryptBlock, com_sun_crypto_provider_aescrypt, decryptBlock_name, byteArray_int_byteArray_int_signature, F_R) \ |
826 do_name( encryptBlock_name, "encryptBlock") \ |
863 do_name( encryptBlock_name, "implEncryptBlock") \ |
827 do_name( decryptBlock_name, "decryptBlock") \ |
864 do_name( decryptBlock_name, "implDecryptBlock") \ |
828 do_signature(byteArray_int_byteArray_int_signature, "([BI[BI)V") \ |
865 do_signature(byteArray_int_byteArray_int_signature, "([BI[BI)V") \ |
829 \ |
866 \ |
830 do_class(com_sun_crypto_provider_cipherBlockChaining, "com/sun/crypto/provider/CipherBlockChaining") \ |
867 do_class(com_sun_crypto_provider_cipherBlockChaining, "com/sun/crypto/provider/CipherBlockChaining") \ |
831 do_intrinsic(_cipherBlockChaining_encryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, encrypt_name, byteArray_int_int_byteArray_int_signature, F_R) \ |
868 do_intrinsic(_cipherBlockChaining_encryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, encrypt_name, byteArray_int_int_byteArray_int_signature, F_R) \ |
832 do_intrinsic(_cipherBlockChaining_decryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, decrypt_name, byteArray_int_int_byteArray_int_signature, F_R) \ |
869 do_intrinsic(_cipherBlockChaining_decryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, decrypt_name, byteArray_int_int_byteArray_int_signature, F_R) \ |
833 do_name( encrypt_name, "encrypt") \ |
870 do_name( encrypt_name, "implEncrypt") \ |
834 do_name( decrypt_name, "decrypt") \ |
871 do_name( decrypt_name, "implDecrypt") \ |
835 do_signature(byteArray_int_int_byteArray_int_signature, "([BII[BI)I") \ |
872 do_signature(byteArray_int_int_byteArray_int_signature, "([BII[BI)I") \ |
836 \ |
873 \ |
837 /* support for sun.security.provider.SHA */ \ |
874 /* support for sun.security.provider.SHA */ \ |
838 do_class(sun_security_provider_sha, "sun/security/provider/SHA") \ |
875 do_class(sun_security_provider_sha, "sun/security/provider/SHA") \ |
839 do_intrinsic(_sha_implCompress, sun_security_provider_sha, implCompress_name, implCompress_signature, F_R) \ |
876 do_intrinsic(_sha_implCompress, sun_security_provider_sha, implCompress_name, implCompress_signature, F_R) \ |
840 do_name( implCompress_name, "implCompress") \ |
877 do_name( implCompress_name, "implCompress0") \ |
841 do_signature(implCompress_signature, "([BI)V") \ |
878 do_signature(implCompress_signature, "([BI)V") \ |
842 \ |
879 \ |
843 /* support for sun.security.provider.SHA2 */ \ |
880 /* support for sun.security.provider.SHA2 */ \ |
844 do_class(sun_security_provider_sha2, "sun/security/provider/SHA2") \ |
881 do_class(sun_security_provider_sha2, "sun/security/provider/SHA2") \ |
845 do_intrinsic(_sha2_implCompress, sun_security_provider_sha2, implCompress_name, implCompress_signature, F_R) \ |
882 do_intrinsic(_sha2_implCompress, sun_security_provider_sha2, implCompress_name, implCompress_signature, F_R) \ |
849 do_intrinsic(_sha5_implCompress, sun_security_provider_sha5, implCompress_name, implCompress_signature, F_R) \ |
886 do_intrinsic(_sha5_implCompress, sun_security_provider_sha5, implCompress_name, implCompress_signature, F_R) \ |
850 \ |
887 \ |
851 /* support for sun.security.provider.DigestBase */ \ |
888 /* support for sun.security.provider.DigestBase */ \ |
852 do_class(sun_security_provider_digestbase, "sun/security/provider/DigestBase") \ |
889 do_class(sun_security_provider_digestbase, "sun/security/provider/DigestBase") \ |
853 do_intrinsic(_digestBase_implCompressMB, sun_security_provider_digestbase, implCompressMB_name, implCompressMB_signature, F_R) \ |
890 do_intrinsic(_digestBase_implCompressMB, sun_security_provider_digestbase, implCompressMB_name, implCompressMB_signature, F_R) \ |
854 do_name( implCompressMB_name, "implCompressMultiBlock") \ |
891 do_name( implCompressMB_name, "implCompressMultiBlock0") \ |
855 do_signature(implCompressMB_signature, "([BII)I") \ |
892 do_signature(implCompressMB_signature, "([BII)I") \ |
856 \ |
893 \ |
857 /* support for com.sun.crypto.provider.GHASH */ \ |
894 /* support for com.sun.crypto.provider.GHASH */ \ |
858 do_class(com_sun_crypto_provider_ghash, "com/sun/crypto/provider/GHASH") \ |
895 do_class(com_sun_crypto_provider_ghash, "com/sun/crypto/provider/GHASH") \ |
859 do_intrinsic(_ghash_processBlocks, com_sun_crypto_provider_ghash, processBlocks_name, ghash_processBlocks_signature, F_S) \ |
896 do_intrinsic(_ghash_processBlocks, com_sun_crypto_provider_ghash, processBlocks_name, ghash_processBlocks_signature, F_S) \ |
863 /* support for java.util.zip */ \ |
900 /* support for java.util.zip */ \ |
864 do_class(java_util_zip_CRC32, "java/util/zip/CRC32") \ |
901 do_class(java_util_zip_CRC32, "java/util/zip/CRC32") \ |
865 do_intrinsic(_updateCRC32, java_util_zip_CRC32, update_name, int2_int_signature, F_SN) \ |
902 do_intrinsic(_updateCRC32, java_util_zip_CRC32, update_name, int2_int_signature, F_SN) \ |
866 do_name( update_name, "update") \ |
903 do_name( update_name, "update") \ |
867 do_intrinsic(_updateBytesCRC32, java_util_zip_CRC32, updateBytes_name, updateBytes_signature, F_SN) \ |
904 do_intrinsic(_updateBytesCRC32, java_util_zip_CRC32, updateBytes_name, updateBytes_signature, F_SN) \ |
868 do_name( updateBytes_name, "updateBytes") \ |
905 do_name( updateBytes_name, "updateBytes0") \ |
869 do_signature(updateBytes_signature, "(I[BII)I") \ |
906 do_signature(updateBytes_signature, "(I[BII)I") \ |
870 do_intrinsic(_updateByteBufferCRC32, java_util_zip_CRC32, updateByteBuffer_name, updateByteBuffer_signature, F_SN) \ |
907 do_intrinsic(_updateByteBufferCRC32, java_util_zip_CRC32, updateByteBuffer_name, updateByteBuffer_signature, F_SN) \ |
871 do_name( updateByteBuffer_name, "updateByteBuffer") \ |
908 do_name( updateByteBuffer_name, "updateByteBuffer0") \ |
872 do_signature(updateByteBuffer_signature, "(IJII)I") \ |
909 do_signature(updateByteBuffer_signature, "(IJII)I") \ |
873 \ |
910 \ |
874 /* support for java.util.zip.CRC32C */ \ |
911 /* support for java.util.zip.CRC32C */ \ |
875 do_class(java_util_zip_CRC32C, "java/util/zip/CRC32C") \ |
912 do_class(java_util_zip_CRC32C, "java/util/zip/CRC32C") \ |
876 do_intrinsic(_updateBytesCRC32C, java_util_zip_CRC32C, updateBytes_name, updateBytes_signature, F_S) \ |
913 do_intrinsic(_updateBytesCRC32C, java_util_zip_CRC32C, updateBytes_C_name, updateBytes_signature, F_S) \ |
877 do_intrinsic(_updateDirectByteBufferCRC32C, java_util_zip_CRC32C, updateDirectByteBuffer_name, updateByteBuffer_signature, F_S) \ |
914 do_name( updateBytes_C_name, "updateBytes") \ |
878 do_name( updateDirectByteBuffer_name, "updateDirectByteBuffer") \ |
915 do_intrinsic(_updateDirectByteBufferCRC32C, java_util_zip_CRC32C, updateDirectByteBuffer_C_name, updateByteBuffer_signature, F_S) \ |
|
916 do_name( updateDirectByteBuffer_C_name, "updateDirectByteBuffer") \ |
879 \ |
917 \ |
880 /* support for sun.misc.Unsafe */ \ |
918 /* support for sun.misc.Unsafe */ \ |
881 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ |
919 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ |
882 \ |
920 \ |
883 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ |
921 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ |
884 do_name( allocateInstance_name, "allocateInstance") \ |
922 do_name( allocateInstance_name, "allocateInstance") \ |
885 do_signature(allocateInstance_signature, "(Ljava/lang/Class;)Ljava/lang/Object;") \ |
923 do_signature(allocateInstance_signature, "(Ljava/lang/Class;)Ljava/lang/Object;") \ |
886 do_intrinsic(_copyMemory, sun_misc_Unsafe, copyMemory_name, copyMemory_signature, F_RN) \ |
924 do_intrinsic(_copyMemory, sun_misc_Unsafe, copyMemory_name, copyMemory_signature, F_RN) \ |
887 do_name( copyMemory_name, "copyMemory") \ |
925 do_name( copyMemory_name, "copyMemory") \ |
888 do_signature(copyMemory_signature, "(Ljava/lang/Object;JLjava/lang/Object;JJ)V") \ |
926 do_signature(copyMemory_signature, "(Ljava/lang/Object;JLjava/lang/Object;JJ)V") \ |
889 do_intrinsic(_park, sun_misc_Unsafe, park_name, park_signature, F_RN) \ |
|
890 do_name( park_name, "park") \ |
|
891 do_signature(park_signature, "(ZJ)V") \ |
|
892 do_intrinsic(_unpark, sun_misc_Unsafe, unpark_name, unpark_signature, F_RN) \ |
|
893 do_name( unpark_name, "unpark") \ |
|
894 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \ |
|
895 do_intrinsic(_loadFence, sun_misc_Unsafe, loadFence_name, loadFence_signature, F_RN) \ |
927 do_intrinsic(_loadFence, sun_misc_Unsafe, loadFence_name, loadFence_signature, F_RN) \ |
896 do_name( loadFence_name, "loadFence") \ |
928 do_name( loadFence_name, "loadFence") \ |
897 do_alias( loadFence_signature, void_method_signature) \ |
929 do_alias( loadFence_signature, void_method_signature) \ |
898 do_intrinsic(_storeFence, sun_misc_Unsafe, storeFence_name, storeFence_signature, F_RN) \ |
930 do_intrinsic(_storeFence, sun_misc_Unsafe, storeFence_name, storeFence_signature, F_RN) \ |
899 do_name( storeFence_name, "storeFence") \ |
931 do_name( storeFence_name, "storeFence") \ |
1072 do_name( getAndSetLong_name, "getAndSetLong") \ |
1104 do_name( getAndSetLong_name, "getAndSetLong") \ |
1073 do_alias( getAndSetLong_signature, /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature) \ |
1105 do_alias( getAndSetLong_signature, /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature) \ |
1074 do_intrinsic(_getAndSetObject, sun_misc_Unsafe, getAndSetObject_name, getAndSetObject_signature, F_R)\ |
1106 do_intrinsic(_getAndSetObject, sun_misc_Unsafe, getAndSetObject_name, getAndSetObject_signature, F_R)\ |
1075 do_name( getAndSetObject_name, "getAndSetObject") \ |
1107 do_name( getAndSetObject_name, "getAndSetObject") \ |
1076 do_signature(getAndSetObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \ |
1108 do_signature(getAndSetObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \ |
1077 /*== LAST_COMPILER_INLINE*/ \ |
1109 \ |
1078 /*the compiler does have special inlining code for these; bytecode inline is just fine */ \ |
1110 /* (2) Bytecode intrinsics */ \ |
1079 \ |
1111 \ |
1080 do_intrinsic(_fillInStackTrace, java_lang_Throwable, fillInStackTrace_name, void_throwable_signature, F_RNY) \ |
1112 do_intrinsic(_park, sun_misc_Unsafe, park_name, park_signature, F_RN) \ |
1081 \ |
1113 do_name( park_name, "park") \ |
|
1114 do_signature(park_signature, "(ZJ)V") \ |
|
1115 do_intrinsic(_unpark, sun_misc_Unsafe, unpark_name, unpark_signature, F_RN) \ |
|
1116 do_name( unpark_name, "unpark") \ |
|
1117 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \ |
1082 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \ |
1118 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \ |
1083 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \ |
1119 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \ |
1084 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \ |
1120 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \ |
1085 \ |
1121 \ |
1086 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \ |
1122 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \ |