921 do_intrinsic(_updateBytesCRC32, java_util_zip_CRC32, updateBytes_name, updateBytes_signature, F_SN) \ 922 do_name( updateBytes_name, "updateBytes0") \ 923 do_signature(updateBytes_signature, "(I[BII)I") \ 924 do_intrinsic(_updateByteBufferCRC32, java_util_zip_CRC32, updateByteBuffer_name, updateByteBuffer_signature, F_SN) \ 925 do_name( updateByteBuffer_name, "updateByteBuffer0") \ 926 do_signature(updateByteBuffer_signature, "(IJII)I") \ 927 \ 928 /* support for java.util.zip.CRC32C */ \ 929 do_class(java_util_zip_CRC32C, "java/util/zip/CRC32C") \ 930 do_intrinsic(_updateBytesCRC32C, java_util_zip_CRC32C, updateBytes_C_name, updateBytes_signature, F_S) \ 931 do_name( updateBytes_C_name, "updateBytes") \ 932 do_intrinsic(_updateDirectByteBufferCRC32C, java_util_zip_CRC32C, updateDirectByteBuffer_C_name, updateByteBuffer_signature, F_S) \ 933 do_name( updateDirectByteBuffer_C_name, "updateDirectByteBuffer") \ 934 \ 935 /* support for java.util.zip.Adler32 */ \ 936 do_class(java_util_zip_Adler32, "java/util/zip/Adler32") \ 937 do_intrinsic(_updateBytesAdler32, java_util_zip_Adler32, updateBytes_C_name, updateBytes_signature, F_SN) \ 938 do_intrinsic(_updateByteBufferAdler32, java_util_zip_Adler32, updateByteBuffer_A_name, updateByteBuffer_signature, F_SN) \ 939 do_name( updateByteBuffer_A_name, "updateByteBuffer") \ 940 \ 941 /* support for sun.misc.Unsafe */ \ 942 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ 943 \ 944 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ 945 do_name( allocateInstance_name, "allocateInstance") \ 946 do_signature(allocateInstance_signature, "(Ljava/lang/Class;)Ljava/lang/Object;") \ 947 do_intrinsic(_copyMemory, sun_misc_Unsafe, copyMemory_name, copyMemory_signature, F_RN) \ 948 do_name( copyMemory_name, "copyMemory") \ 949 do_signature(copyMemory_signature, "(Ljava/lang/Object;JLjava/lang/Object;JJ)V") \ 950 do_intrinsic(_loadFence, sun_misc_Unsafe, loadFence_name, loadFence_signature, F_RN) \ 951 do_name( loadFence_name, "loadFence") \ 952 do_alias( loadFence_signature, void_method_signature) \ 953 do_intrinsic(_storeFence, sun_misc_Unsafe, storeFence_name, storeFence_signature, F_RN) \ 954 do_name( storeFence_name, "storeFence") \ 955 do_alias( storeFence_signature, void_method_signature) \ 956 do_intrinsic(_fullFence, sun_misc_Unsafe, fullFence_name, fullFence_signature, F_RN) \ 957 do_name( fullFence_name, "fullFence") \ 958 do_alias( fullFence_signature, void_method_signature) \ 959 \ 960 /* Custom branch frequencies profiling support for JSR292 */ \ 961 do_class(java_lang_invoke_MethodHandleImpl, "java/lang/invoke/MethodHandleImpl") \ 962 do_intrinsic(_profileBoolean, java_lang_invoke_MethodHandleImpl, profileBoolean_name, profileBoolean_signature, F_S) \ 963 do_name( profileBoolean_name, "profileBoolean") \ 964 do_signature(profileBoolean_signature, "(Z[I)Z") \ 965 do_intrinsic(_isCompileConstant, java_lang_invoke_MethodHandleImpl, isCompileConstant_name, isCompileConstant_signature, F_S) \ 966 do_name( isCompileConstant_name, "isCompileConstant") \ 967 do_alias( isCompileConstant_signature, object_boolean_signature) \ 968 \ 969 /* unsafe memory references (there are a lot of them...) */ \ 970 do_signature(getObject_signature, "(Ljava/lang/Object;J)Ljava/lang/Object;") \ 971 do_signature(putObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)V") \ 972 do_signature(getBoolean_signature, "(Ljava/lang/Object;J)Z") \ 973 do_signature(putBoolean_signature, "(Ljava/lang/Object;JZ)V") \ 974 do_signature(getByte_signature, "(Ljava/lang/Object;J)B") \ 975 do_signature(putByte_signature, "(Ljava/lang/Object;JB)V") \ 976 do_signature(getShort_signature, "(Ljava/lang/Object;J)S") \ 979 do_signature(putChar_signature, "(Ljava/lang/Object;JC)V") \ 980 do_signature(getInt_signature, "(Ljava/lang/Object;J)I") \ 981 do_signature(putInt_signature, "(Ljava/lang/Object;JI)V") \ 982 do_signature(getLong_signature, "(Ljava/lang/Object;J)J") \ 983 do_signature(putLong_signature, "(Ljava/lang/Object;JJ)V") \ 984 do_signature(getFloat_signature, "(Ljava/lang/Object;J)F") \ 985 do_signature(putFloat_signature, "(Ljava/lang/Object;JF)V") \ 986 do_signature(getDouble_signature, "(Ljava/lang/Object;J)D") \ 987 do_signature(putDouble_signature, "(Ljava/lang/Object;JD)V") \ 988 \ 989 do_name(getObject_name,"getObject") do_name(putObject_name,"putObject") \ 990 do_name(getBoolean_name,"getBoolean") do_name(putBoolean_name,"putBoolean") \ 991 do_name(getByte_name,"getByte") do_name(putByte_name,"putByte") \ 992 do_name(getShort_name,"getShort") do_name(putShort_name,"putShort") \ 993 do_name(getChar_name,"getChar") do_name(putChar_name,"putChar") \ 994 do_name(getInt_name,"getInt") do_name(putInt_name,"putInt") \ 995 do_name(getLong_name,"getLong") do_name(putLong_name,"putLong") \ 996 do_name(getFloat_name,"getFloat") do_name(putFloat_name,"putFloat") \ 997 do_name(getDouble_name,"getDouble") do_name(putDouble_name,"putDouble") \ 998 \ 999 do_intrinsic(_getObject, sun_misc_Unsafe, getObject_name, getObject_signature, F_RN) \ 1000 do_intrinsic(_getBoolean, sun_misc_Unsafe, getBoolean_name, getBoolean_signature, F_RN) \ 1001 do_intrinsic(_getByte, sun_misc_Unsafe, getByte_name, getByte_signature, F_RN) \ 1002 do_intrinsic(_getShort, sun_misc_Unsafe, getShort_name, getShort_signature, F_RN) \ 1003 do_intrinsic(_getChar, sun_misc_Unsafe, getChar_name, getChar_signature, F_RN) \ 1004 do_intrinsic(_getInt, sun_misc_Unsafe, getInt_name, getInt_signature, F_RN) \ 1005 do_intrinsic(_getLong, sun_misc_Unsafe, getLong_name, getLong_signature, F_RN) \ 1006 do_intrinsic(_getFloat, sun_misc_Unsafe, getFloat_name, getFloat_signature, F_RN) \ 1007 do_intrinsic(_getDouble, sun_misc_Unsafe, getDouble_name, getDouble_signature, F_RN) \ 1008 do_intrinsic(_putObject, sun_misc_Unsafe, putObject_name, putObject_signature, F_RN) \ 1009 do_intrinsic(_putBoolean, sun_misc_Unsafe, putBoolean_name, putBoolean_signature, F_RN) \ 1010 do_intrinsic(_putByte, sun_misc_Unsafe, putByte_name, putByte_signature, F_RN) \ 1011 do_intrinsic(_putShort, sun_misc_Unsafe, putShort_name, putShort_signature, F_RN) \ 1012 do_intrinsic(_putChar, sun_misc_Unsafe, putChar_name, putChar_signature, F_RN) \ 1013 do_intrinsic(_putInt, sun_misc_Unsafe, putInt_name, putInt_signature, F_RN) \ 1014 do_intrinsic(_putLong, sun_misc_Unsafe, putLong_name, putLong_signature, F_RN) \ 1015 do_intrinsic(_putFloat, sun_misc_Unsafe, putFloat_name, putFloat_signature, F_RN) \ 1016 do_intrinsic(_putDouble, sun_misc_Unsafe, putDouble_name, putDouble_signature, F_RN) \ 1017 \ 1018 do_name(getObjectVolatile_name,"getObjectVolatile") do_name(putObjectVolatile_name,"putObjectVolatile") \ 1019 do_name(getBooleanVolatile_name,"getBooleanVolatile") do_name(putBooleanVolatile_name,"putBooleanVolatile") \ 1020 do_name(getByteVolatile_name,"getByteVolatile") do_name(putByteVolatile_name,"putByteVolatile") \ 1021 do_name(getShortVolatile_name,"getShortVolatile") do_name(putShortVolatile_name,"putShortVolatile") \ 1022 do_name(getCharVolatile_name,"getCharVolatile") do_name(putCharVolatile_name,"putCharVolatile") \ 1023 do_name(getIntVolatile_name,"getIntVolatile") do_name(putIntVolatile_name,"putIntVolatile") \ 1024 do_name(getLongVolatile_name,"getLongVolatile") do_name(putLongVolatile_name,"putLongVolatile") \ 1025 do_name(getFloatVolatile_name,"getFloatVolatile") do_name(putFloatVolatile_name,"putFloatVolatile") \ 1026 do_name(getDoubleVolatile_name,"getDoubleVolatile") do_name(putDoubleVolatile_name,"putDoubleVolatile") \ 1027 \ 1028 do_intrinsic(_getObjectVolatile, sun_misc_Unsafe, getObjectVolatile_name, getObject_signature, F_RN) \ 1029 do_intrinsic(_getBooleanVolatile, sun_misc_Unsafe, getBooleanVolatile_name, getBoolean_signature, F_RN) \ 1030 do_intrinsic(_getByteVolatile, sun_misc_Unsafe, getByteVolatile_name, getByte_signature, F_RN) \ 1031 do_intrinsic(_getShortVolatile, sun_misc_Unsafe, getShortVolatile_name, getShort_signature, F_RN) \ 1032 do_intrinsic(_getCharVolatile, sun_misc_Unsafe, getCharVolatile_name, getChar_signature, F_RN) \ 1033 do_intrinsic(_getIntVolatile, sun_misc_Unsafe, getIntVolatile_name, getInt_signature, F_RN) \ 1034 do_intrinsic(_getLongVolatile, sun_misc_Unsafe, getLongVolatile_name, getLong_signature, F_RN) \ 1035 do_intrinsic(_getFloatVolatile, sun_misc_Unsafe, getFloatVolatile_name, getFloat_signature, F_RN) \ 1036 do_intrinsic(_getDoubleVolatile, sun_misc_Unsafe, getDoubleVolatile_name, getDouble_signature, F_RN) \ 1037 do_intrinsic(_putObjectVolatile, sun_misc_Unsafe, putObjectVolatile_name, putObject_signature, F_RN) \ 1038 do_intrinsic(_putBooleanVolatile, sun_misc_Unsafe, putBooleanVolatile_name, putBoolean_signature, F_RN) \ 1039 do_intrinsic(_putByteVolatile, sun_misc_Unsafe, putByteVolatile_name, putByte_signature, F_RN) \ 1040 do_intrinsic(_putShortVolatile, sun_misc_Unsafe, putShortVolatile_name, putShort_signature, F_RN) \ 1041 do_intrinsic(_putCharVolatile, sun_misc_Unsafe, putCharVolatile_name, putChar_signature, F_RN) \ 1042 do_intrinsic(_putIntVolatile, sun_misc_Unsafe, putIntVolatile_name, putInt_signature, F_RN) \ 1043 do_intrinsic(_putLongVolatile, sun_misc_Unsafe, putLongVolatile_name, putLong_signature, F_RN) \ 1044 do_intrinsic(_putFloatVolatile, sun_misc_Unsafe, putFloatVolatile_name, putFloat_signature, F_RN) \ 1045 do_intrinsic(_putDoubleVolatile, sun_misc_Unsafe, putDoubleVolatile_name, putDouble_signature, F_RN) \ 1046 \ 1047 do_name(getShortUnaligned_name,"getShortUnaligned") do_name(putShortUnaligned_name,"putShortUnaligned") \ 1048 do_name(getCharUnaligned_name,"getCharUnaligned") do_name(putCharUnaligned_name,"putCharUnaligned") \ 1049 do_name(getIntUnaligned_name,"getIntUnaligned") do_name(putIntUnaligned_name,"putIntUnaligned") \ 1050 do_name(getLongUnaligned_name,"getLongUnaligned") do_name(putLongUnaligned_name,"putLongUnaligned") \ 1051 \ 1052 do_intrinsic(_getShortUnaligned, sun_misc_Unsafe, getShortUnaligned_name, getShort_signature, F_R) \ 1053 do_intrinsic(_getCharUnaligned, sun_misc_Unsafe, getCharUnaligned_name, getChar_signature, F_R) \ 1054 do_intrinsic(_getIntUnaligned, sun_misc_Unsafe, getIntUnaligned_name, getInt_signature, F_R) \ 1055 do_intrinsic(_getLongUnaligned, sun_misc_Unsafe, getLongUnaligned_name, getLong_signature, F_R) \ 1056 do_intrinsic(_putShortUnaligned, sun_misc_Unsafe, putShortUnaligned_name, putShort_signature, F_R) \ 1057 do_intrinsic(_putCharUnaligned, sun_misc_Unsafe, putCharUnaligned_name, putChar_signature, F_R) \ 1058 do_intrinsic(_putIntUnaligned, sun_misc_Unsafe, putIntUnaligned_name, putInt_signature, F_R) \ 1059 do_intrinsic(_putLongUnaligned, sun_misc_Unsafe, putLongUnaligned_name, putLong_signature, F_R) \ 1060 \ 1061 /* %%% these are redundant except perhaps for getAddress, but Unsafe has native methods for them */ \ 1062 do_signature(getByte_raw_signature, "(J)B") \ 1063 do_signature(putByte_raw_signature, "(JB)V") \ 1064 do_signature(getShort_raw_signature, "(J)S") \ 1065 do_signature(putShort_raw_signature, "(JS)V") \ 1066 do_signature(getChar_raw_signature, "(J)C") \ 1067 do_signature(putChar_raw_signature, "(JC)V") \ 1068 do_signature(putInt_raw_signature, "(JI)V") \ 1069 do_alias(getLong_raw_signature, /*(J)J*/ long_long_signature) \ 1070 do_alias(putLong_raw_signature, /*(JJ)V*/ long_long_void_signature) \ 1071 do_signature(getFloat_raw_signature, "(J)F") \ 1072 do_signature(putFloat_raw_signature, "(JF)V") \ 1073 do_alias(getDouble_raw_signature, /*(J)D*/ long_double_signature) \ 1074 do_signature(putDouble_raw_signature, "(JD)V") \ 1075 do_alias(getAddress_raw_signature, /*(J)J*/ long_long_signature) \ 1076 do_alias(putAddress_raw_signature, /*(JJ)V*/ long_long_void_signature) \ 1077 \ 1078 do_name( getAddress_name, "getAddress") \ 1079 do_name( putAddress_name, "putAddress") \ 1080 \ 1081 do_intrinsic(_getByte_raw, sun_misc_Unsafe, getByte_name, getByte_raw_signature, F_RN) \ 1082 do_intrinsic(_getShort_raw, sun_misc_Unsafe, getShort_name, getShort_raw_signature, F_RN) \ 1083 do_intrinsic(_getChar_raw, sun_misc_Unsafe, getChar_name, getChar_raw_signature, F_RN) \ 1084 do_intrinsic(_getInt_raw, sun_misc_Unsafe, getInt_name, long_int_signature, F_RN) \ 1085 do_intrinsic(_getLong_raw, sun_misc_Unsafe, getLong_name, getLong_raw_signature, F_RN) \ 1086 do_intrinsic(_getFloat_raw, sun_misc_Unsafe, getFloat_name, getFloat_raw_signature, F_RN) \ 1087 do_intrinsic(_getDouble_raw, sun_misc_Unsafe, getDouble_name, getDouble_raw_signature, F_RN) \ 1088 do_intrinsic(_getAddress_raw, sun_misc_Unsafe, getAddress_name, getAddress_raw_signature, F_RN) \ 1089 do_intrinsic(_putByte_raw, sun_misc_Unsafe, putByte_name, putByte_raw_signature, F_RN) \ 1090 do_intrinsic(_putShort_raw, sun_misc_Unsafe, putShort_name, putShort_raw_signature, F_RN) \ 1091 do_intrinsic(_putChar_raw, sun_misc_Unsafe, putChar_name, putChar_raw_signature, F_RN) \ 1092 do_intrinsic(_putInt_raw, sun_misc_Unsafe, putInt_name, putInt_raw_signature, F_RN) \ 1093 do_intrinsic(_putLong_raw, sun_misc_Unsafe, putLong_name, putLong_raw_signature, F_RN) \ 1094 do_intrinsic(_putFloat_raw, sun_misc_Unsafe, putFloat_name, putFloat_raw_signature, F_RN) \ 1095 do_intrinsic(_putDouble_raw, sun_misc_Unsafe, putDouble_name, putDouble_raw_signature, F_RN) \ 1096 do_intrinsic(_putAddress_raw, sun_misc_Unsafe, putAddress_name, putAddress_raw_signature, F_RN) \ 1097 \ 1098 do_intrinsic(_compareAndSwapObject, sun_misc_Unsafe, compareAndSwapObject_name, compareAndSwapObject_signature, F_RN) \ 1099 do_name( compareAndSwapObject_name, "compareAndSwapObject") \ 1100 do_signature(compareAndSwapObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z") \ 1101 do_intrinsic(_compareAndSwapLong, sun_misc_Unsafe, compareAndSwapLong_name, compareAndSwapLong_signature, F_RN) \ 1102 do_name( compareAndSwapLong_name, "compareAndSwapLong") \ 1103 do_signature(compareAndSwapLong_signature, "(Ljava/lang/Object;JJJ)Z") \ 1104 do_intrinsic(_compareAndSwapInt, sun_misc_Unsafe, compareAndSwapInt_name, compareAndSwapInt_signature, F_RN) \ 1105 do_name( compareAndSwapInt_name, "compareAndSwapInt") \ 1106 do_signature(compareAndSwapInt_signature, "(Ljava/lang/Object;JII)Z") \ 1107 do_intrinsic(_putOrderedObject, sun_misc_Unsafe, putOrderedObject_name, putOrderedObject_signature, F_RN) \ 1108 do_name( putOrderedObject_name, "putOrderedObject") \ 1109 do_alias( putOrderedObject_signature, /*(LObject;JLObject;)V*/ putObject_signature) \ 1110 do_intrinsic(_putOrderedLong, sun_misc_Unsafe, putOrderedLong_name, putOrderedLong_signature, F_RN) \ 1111 do_name( putOrderedLong_name, "putOrderedLong") \ 1112 do_alias( putOrderedLong_signature, /*(Ljava/lang/Object;JJ)V*/ putLong_signature) \ 1113 do_intrinsic(_putOrderedInt, sun_misc_Unsafe, putOrderedInt_name, putOrderedInt_signature, F_RN) \ 1114 do_name( putOrderedInt_name, "putOrderedInt") \ 1115 do_alias( putOrderedInt_signature, /*(Ljava/lang/Object;JI)V*/ putInt_signature) \ 1116 \ 1117 do_intrinsic(_getAndAddInt, sun_misc_Unsafe, getAndAddInt_name, getAndAddInt_signature, F_R) \ 1118 do_name( getAndAddInt_name, "getAndAddInt") \ 1119 do_signature(getAndAddInt_signature, "(Ljava/lang/Object;JI)I" ) \ 1120 do_intrinsic(_getAndAddLong, sun_misc_Unsafe, getAndAddLong_name, getAndAddLong_signature, F_R) \ 1121 do_name( getAndAddLong_name, "getAndAddLong") \ 1122 do_signature(getAndAddLong_signature, "(Ljava/lang/Object;JJ)J" ) \ 1123 do_intrinsic(_getAndSetInt, sun_misc_Unsafe, getAndSetInt_name, getAndSetInt_signature, F_R) \ 1124 do_name( getAndSetInt_name, "getAndSetInt") \ 1125 do_alias( getAndSetInt_signature, /*"(Ljava/lang/Object;JI)I"*/ getAndAddInt_signature) \ 1126 do_intrinsic(_getAndSetLong, sun_misc_Unsafe, getAndSetLong_name, getAndSetLong_signature, F_R) \ 1127 do_name( getAndSetLong_name, "getAndSetLong") \ 1128 do_alias( getAndSetLong_signature, /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature) \ 1129 do_intrinsic(_getAndSetObject, sun_misc_Unsafe, getAndSetObject_name, getAndSetObject_signature, F_R)\ 1130 do_name( getAndSetObject_name, "getAndSetObject") \ 1131 do_signature(getAndSetObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \ 1132 \ 1133 /* (2) Bytecode intrinsics */ \ 1134 \ 1135 do_intrinsic(_park, sun_misc_Unsafe, park_name, park_signature, F_RN) \ 1136 do_name( park_name, "park") \ 1137 do_signature(park_signature, "(ZJ)V") \ 1138 do_intrinsic(_unpark, sun_misc_Unsafe, unpark_name, unpark_signature, F_RN) \ 1139 do_name( unpark_name, "unpark") \ 1140 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \ 1141 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \ 1142 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \ 1143 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \ 1144 \ 1145 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \ 1146 do_intrinsic(_StringBuilder_append_int, java_lang_StringBuilder, append_name, int_StringBuilder_signature, F_R) \ 1147 do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R) \ 1148 \ 1149 do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature, F_R) \ 1150 \ 1151 do_intrinsic(_StringBuffer_void, java_lang_StringBuffer, object_initializer_name, void_method_signature, F_R) \ 1152 do_intrinsic(_StringBuffer_int, java_lang_StringBuffer, object_initializer_name, int_void_signature, F_R) \ 1153 do_intrinsic(_StringBuffer_String, java_lang_StringBuffer, object_initializer_name, string_void_signature, F_R) \ 1154 \ 1155 do_intrinsic(_StringBuffer_append_char, java_lang_StringBuffer, append_name, char_StringBuffer_signature, F_Y) \ 1156 do_intrinsic(_StringBuffer_append_int, java_lang_StringBuffer, append_name, int_StringBuffer_signature, F_Y) \ 1157 do_intrinsic(_StringBuffer_append_String, java_lang_StringBuffer, append_name, String_StringBuffer_signature, F_Y) \ 1158 \ 1159 do_intrinsic(_StringBuffer_toString, java_lang_StringBuffer, toString_name, void_string_signature, F_Y) \ 1160 \ | 921 do_intrinsic(_updateBytesCRC32, java_util_zip_CRC32, updateBytes_name, updateBytes_signature, F_SN) \ 922 do_name( updateBytes_name, "updateBytes0") \ 923 do_signature(updateBytes_signature, "(I[BII)I") \ 924 do_intrinsic(_updateByteBufferCRC32, java_util_zip_CRC32, updateByteBuffer_name, updateByteBuffer_signature, F_SN) \ 925 do_name( updateByteBuffer_name, "updateByteBuffer0") \ 926 do_signature(updateByteBuffer_signature, "(IJII)I") \ 927 \ 928 /* support for java.util.zip.CRC32C */ \ 929 do_class(java_util_zip_CRC32C, "java/util/zip/CRC32C") \ 930 do_intrinsic(_updateBytesCRC32C, java_util_zip_CRC32C, updateBytes_C_name, updateBytes_signature, F_S) \ 931 do_name( updateBytes_C_name, "updateBytes") \ 932 do_intrinsic(_updateDirectByteBufferCRC32C, java_util_zip_CRC32C, updateDirectByteBuffer_C_name, updateByteBuffer_signature, F_S) \ 933 do_name( updateDirectByteBuffer_C_name, "updateDirectByteBuffer") \ 934 \ 935 /* support for java.util.zip.Adler32 */ \ 936 do_class(java_util_zip_Adler32, "java/util/zip/Adler32") \ 937 do_intrinsic(_updateBytesAdler32, java_util_zip_Adler32, updateBytes_C_name, updateBytes_signature, F_SN) \ 938 do_intrinsic(_updateByteBufferAdler32, java_util_zip_Adler32, updateByteBuffer_A_name, updateByteBuffer_signature, F_SN) \ 939 do_name( updateByteBuffer_A_name, "updateByteBuffer") \ 940 \ 941 /* support for Unsafe */ \ 942 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ 943 do_class(jdk_internal_misc_Unsafe, "jdk/internal/misc/Unsafe") \ 944 \ 945 do_intrinsic(_allocateInstance, jdk_internal_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ 946 do_name( allocateInstance_name, "allocateInstance") \ 947 do_signature(allocateInstance_signature, "(Ljava/lang/Class;)Ljava/lang/Object;") \ 948 do_intrinsic(_copyMemory, jdk_internal_misc_Unsafe, copyMemory_name, copyMemory_signature, F_RN) \ 949 do_name( copyMemory_name, "copyMemory") \ 950 do_signature(copyMemory_signature, "(Ljava/lang/Object;JLjava/lang/Object;JJ)V") \ 951 do_intrinsic(_loadFence, jdk_internal_misc_Unsafe, loadFence_name, loadFence_signature, F_RN) \ 952 do_name( loadFence_name, "loadFence") \ 953 do_alias( loadFence_signature, void_method_signature) \ 954 do_intrinsic(_storeFence, jdk_internal_misc_Unsafe, storeFence_name, storeFence_signature, F_RN) \ 955 do_name( storeFence_name, "storeFence") \ 956 do_alias( storeFence_signature, void_method_signature) \ 957 do_intrinsic(_fullFence, jdk_internal_misc_Unsafe, fullFence_name, fullFence_signature, F_RN) \ 958 do_name( fullFence_name, "fullFence") \ 959 do_alias( fullFence_signature, void_method_signature) \ 960 \ 961 /* Custom branch frequencies profiling support for JSR292 */ \ 962 do_class(java_lang_invoke_MethodHandleImpl, "java/lang/invoke/MethodHandleImpl") \ 963 do_intrinsic(_profileBoolean, java_lang_invoke_MethodHandleImpl, profileBoolean_name, profileBoolean_signature, F_S) \ 964 do_name( profileBoolean_name, "profileBoolean") \ 965 do_signature(profileBoolean_signature, "(Z[I)Z") \ 966 do_intrinsic(_isCompileConstant, java_lang_invoke_MethodHandleImpl, isCompileConstant_name, isCompileConstant_signature, F_S) \ 967 do_name( isCompileConstant_name, "isCompileConstant") \ 968 do_alias( isCompileConstant_signature, object_boolean_signature) \ 969 \ 970 /* unsafe memory references (there are a lot of them...) */ \ 971 do_signature(getObject_signature, "(Ljava/lang/Object;J)Ljava/lang/Object;") \ 972 do_signature(putObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)V") \ 973 do_signature(getBoolean_signature, "(Ljava/lang/Object;J)Z") \ 974 do_signature(putBoolean_signature, "(Ljava/lang/Object;JZ)V") \ 975 do_signature(getByte_signature, "(Ljava/lang/Object;J)B") \ 976 do_signature(putByte_signature, "(Ljava/lang/Object;JB)V") \ 977 do_signature(getShort_signature, "(Ljava/lang/Object;J)S") \ 980 do_signature(putChar_signature, "(Ljava/lang/Object;JC)V") \ 981 do_signature(getInt_signature, "(Ljava/lang/Object;J)I") \ 982 do_signature(putInt_signature, "(Ljava/lang/Object;JI)V") \ 983 do_signature(getLong_signature, "(Ljava/lang/Object;J)J") \ 984 do_signature(putLong_signature, "(Ljava/lang/Object;JJ)V") \ 985 do_signature(getFloat_signature, "(Ljava/lang/Object;J)F") \ 986 do_signature(putFloat_signature, "(Ljava/lang/Object;JF)V") \ 987 do_signature(getDouble_signature, "(Ljava/lang/Object;J)D") \ 988 do_signature(putDouble_signature, "(Ljava/lang/Object;JD)V") \ 989 \ 990 do_name(getObject_name,"getObject") do_name(putObject_name,"putObject") \ 991 do_name(getBoolean_name,"getBoolean") do_name(putBoolean_name,"putBoolean") \ 992 do_name(getByte_name,"getByte") do_name(putByte_name,"putByte") \ 993 do_name(getShort_name,"getShort") do_name(putShort_name,"putShort") \ 994 do_name(getChar_name,"getChar") do_name(putChar_name,"putChar") \ 995 do_name(getInt_name,"getInt") do_name(putInt_name,"putInt") \ 996 do_name(getLong_name,"getLong") do_name(putLong_name,"putLong") \ 997 do_name(getFloat_name,"getFloat") do_name(putFloat_name,"putFloat") \ 998 do_name(getDouble_name,"getDouble") do_name(putDouble_name,"putDouble") \ 999 \ 1000 do_intrinsic(_getObject, jdk_internal_misc_Unsafe, getObject_name, getObject_signature, F_RN) \ 1001 do_intrinsic(_getBoolean, jdk_internal_misc_Unsafe, getBoolean_name, getBoolean_signature, F_RN) \ 1002 do_intrinsic(_getByte, jdk_internal_misc_Unsafe, getByte_name, getByte_signature, F_RN) \ 1003 do_intrinsic(_getShort, jdk_internal_misc_Unsafe, getShort_name, getShort_signature, F_RN) \ 1004 do_intrinsic(_getChar, jdk_internal_misc_Unsafe, getChar_name, getChar_signature, F_RN) \ 1005 do_intrinsic(_getInt, jdk_internal_misc_Unsafe, getInt_name, getInt_signature, F_RN) \ 1006 do_intrinsic(_getLong, jdk_internal_misc_Unsafe, getLong_name, getLong_signature, F_RN) \ 1007 do_intrinsic(_getFloat, jdk_internal_misc_Unsafe, getFloat_name, getFloat_signature, F_RN) \ 1008 do_intrinsic(_getDouble, jdk_internal_misc_Unsafe, getDouble_name, getDouble_signature, F_RN) \ 1009 do_intrinsic(_putObject, jdk_internal_misc_Unsafe, putObject_name, putObject_signature, F_RN) \ 1010 do_intrinsic(_putBoolean, jdk_internal_misc_Unsafe, putBoolean_name, putBoolean_signature, F_RN) \ 1011 do_intrinsic(_putByte, jdk_internal_misc_Unsafe, putByte_name, putByte_signature, F_RN) \ 1012 do_intrinsic(_putShort, jdk_internal_misc_Unsafe, putShort_name, putShort_signature, F_RN) \ 1013 do_intrinsic(_putChar, jdk_internal_misc_Unsafe, putChar_name, putChar_signature, F_RN) \ 1014 do_intrinsic(_putInt, jdk_internal_misc_Unsafe, putInt_name, putInt_signature, F_RN) \ 1015 do_intrinsic(_putLong, jdk_internal_misc_Unsafe, putLong_name, putLong_signature, F_RN) \ 1016 do_intrinsic(_putFloat, jdk_internal_misc_Unsafe, putFloat_name, putFloat_signature, F_RN) \ 1017 do_intrinsic(_putDouble, jdk_internal_misc_Unsafe, putDouble_name, putDouble_signature, F_RN) \ 1018 \ 1019 do_name(getObjectVolatile_name,"getObjectVolatile") do_name(putObjectVolatile_name,"putObjectVolatile") \ 1020 do_name(getBooleanVolatile_name,"getBooleanVolatile") do_name(putBooleanVolatile_name,"putBooleanVolatile") \ 1021 do_name(getByteVolatile_name,"getByteVolatile") do_name(putByteVolatile_name,"putByteVolatile") \ 1022 do_name(getShortVolatile_name,"getShortVolatile") do_name(putShortVolatile_name,"putShortVolatile") \ 1023 do_name(getCharVolatile_name,"getCharVolatile") do_name(putCharVolatile_name,"putCharVolatile") \ 1024 do_name(getIntVolatile_name,"getIntVolatile") do_name(putIntVolatile_name,"putIntVolatile") \ 1025 do_name(getLongVolatile_name,"getLongVolatile") do_name(putLongVolatile_name,"putLongVolatile") \ 1026 do_name(getFloatVolatile_name,"getFloatVolatile") do_name(putFloatVolatile_name,"putFloatVolatile") \ 1027 do_name(getDoubleVolatile_name,"getDoubleVolatile") do_name(putDoubleVolatile_name,"putDoubleVolatile") \ 1028 \ 1029 do_intrinsic(_getObjectVolatile, jdk_internal_misc_Unsafe, getObjectVolatile_name, getObject_signature, F_RN) \ 1030 do_intrinsic(_getBooleanVolatile, jdk_internal_misc_Unsafe, getBooleanVolatile_name, getBoolean_signature, F_RN) \ 1031 do_intrinsic(_getByteVolatile, jdk_internal_misc_Unsafe, getByteVolatile_name, getByte_signature, F_RN) \ 1032 do_intrinsic(_getShortVolatile, jdk_internal_misc_Unsafe, getShortVolatile_name, getShort_signature, F_RN) \ 1033 do_intrinsic(_getCharVolatile, jdk_internal_misc_Unsafe, getCharVolatile_name, getChar_signature, F_RN) \ 1034 do_intrinsic(_getIntVolatile, jdk_internal_misc_Unsafe, getIntVolatile_name, getInt_signature, F_RN) \ 1035 do_intrinsic(_getLongVolatile, jdk_internal_misc_Unsafe, getLongVolatile_name, getLong_signature, F_RN) \ 1036 do_intrinsic(_getFloatVolatile, jdk_internal_misc_Unsafe, getFloatVolatile_name, getFloat_signature, F_RN) \ 1037 do_intrinsic(_getDoubleVolatile, jdk_internal_misc_Unsafe, getDoubleVolatile_name, getDouble_signature, F_RN) \ 1038 do_intrinsic(_putObjectVolatile, jdk_internal_misc_Unsafe, putObjectVolatile_name, putObject_signature, F_RN) \ 1039 do_intrinsic(_putBooleanVolatile, jdk_internal_misc_Unsafe, putBooleanVolatile_name, putBoolean_signature, F_RN) \ 1040 do_intrinsic(_putByteVolatile, jdk_internal_misc_Unsafe, putByteVolatile_name, putByte_signature, F_RN) \ 1041 do_intrinsic(_putShortVolatile, jdk_internal_misc_Unsafe, putShortVolatile_name, putShort_signature, F_RN) \ 1042 do_intrinsic(_putCharVolatile, jdk_internal_misc_Unsafe, putCharVolatile_name, putChar_signature, F_RN) \ 1043 do_intrinsic(_putIntVolatile, jdk_internal_misc_Unsafe, putIntVolatile_name, putInt_signature, F_RN) \ 1044 do_intrinsic(_putLongVolatile, jdk_internal_misc_Unsafe, putLongVolatile_name, putLong_signature, F_RN) \ 1045 do_intrinsic(_putFloatVolatile, jdk_internal_misc_Unsafe, putFloatVolatile_name, putFloat_signature, F_RN) \ 1046 do_intrinsic(_putDoubleVolatile, jdk_internal_misc_Unsafe, putDoubleVolatile_name, putDouble_signature, F_RN) \ 1047 \ 1048 do_name(getShortUnaligned_name,"getShortUnaligned") do_name(putShortUnaligned_name,"putShortUnaligned") \ 1049 do_name(getCharUnaligned_name,"getCharUnaligned") do_name(putCharUnaligned_name,"putCharUnaligned") \ 1050 do_name(getIntUnaligned_name,"getIntUnaligned") do_name(putIntUnaligned_name,"putIntUnaligned") \ 1051 do_name(getLongUnaligned_name,"getLongUnaligned") do_name(putLongUnaligned_name,"putLongUnaligned") \ 1052 \ 1053 do_intrinsic(_getShortUnaligned, jdk_internal_misc_Unsafe, getShortUnaligned_name, getShort_signature, F_R) \ 1054 do_intrinsic(_getCharUnaligned, jdk_internal_misc_Unsafe, getCharUnaligned_name, getChar_signature, F_R) \ 1055 do_intrinsic(_getIntUnaligned, jdk_internal_misc_Unsafe, getIntUnaligned_name, getInt_signature, F_R) \ 1056 do_intrinsic(_getLongUnaligned, jdk_internal_misc_Unsafe, getLongUnaligned_name, getLong_signature, F_R) \ 1057 do_intrinsic(_putShortUnaligned, jdk_internal_misc_Unsafe, putShortUnaligned_name, putShort_signature, F_R) \ 1058 do_intrinsic(_putCharUnaligned, jdk_internal_misc_Unsafe, putCharUnaligned_name, putChar_signature, F_R) \ 1059 do_intrinsic(_putIntUnaligned, jdk_internal_misc_Unsafe, putIntUnaligned_name, putInt_signature, F_R) \ 1060 do_intrinsic(_putLongUnaligned, jdk_internal_misc_Unsafe, putLongUnaligned_name, putLong_signature, F_R) \ 1061 \ 1062 /* %%% these are redundant except perhaps for getAddress, but Unsafe has native methods for them */ \ 1063 do_signature(getByte_raw_signature, "(J)B") \ 1064 do_signature(putByte_raw_signature, "(JB)V") \ 1065 do_signature(getShort_raw_signature, "(J)S") \ 1066 do_signature(putShort_raw_signature, "(JS)V") \ 1067 do_signature(getChar_raw_signature, "(J)C") \ 1068 do_signature(putChar_raw_signature, "(JC)V") \ 1069 do_signature(putInt_raw_signature, "(JI)V") \ 1070 do_alias(getLong_raw_signature, /*(J)J*/ long_long_signature) \ 1071 do_alias(putLong_raw_signature, /*(JJ)V*/ long_long_void_signature) \ 1072 do_signature(getFloat_raw_signature, "(J)F") \ 1073 do_signature(putFloat_raw_signature, "(JF)V") \ 1074 do_alias(getDouble_raw_signature, /*(J)D*/ long_double_signature) \ 1075 do_signature(putDouble_raw_signature, "(JD)V") \ 1076 do_alias(getAddress_raw_signature, /*(J)J*/ long_long_signature) \ 1077 do_alias(putAddress_raw_signature, /*(JJ)V*/ long_long_void_signature) \ 1078 \ 1079 do_name( getAddress_name, "getAddress") \ 1080 do_name( putAddress_name, "putAddress") \ 1081 \ 1082 do_intrinsic(_getByte_raw, jdk_internal_misc_Unsafe, getByte_name, getByte_raw_signature, F_R) \ 1083 do_intrinsic(_getShort_raw, jdk_internal_misc_Unsafe, getShort_name, getShort_raw_signature, F_R) \ 1084 do_intrinsic(_getChar_raw, jdk_internal_misc_Unsafe, getChar_name, getChar_raw_signature, F_R) \ 1085 do_intrinsic(_getInt_raw, jdk_internal_misc_Unsafe, getInt_name, long_int_signature, F_R) \ 1086 do_intrinsic(_getLong_raw, jdk_internal_misc_Unsafe, getLong_name, getLong_raw_signature, F_R) \ 1087 do_intrinsic(_getFloat_raw, jdk_internal_misc_Unsafe, getFloat_name, getFloat_raw_signature, F_R) \ 1088 do_intrinsic(_getDouble_raw, jdk_internal_misc_Unsafe, getDouble_name, getDouble_raw_signature, F_R) \ 1089 do_intrinsic(_getAddress_raw, jdk_internal_misc_Unsafe, getAddress_name, getAddress_raw_signature, F_R) \ 1090 do_intrinsic(_putByte_raw, jdk_internal_misc_Unsafe, putByte_name, putByte_raw_signature, F_R) \ 1091 do_intrinsic(_putShort_raw, jdk_internal_misc_Unsafe, putShort_name, putShort_raw_signature, F_R) \ 1092 do_intrinsic(_putChar_raw, jdk_internal_misc_Unsafe, putChar_name, putChar_raw_signature, F_R) \ 1093 do_intrinsic(_putInt_raw, jdk_internal_misc_Unsafe, putInt_name, putInt_raw_signature, F_R) \ 1094 do_intrinsic(_putLong_raw, jdk_internal_misc_Unsafe, putLong_name, putLong_raw_signature, F_R) \ 1095 do_intrinsic(_putFloat_raw, jdk_internal_misc_Unsafe, putFloat_name, putFloat_raw_signature, F_R) \ 1096 do_intrinsic(_putDouble_raw, jdk_internal_misc_Unsafe, putDouble_name, putDouble_raw_signature, F_R) \ 1097 do_intrinsic(_putAddress_raw, jdk_internal_misc_Unsafe, putAddress_name, putAddress_raw_signature, F_R) \ 1098 \ 1099 do_intrinsic(_compareAndSwapObject, jdk_internal_misc_Unsafe, compareAndSwapObject_name, compareAndSwapObject_signature, F_R) \ 1100 do_name( compareAndSwapObject_name, "compareAndSwapObject") \ 1101 do_signature(compareAndSwapObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z") \ 1102 do_intrinsic(_compareAndSwapLong, jdk_internal_misc_Unsafe, compareAndSwapLong_name, compareAndSwapLong_signature, F_R) \ 1103 do_name( compareAndSwapLong_name, "compareAndSwapLong") \ 1104 do_signature(compareAndSwapLong_signature, "(Ljava/lang/Object;JJJ)Z") \ 1105 do_intrinsic(_compareAndSwapInt, jdk_internal_misc_Unsafe, compareAndSwapInt_name, compareAndSwapInt_signature, F_R) \ 1106 do_name( compareAndSwapInt_name, "compareAndSwapInt") \ 1107 do_signature(compareAndSwapInt_signature, "(Ljava/lang/Object;JII)Z") \ 1108 do_intrinsic(_putOrderedObject, jdk_internal_misc_Unsafe, putOrderedObject_name, putOrderedObject_signature, F_R) \ 1109 do_name( putOrderedObject_name, "putOrderedObject") \ 1110 do_alias( putOrderedObject_signature, /*(LObject;JLObject;)V*/ putObject_signature) \ 1111 do_intrinsic(_putOrderedLong, jdk_internal_misc_Unsafe, putOrderedLong_name, putOrderedLong_signature, F_R) \ 1112 do_name( putOrderedLong_name, "putOrderedLong") \ 1113 do_alias( putOrderedLong_signature, /*(Ljava/lang/Object;JJ)V*/ putLong_signature) \ 1114 do_intrinsic(_putOrderedInt, jdk_internal_misc_Unsafe, putOrderedInt_name, putOrderedInt_signature, F_R) \ 1115 do_name( putOrderedInt_name, "putOrderedInt") \ 1116 do_alias( putOrderedInt_signature, /*(Ljava/lang/Object;JI)V*/ putInt_signature) \ 1117 \ 1118 do_intrinsic(_getAndAddInt, jdk_internal_misc_Unsafe, getAndAddInt_name, getAndAddInt_signature, F_R) \ 1119 do_name( getAndAddInt_name, "getAndAddInt") \ 1120 do_signature(getAndAddInt_signature, "(Ljava/lang/Object;JI)I" ) \ 1121 do_intrinsic(_getAndAddLong, jdk_internal_misc_Unsafe, getAndAddLong_name, getAndAddLong_signature, F_R) \ 1122 do_name( getAndAddLong_name, "getAndAddLong") \ 1123 do_signature(getAndAddLong_signature, "(Ljava/lang/Object;JJ)J" ) \ 1124 do_intrinsic(_getAndSetInt, jdk_internal_misc_Unsafe, getAndSetInt_name, getAndSetInt_signature, F_R) \ 1125 do_name( getAndSetInt_name, "getAndSetInt") \ 1126 do_alias( getAndSetInt_signature, /*"(Ljava/lang/Object;JI)I"*/ getAndAddInt_signature) \ 1127 do_intrinsic(_getAndSetLong, jdk_internal_misc_Unsafe, getAndSetLong_name, getAndSetLong_signature, F_R) \ 1128 do_name( getAndSetLong_name, "getAndSetLong") \ 1129 do_alias( getAndSetLong_signature, /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature) \ 1130 do_intrinsic(_getAndSetObject, jdk_internal_misc_Unsafe, getAndSetObject_name, getAndSetObject_signature, F_R)\ 1131 do_name( getAndSetObject_name, "getAndSetObject") \ 1132 do_signature(getAndSetObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \ 1133 \ 1134 /* (2) Bytecode intrinsics */ \ 1135 \ 1136 do_intrinsic(_park, jdk_internal_misc_Unsafe, park_name, park_signature, F_R) \ 1137 do_name( park_name, "park") \ 1138 do_signature(park_signature, "(ZJ)V") \ 1139 do_intrinsic(_unpark, jdk_internal_misc_Unsafe, unpark_name, unpark_signature, F_R) \ 1140 do_name( unpark_name, "unpark") \ 1141 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \ 1142 \ 1143 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \ 1144 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \ 1145 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \ 1146 \ 1147 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \ 1148 do_intrinsic(_StringBuilder_append_int, java_lang_StringBuilder, append_name, int_StringBuilder_signature, F_R) \ 1149 do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R) \ 1150 \ 1151 do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature, F_R) \ 1152 \ 1153 do_intrinsic(_StringBuffer_void, java_lang_StringBuffer, object_initializer_name, void_method_signature, F_R) \ 1154 do_intrinsic(_StringBuffer_int, java_lang_StringBuffer, object_initializer_name, int_void_signature, F_R) \ 1155 do_intrinsic(_StringBuffer_String, java_lang_StringBuffer, object_initializer_name, string_void_signature, F_R) \ 1156 \ 1157 do_intrinsic(_StringBuffer_append_char, java_lang_StringBuffer, append_name, char_StringBuffer_signature, F_Y) \ 1158 do_intrinsic(_StringBuffer_append_int, java_lang_StringBuffer, append_name, int_StringBuffer_signature, F_Y) \ 1159 do_intrinsic(_StringBuffer_append_String, java_lang_StringBuffer, append_name, String_StringBuffer_signature, F_Y) \ 1160 \ 1161 do_intrinsic(_StringBuffer_toString, java_lang_StringBuffer, toString_name, void_string_signature, F_Y) \ 1162 \ |