896 "Ljdk/internal/vm/vector/VectorSupport$ShuffleIotaOperation;)" \
897 "Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;") \
898 do_name(vector_shuffle_step_iota_name, "shuffleIota") \
899 \
900 do_intrinsic(_VectorShuffleToVector, jdk_internal_vm_vector_VectorSupport, vector_shuffle_to_vector_name, vector_shuffle_to_vector_sig, F_S) \
901 do_signature(vector_shuffle_to_vector_sig, "(Ljava/lang/Class;" \
902 "Ljava/lang/Class;" \
903 "Ljava/lang/Class;" \
904 "Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;" \
905 "ILjdk/internal/vm/vector/VectorSupport$ShuffleToVectorOperation;)" \
906 "Ljdk/internal/vm/vector/VectorSupport$Vector;") \
907 do_name(vector_shuffle_to_vector_name, "shuffleToVector") \
908 \
909 do_intrinsic(_VectorLoadOp, jdk_internal_vm_vector_VectorSupport, vector_load_op_name, vector_load_op_sig, F_S) \
910 do_signature(vector_load_op_sig, "(Ljava/lang/Class;" \
911 "Ljava/lang/Class;" \
912 "I" \
913 "Ljava/lang/Object;" \
914 "J" \
915 "Ljava/lang/Object;" \
916 "I" \
917 "Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;" \
918 "Ljdk/internal/vm/vector/VectorSupport$LoadOperation;)" \
919 "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;") \
920 do_name(vector_load_op_name, "load") \
921 \
922 do_intrinsic(_VectorLoadMaskedOp, jdk_internal_vm_vector_VectorSupport, vector_load_masked_op_name, vector_load_masked_op_sig, F_S) \
923 do_signature(vector_load_masked_op_sig, "(Ljava/lang/Class;" \
924 "Ljava/lang/Class;" \
925 "Ljava/lang/Class;" \
926 "I" \
927 "Ljava/lang/Object;" \
928 "J" \
929 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
930 "Ljava/lang/Object;" \
931 "I" \
932 "Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;" \
933 "Ljdk/internal/vm/vector/VectorSupport$LoadVectorMaskedOperation;)" \
934 "Ljdk/internal/vm/vector/VectorSupport$Vector;") \
935 do_name(vector_load_masked_op_name, "loadMasked") \
936 \
937 do_intrinsic(_VectorStoreOp, jdk_internal_vm_vector_VectorSupport, vector_store_op_name, vector_store_op_sig, F_S) \
938 do_signature(vector_store_op_sig, "(Ljava/lang/Class;" \
939 "Ljava/lang/Class;" \
940 "I" \
941 "Ljava/lang/Object;" \
942 "J" \
943 "Ljdk/internal/vm/vector/VectorSupport$Vector;" \
944 "Ljava/lang/Object;ILjdk/internal/vm/vector/VectorSupport$StoreVectorOperation;)" \
945 "V") \
946 do_name(vector_store_op_name, "store") \
947 \
948 do_intrinsic(_VectorStoreMaskedOp, jdk_internal_vm_vector_VectorSupport, vector_store_masked_op_name, vector_store_masked_op_sig, F_S) \
949 do_signature(vector_store_masked_op_sig, "(Ljava/lang/Class;" \
950 "Ljava/lang/Class;" \
951 "Ljava/lang/Class;" \
952 "I" \
953 "Ljava/lang/Object;" \
954 "J" \
955 "Ljdk/internal/vm/vector/VectorSupport$Vector;" \
956 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
957 "Ljava/lang/Object;" \
958 "I" \
959 "Ljdk/internal/vm/vector/VectorSupport$StoreVectorMaskedOperation;)" \
960 "V") \
961 do_name(vector_store_masked_op_name, "storeMasked") \
962 \
963 do_intrinsic(_VectorReductionCoerced, jdk_internal_vm_vector_VectorSupport, vector_reduction_coerced_name, vector_reduction_coerced_sig, F_S)\
964 do_signature(vector_reduction_coerced_sig, "(I" \
965 "Ljava/lang/Class;" \
966 "Ljava/lang/Class;" \
967 "Ljava/lang/Class;" \
968 "I" \
969 "Ljdk/internal/vm/vector/VectorSupport$Vector;" \
970 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
971 "Ljdk/internal/vm/vector/VectorSupport$ReductionOperation;)" \
972 "J") \
973 do_name(vector_reduction_coerced_name, "reductionCoerced") \
974 \
975 do_intrinsic(_VectorTest, jdk_internal_vm_vector_VectorSupport, vector_test_name, vector_test_sig, F_S) \
976 do_signature(vector_test_sig, "(I" \
977 "Ljava/lang/Class;" \
978 "Ljava/lang/Class;" \
1098 "I[II" \
1099 "Ljdk/internal/vm/vector/VectorSupport$StoreVectorOperationWithMap;)" \
1100 "V") \
1101 do_name(vector_scatter_name, "storeWithMap") \
1102 \
1103 do_intrinsic(_VectorRebox, jdk_internal_vm_vector_VectorSupport, vector_rebox_name, vector_rebox_sig, F_S) \
1104 do_signature(vector_rebox_sig, "(Ljdk/internal/vm/vector/VectorSupport$VectorPayload;)" \
1105 "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;") \
1106 do_name(vector_rebox_name, "maybeRebox") \
1107 \
1108 do_intrinsic(_VectorMaskOp, jdk_internal_vm_vector_VectorSupport, vector_mask_oper_name, vector_mask_oper_sig, F_S) \
1109 do_signature(vector_mask_oper_sig, "(I" \
1110 "Ljava/lang/Class;" \
1111 "Ljava/lang/Class;" \
1112 "I" \
1113 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
1114 "Ljdk/internal/vm/vector/VectorSupport$VectorMaskOp;)" \
1115 "J") \
1116 do_name(vector_mask_oper_name, "maskReductionCoerced") \
1117 \
1118 /* (2) Bytecode intrinsics */ \
1119 \
1120 do_intrinsic(_park, jdk_internal_misc_Unsafe, park_name, park_signature, F_RN) \
1121 do_name( park_name, "park") \
1122 do_signature(park_signature, "(ZJ)V") \
1123 do_intrinsic(_unpark, jdk_internal_misc_Unsafe, unpark_name, unpark_signature, F_RN) \
1124 do_name( unpark_name, "unpark") \
1125 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \
1126 \
1127 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \
1128 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \
1129 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \
1130 \
1131 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \
1132 do_intrinsic(_StringBuilder_append_int, java_lang_StringBuilder, append_name, int_StringBuilder_signature, F_R) \
1133 do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R) \
1134 \
1135 do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature, F_R) \
1136 \
1137 do_intrinsic(_StringBuffer_void, java_lang_StringBuffer, object_initializer_name, void_method_signature, F_R) \
1206 do_name( forEachRemaining_name, "forEachRemaining") \
1207 do_name( forEachRemaining_signature, "(Ljava/util/function/IntConsumer;)V") \
1208
1209 /*end*/
1210
1211 #define VM_INTRINSIC_ID_ENUM(id, klass, name, sig, flags) id,
1212 #define VM_INTRINSICS_CONST(id, klass, name, sig, flags) static const vmIntrinsicID id = vmIntrinsicID::id;
1213 #define __IGNORE_CLASS(id, name) /*ignored*/
1214 #define __IGNORE_NAME(id, name) /*ignored*/
1215 #define __IGNORE_SIGNATURE(id, name) /*ignored*/
1216 #define __IGNORE_ALIAS(id, name) /*ignored*/
1217
1218 // VM Intrinsic ID's uniquely identify some very special methods
1219 enum class vmIntrinsicID : int {
1220 _none = 0, // not an intrinsic (default answer)
1221
1222 VM_INTRINSICS_DO(VM_INTRINSIC_ID_ENUM,
1223 __IGNORE_CLASS, __IGNORE_NAME, __IGNORE_SIGNATURE, __IGNORE_ALIAS)
1224
1225 ID_LIMIT,
1226 LAST_COMPILER_INLINE = _VectorMaskOp,
1227 FIRST_MH_SIG_POLY = _invokeGeneric,
1228 FIRST_MH_STATIC = _linkToVirtual,
1229 LAST_MH_SIG_POLY = _linkToNative,
1230
1231 FIRST_ID = _none + 1,
1232 LAST_ID = ID_LIMIT - 1,
1233 };
1234
1235 ENUMERATOR_RANGE(vmIntrinsicID, vmIntrinsicID::FIRST_ID, vmIntrinsicID::LAST_ID)
1236
1237 class vmIntrinsics : AllStatic {
1238 friend class vmSymbols;
1239 friend class ciObjectFactory;
1240
1241 public:
1242 typedef vmIntrinsicID ID;
1243
1244 // Convenient access of vmIntrinsicID::FOO as vmIntrinsics::FOO
1245 static const ID _none = vmIntrinsicID::_none;
1246 static const ID ID_LIMIT = vmIntrinsicID::ID_LIMIT;
|
896 "Ljdk/internal/vm/vector/VectorSupport$ShuffleIotaOperation;)" \
897 "Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;") \
898 do_name(vector_shuffle_step_iota_name, "shuffleIota") \
899 \
900 do_intrinsic(_VectorShuffleToVector, jdk_internal_vm_vector_VectorSupport, vector_shuffle_to_vector_name, vector_shuffle_to_vector_sig, F_S) \
901 do_signature(vector_shuffle_to_vector_sig, "(Ljava/lang/Class;" \
902 "Ljava/lang/Class;" \
903 "Ljava/lang/Class;" \
904 "Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;" \
905 "ILjdk/internal/vm/vector/VectorSupport$ShuffleToVectorOperation;)" \
906 "Ljdk/internal/vm/vector/VectorSupport$Vector;") \
907 do_name(vector_shuffle_to_vector_name, "shuffleToVector") \
908 \
909 do_intrinsic(_VectorLoadOp, jdk_internal_vm_vector_VectorSupport, vector_load_op_name, vector_load_op_sig, F_S) \
910 do_signature(vector_load_op_sig, "(Ljava/lang/Class;" \
911 "Ljava/lang/Class;" \
912 "I" \
913 "Ljava/lang/Object;" \
914 "J" \
915 "Ljava/lang/Object;" \
916 "J" \
917 "Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;" \
918 "Ljdk/internal/vm/vector/VectorSupport$LoadOperation;)" \
919 "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;") \
920 do_name(vector_load_op_name, "load") \
921 \
922 do_intrinsic(_VectorLoadMaskedOp, jdk_internal_vm_vector_VectorSupport, vector_load_masked_op_name, vector_load_masked_op_sig, F_S) \
923 do_signature(vector_load_masked_op_sig, "(Ljava/lang/Class;" \
924 "Ljava/lang/Class;" \
925 "Ljava/lang/Class;" \
926 "I" \
927 "Ljava/lang/Object;" \
928 "J" \
929 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
930 "Ljava/lang/Object;" \
931 "J" \
932 "Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;" \
933 "Ljdk/internal/vm/vector/VectorSupport$LoadVectorMaskedOperation;)" \
934 "Ljdk/internal/vm/vector/VectorSupport$Vector;") \
935 do_name(vector_load_masked_op_name, "loadMasked") \
936 \
937 do_intrinsic(_VectorStoreOp, jdk_internal_vm_vector_VectorSupport, vector_store_op_name, vector_store_op_sig, F_S) \
938 do_signature(vector_store_op_sig, "(Ljava/lang/Class;" \
939 "Ljava/lang/Class;" \
940 "I" \
941 "Ljava/lang/Object;" \
942 "J" \
943 "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;" \
944 "Ljava/lang/Object;" \
945 "J" \
946 "Ljdk/internal/vm/vector/VectorSupport$StoreVectorOperation;)" \
947 "V") \
948 do_name(vector_store_op_name, "store") \
949 \
950 do_intrinsic(_VectorStoreMaskedOp, jdk_internal_vm_vector_VectorSupport, vector_store_masked_op_name, vector_store_masked_op_sig, F_S) \
951 do_signature(vector_store_masked_op_sig, "(Ljava/lang/Class;" \
952 "Ljava/lang/Class;" \
953 "Ljava/lang/Class;" \
954 "I" \
955 "Ljava/lang/Object;" \
956 "J" \
957 "Ljdk/internal/vm/vector/VectorSupport$Vector;" \
958 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
959 "Ljava/lang/Object;" \
960 "J" \
961 "Ljdk/internal/vm/vector/VectorSupport$StoreVectorMaskedOperation;)" \
962 "V") \
963 do_name(vector_store_masked_op_name, "storeMasked") \
964 \
965 do_intrinsic(_VectorReductionCoerced, jdk_internal_vm_vector_VectorSupport, vector_reduction_coerced_name, vector_reduction_coerced_sig, F_S)\
966 do_signature(vector_reduction_coerced_sig, "(I" \
967 "Ljava/lang/Class;" \
968 "Ljava/lang/Class;" \
969 "Ljava/lang/Class;" \
970 "I" \
971 "Ljdk/internal/vm/vector/VectorSupport$Vector;" \
972 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
973 "Ljdk/internal/vm/vector/VectorSupport$ReductionOperation;)" \
974 "J") \
975 do_name(vector_reduction_coerced_name, "reductionCoerced") \
976 \
977 do_intrinsic(_VectorTest, jdk_internal_vm_vector_VectorSupport, vector_test_name, vector_test_sig, F_S) \
978 do_signature(vector_test_sig, "(I" \
979 "Ljava/lang/Class;" \
980 "Ljava/lang/Class;" \
1100 "I[II" \
1101 "Ljdk/internal/vm/vector/VectorSupport$StoreVectorOperationWithMap;)" \
1102 "V") \
1103 do_name(vector_scatter_name, "storeWithMap") \
1104 \
1105 do_intrinsic(_VectorRebox, jdk_internal_vm_vector_VectorSupport, vector_rebox_name, vector_rebox_sig, F_S) \
1106 do_signature(vector_rebox_sig, "(Ljdk/internal/vm/vector/VectorSupport$VectorPayload;)" \
1107 "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;") \
1108 do_name(vector_rebox_name, "maybeRebox") \
1109 \
1110 do_intrinsic(_VectorMaskOp, jdk_internal_vm_vector_VectorSupport, vector_mask_oper_name, vector_mask_oper_sig, F_S) \
1111 do_signature(vector_mask_oper_sig, "(I" \
1112 "Ljava/lang/Class;" \
1113 "Ljava/lang/Class;" \
1114 "I" \
1115 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
1116 "Ljdk/internal/vm/vector/VectorSupport$VectorMaskOp;)" \
1117 "J") \
1118 do_name(vector_mask_oper_name, "maskReductionCoerced") \
1119 \
1120 do_intrinsic(_VectorComExp, jdk_internal_vm_vector_VectorSupport, vector_comexp_op_name, vector_comexp_op_sig, F_S) \
1121 do_signature(vector_comexp_op_sig, "(I" \
1122 "Ljava/lang/Class;" \
1123 "Ljava/lang/Class;" \
1124 "Ljava/lang/Class;" \
1125 "I" \
1126 "Ljdk/internal/vm/vector/VectorSupport$Vector;" \
1127 "Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
1128 "Ljdk/internal/vm/vector/VectorSupport$ComExpOperation;)" \
1129 "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;") \
1130 do_name(vector_comexp_op_name, "comExpOp") \
1131 /* (2) Bytecode intrinsics */ \
1132 \
1133 do_intrinsic(_park, jdk_internal_misc_Unsafe, park_name, park_signature, F_RN) \
1134 do_name( park_name, "park") \
1135 do_signature(park_signature, "(ZJ)V") \
1136 do_intrinsic(_unpark, jdk_internal_misc_Unsafe, unpark_name, unpark_signature, F_RN) \
1137 do_name( unpark_name, "unpark") \
1138 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \
1139 \
1140 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \
1141 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \
1142 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \
1143 \
1144 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \
1145 do_intrinsic(_StringBuilder_append_int, java_lang_StringBuilder, append_name, int_StringBuilder_signature, F_R) \
1146 do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R) \
1147 \
1148 do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature, F_R) \
1149 \
1150 do_intrinsic(_StringBuffer_void, java_lang_StringBuffer, object_initializer_name, void_method_signature, F_R) \
1219 do_name( forEachRemaining_name, "forEachRemaining") \
1220 do_name( forEachRemaining_signature, "(Ljava/util/function/IntConsumer;)V") \
1221
1222 /*end*/
1223
1224 #define VM_INTRINSIC_ID_ENUM(id, klass, name, sig, flags) id,
1225 #define VM_INTRINSICS_CONST(id, klass, name, sig, flags) static const vmIntrinsicID id = vmIntrinsicID::id;
1226 #define __IGNORE_CLASS(id, name) /*ignored*/
1227 #define __IGNORE_NAME(id, name) /*ignored*/
1228 #define __IGNORE_SIGNATURE(id, name) /*ignored*/
1229 #define __IGNORE_ALIAS(id, name) /*ignored*/
1230
1231 // VM Intrinsic ID's uniquely identify some very special methods
1232 enum class vmIntrinsicID : int {
1233 _none = 0, // not an intrinsic (default answer)
1234
1235 VM_INTRINSICS_DO(VM_INTRINSIC_ID_ENUM,
1236 __IGNORE_CLASS, __IGNORE_NAME, __IGNORE_SIGNATURE, __IGNORE_ALIAS)
1237
1238 ID_LIMIT,
1239 LAST_COMPILER_INLINE = _VectorComExp,
1240 FIRST_MH_SIG_POLY = _invokeGeneric,
1241 FIRST_MH_STATIC = _linkToVirtual,
1242 LAST_MH_SIG_POLY = _linkToNative,
1243
1244 FIRST_ID = _none + 1,
1245 LAST_ID = ID_LIMIT - 1,
1246 };
1247
1248 ENUMERATOR_RANGE(vmIntrinsicID, vmIntrinsicID::FIRST_ID, vmIntrinsicID::LAST_ID)
1249
1250 class vmIntrinsics : AllStatic {
1251 friend class vmSymbols;
1252 friend class ciObjectFactory;
1253
1254 public:
1255 typedef vmIntrinsicID ID;
1256
1257 // Convenient access of vmIntrinsicID::FOO as vmIntrinsics::FOO
1258 static const ID _none = vmIntrinsicID::_none;
1259 static const ID ID_LIMIT = vmIntrinsicID::ID_LIMIT;
|