308 template(java_lang_invoke_MethodHandleNatives_CallSiteContext_signature, "Ljava/lang/invoke/MethodHandleNatives$CallSiteContext;") \
309 /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \
310 template(findMethodHandleType_name, "findMethodHandleType") \
311 template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
312 template(invokeExact_name, "invokeExact") \
313 template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \
314 template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \
315 template(linkMethod_name, "linkMethod") \
316 template(linkMethod_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
317 template(linkDynamicConstant_name, "linkDynamicConstant") \
318 template(linkDynamicConstant_signature, "(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
319 template(linkCallSite_name, "linkCallSite") \
320 template(linkCallSite_signature, "(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
321 template(setTargetNormal_name, "setTargetNormal") \
322 template(setTargetVolatile_name, "setTargetVolatile") \
323 template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \
324 template(DEFAULT_CONTEXT_name, "DEFAULT_CONTEXT") \
325 NOT_LP64( do_alias(intptr_signature, int_signature) ) \
326 LP64_ONLY( do_alias(intptr_signature, long_signature) ) \
327 \
328 /* Support for JVMCI */ \
329 JVMCI_VM_SYMBOLS_DO(template, do_alias) \
330 \
331 template(java_lang_StackWalker, "java/lang/StackWalker") \
332 template(java_lang_StackFrameInfo, "java/lang/StackFrameInfo") \
333 template(java_lang_LiveStackFrameInfo, "java/lang/LiveStackFrameInfo") \
334 template(java_lang_StackStreamFactory_AbstractStackWalker, "java/lang/StackStreamFactory$AbstractStackWalker") \
335 template(doStackWalk_signature, "(JIIII)Ljava/lang/Object;") \
336 template(asPrimitive_name, "asPrimitive") \
337 template(asPrimitive_int_signature, "(I)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
338 template(asPrimitive_long_signature, "(J)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
339 \
340 /* common method and field names */ \
341 template(object_initializer_name, "<init>") \
342 template(class_initializer_name, "<clinit>") \
343 template(println_name, "println") \
344 template(printStackTrace_name, "printStackTrace") \
345 template(main_name, "main") \
346 template(name_name, "name") \
347 template(priority_name, "priority") \
430 template(last_cleanup_name, "last_cleanup") \
431 template(loader_name, "loader") \
432 template(getModule_name, "getModule") \
433 template(input_stream_void_signature, "(Ljava/io/InputStream;)V") \
434 template(input_stream_signature, "Ljava/io/InputStream;") \
435 template(print_stream_signature, "Ljava/io/PrintStream;") \
436 template(security_manager_signature, "Ljava/lang/SecurityManager;") \
437 template(definePackage_name, "definePackage") \
438 template(definePackage_signature, "(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;") \
439 template(defineOrCheckPackage_name, "defineOrCheckPackage") \
440 template(defineOrCheckPackage_signature, "(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;") \
441 template(fileToEncodedURL_name, "fileToEncodedURL") \
442 template(fileToEncodedURL_signature, "(Ljava/io/File;)Ljava/net/URL;") \
443 template(getProtectionDomain_name, "getProtectionDomain") \
444 template(getProtectionDomain_signature, "(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;") \
445 template(java_lang_Integer_array_signature, "[Ljava/lang/Integer;") \
446 template(url_code_signer_array_void_signature, "(Ljava/net/URL;[Ljava/security/CodeSigner;)V") \
447 template(module_entry_name, "module_entry") \
448 template(resolved_references_name, "<resolved_references>") \
449 template(init_lock_name, "<init_lock>") \
450 \
451 /* name symbols needed by intrinsics */ \
452 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
453 \
454 /* common signatures names */ \
455 template(void_method_signature, "()V") \
456 template(void_boolean_signature, "()Z") \
457 template(void_byte_signature, "()B") \
458 template(void_char_signature, "()C") \
459 template(void_short_signature, "()S") \
460 template(void_int_signature, "()I") \
461 template(void_long_signature, "()J") \
462 template(void_float_signature, "()F") \
463 template(void_double_signature, "()D") \
464 template(bool_void_signature, "(Z)V") \
465 template(int_void_signature, "(I)V") \
466 template(int_int_signature, "(I)I") \
467 template(char_char_signature, "(C)C") \
468 template(short_short_signature, "(S)S") \
469 template(int_bool_signature, "(I)Z") \
492 template(object_boolean_signature, "(Ljava/lang/Object;)Z") \
493 template(object_object_signature, "(Ljava/lang/Object;)Ljava/lang/Object;") \
494 template(string_void_signature, "(Ljava/lang/String;)V") \
495 template(string_int_signature, "(Ljava/lang/String;)I") \
496 template(throwable_void_signature, "(Ljava/lang/Throwable;)V") \
497 template(void_throwable_signature, "()Ljava/lang/Throwable;") \
498 template(throwable_throwable_signature, "(Ljava/lang/Throwable;)Ljava/lang/Throwable;") \
499 template(class_void_signature, "(Ljava/lang/Class;)V") \
500 template(class_int_signature, "(Ljava/lang/Class;)I") \
501 template(class_long_signature, "(Ljava/lang/Class;)J") \
502 template(class_boolean_signature, "(Ljava/lang/Class;)Z") \
503 template(throwable_string_void_signature, "(Ljava/lang/Throwable;Ljava/lang/String;)V") \
504 template(string_array_void_signature, "([Ljava/lang/String;)V") \
505 template(string_array_string_array_void_signature, "([Ljava/lang/String;[Ljava/lang/String;)V") \
506 template(thread_throwable_void_signature, "(Ljava/lang/Thread;Ljava/lang/Throwable;)V") \
507 template(thread_void_signature, "(Ljava/lang/Thread;)V") \
508 template(threadgroup_runnable_void_signature, "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V") \
509 template(threadgroup_string_void_signature, "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V") \
510 template(string_class_signature, "(Ljava/lang/String;)Ljava/lang/Class;") \
511 template(object_object_object_signature, "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
512 template(string_string_string_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;") \
513 template(string_string_signature, "(Ljava/lang/String;)Ljava/lang/String;") \
514 template(classloader_string_long_signature, "(Ljava/lang/ClassLoader;Ljava/lang/String;)J") \
515 template(byte_array_void_signature, "([B)V") \
516 template(char_array_void_signature, "([C)V") \
517 template(int_int_void_signature, "(II)V") \
518 template(long_long_void_signature, "(JJ)V") \
519 template(void_classloader_signature, "()Ljava/lang/ClassLoader;") \
520 template(void_object_signature, "()Ljava/lang/Object;") \
521 template(void_class_signature, "()Ljava/lang/Class;") \
522 template(void_class_array_signature, "()[Ljava/lang/Class;") \
523 template(void_string_signature, "()Ljava/lang/String;") \
524 template(void_module_signature, "()Ljava/lang/Module;") \
525 template(object_array_object_signature, "([Ljava/lang/Object;)Ljava/lang/Object;") \
526 template(object_object_array_object_signature, "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\
527 template(exception_void_signature, "(Ljava/lang/Exception;)V") \
528 template(protectiondomain_signature, "[Ljava/security/ProtectionDomain;") \
529 template(accesscontrolcontext_signature, "Ljava/security/AccessControlContext;") \
530 template(class_protectiondomain_signature, "(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V") \
531 template(thread_signature, "Ljava/lang/Thread;") \
640 do_alias(appendToClassPathForInstrumentation_signature, string_void_signature) \
641 template(serializePropertiesToByteArray_name, "serializePropertiesToByteArray") \
642 template(serializePropertiesToByteArray_signature, "()[B") \
643 template(serializeAgentPropertiesToByteArray_name, "serializeAgentPropertiesToByteArray") \
644 template(classRedefinedCount_name, "classRedefinedCount") \
645 template(classLoader_name, "classLoader") \
646 template(componentType_name, "componentType") \
647 \
648 /* forEachRemaining support */ \
649 template(java_util_stream_StreamsRangeIntSpliterator, "java/util/stream/Streams$RangeIntSpliterator") \
650 \
651 /* jfr signatures */ \
652 JFR_TEMPLATES(template) \
653 \
654 /* cds */ \
655 template(jdk_internal_loader_ClassLoaders, "jdk/internal/loader/ClassLoaders") \
656 template(toFileURL_name, "toFileURL") \
657 template(toFileURL_signature, "(Ljava/lang/String;)Ljava/net/URL;") \
658 template(url_void_signature, "(Ljava/net/URL;)V") \
659 \
660 /*end*/
661
662 // Here are all the intrinsics known to the runtime and the CI.
663 // Each intrinsic consists of a public enum name (like _hashCode),
664 // followed by a specification of its klass, name, and signature:
665 // template(<id>, <klass>, <name>, <sig>, <FCODE>)
666 //
667 // If you add an intrinsic here, you must also define its name
668 // and signature as members of the VM symbols. The VM symbols for
669 // the intrinsic name and signature may be defined above.
670 //
671 // Because the VM_SYMBOLS_DO macro makes reference to VM_INTRINSICS_DO,
672 // you can also define an intrinsic's name and/or signature locally to the
673 // intrinsic, if this makes sense. (It often does make sense.)
674 //
675 // For example:
676 // do_intrinsic(_foo, java_lang_Object, foo_name, foo_signature, F_xx)
677 // do_name( foo_name, "foo")
678 // do_signature(foo_signature, "()F")
679 // klass = vmSymbols::java_lang_Object()
1103 \
1104 /* unsafe memory references (there are a lot of them...) */ \
1105 do_signature(getReference_signature, "(Ljava/lang/Object;J)Ljava/lang/Object;") \
1106 do_signature(putReference_signature, "(Ljava/lang/Object;JLjava/lang/Object;)V") \
1107 do_signature(getBoolean_signature, "(Ljava/lang/Object;J)Z") \
1108 do_signature(putBoolean_signature, "(Ljava/lang/Object;JZ)V") \
1109 do_signature(getByte_signature, "(Ljava/lang/Object;J)B") \
1110 do_signature(putByte_signature, "(Ljava/lang/Object;JB)V") \
1111 do_signature(getShort_signature, "(Ljava/lang/Object;J)S") \
1112 do_signature(putShort_signature, "(Ljava/lang/Object;JS)V") \
1113 do_signature(getChar_signature, "(Ljava/lang/Object;J)C") \
1114 do_signature(putChar_signature, "(Ljava/lang/Object;JC)V") \
1115 do_signature(getInt_signature, "(Ljava/lang/Object;J)I") \
1116 do_signature(putInt_signature, "(Ljava/lang/Object;JI)V") \
1117 do_signature(getLong_signature, "(Ljava/lang/Object;J)J") \
1118 do_signature(putLong_signature, "(Ljava/lang/Object;JJ)V") \
1119 do_signature(getFloat_signature, "(Ljava/lang/Object;J)F") \
1120 do_signature(putFloat_signature, "(Ljava/lang/Object;JF)V") \
1121 do_signature(getDouble_signature, "(Ljava/lang/Object;J)D") \
1122 do_signature(putDouble_signature, "(Ljava/lang/Object;JD)V") \
1123 \
1124 do_name(getReference_name,"getReference") do_name(putReference_name,"putReference") \
1125 do_name(getBoolean_name,"getBoolean") do_name(putBoolean_name,"putBoolean") \
1126 do_name(getByte_name,"getByte") do_name(putByte_name,"putByte") \
1127 do_name(getShort_name,"getShort") do_name(putShort_name,"putShort") \
1128 do_name(getChar_name,"getChar") do_name(putChar_name,"putChar") \
1129 do_name(getInt_name,"getInt") do_name(putInt_name,"putInt") \
1130 do_name(getLong_name,"getLong") do_name(putLong_name,"putLong") \
1131 do_name(getFloat_name,"getFloat") do_name(putFloat_name,"putFloat") \
1132 do_name(getDouble_name,"getDouble") do_name(putDouble_name,"putDouble") \
1133 \
1134 do_intrinsic(_getReference, jdk_internal_misc_Unsafe, getReference_name, getReference_signature, F_RN) \
1135 do_intrinsic(_getBoolean, jdk_internal_misc_Unsafe, getBoolean_name, getBoolean_signature, F_RN) \
1136 do_intrinsic(_getByte, jdk_internal_misc_Unsafe, getByte_name, getByte_signature, F_RN) \
1137 do_intrinsic(_getShort, jdk_internal_misc_Unsafe, getShort_name, getShort_signature, F_RN) \
1138 do_intrinsic(_getChar, jdk_internal_misc_Unsafe, getChar_name, getChar_signature, F_RN) \
1139 do_intrinsic(_getInt, jdk_internal_misc_Unsafe, getInt_name, getInt_signature, F_RN) \
1140 do_intrinsic(_getLong, jdk_internal_misc_Unsafe, getLong_name, getLong_signature, F_RN) \
1141 do_intrinsic(_getFloat, jdk_internal_misc_Unsafe, getFloat_name, getFloat_signature, F_RN) \
1142 do_intrinsic(_getDouble, jdk_internal_misc_Unsafe, getDouble_name, getDouble_signature, F_RN) \
1143 do_intrinsic(_putReference, jdk_internal_misc_Unsafe, putReference_name, putReference_signature, F_RN) \
1144 do_intrinsic(_putBoolean, jdk_internal_misc_Unsafe, putBoolean_name, putBoolean_signature, F_RN) \
1145 do_intrinsic(_putByte, jdk_internal_misc_Unsafe, putByte_name, putByte_signature, F_RN) \
1146 do_intrinsic(_putShort, jdk_internal_misc_Unsafe, putShort_name, putShort_signature, F_RN) \
1147 do_intrinsic(_putChar, jdk_internal_misc_Unsafe, putChar_name, putChar_signature, F_RN) \
1148 do_intrinsic(_putInt, jdk_internal_misc_Unsafe, putInt_name, putInt_signature, F_RN) \
1149 do_intrinsic(_putLong, jdk_internal_misc_Unsafe, putLong_name, putLong_signature, F_RN) \
1150 do_intrinsic(_putFloat, jdk_internal_misc_Unsafe, putFloat_name, putFloat_signature, F_RN) \
1151 do_intrinsic(_putDouble, jdk_internal_misc_Unsafe, putDouble_name, putDouble_signature, F_RN) \
1152 \
1153 do_name(getReferenceVolatile_name,"getReferenceVolatile") do_name(putReferenceVolatile_name,"putReferenceVolatile") \
1154 do_name(getBooleanVolatile_name,"getBooleanVolatile") do_name(putBooleanVolatile_name,"putBooleanVolatile") \
1155 do_name(getByteVolatile_name,"getByteVolatile") do_name(putByteVolatile_name,"putByteVolatile") \
1156 do_name(getShortVolatile_name,"getShortVolatile") do_name(putShortVolatile_name,"putShortVolatile") \
1157 do_name(getCharVolatile_name,"getCharVolatile") do_name(putCharVolatile_name,"putCharVolatile") \
1158 do_name(getIntVolatile_name,"getIntVolatile") do_name(putIntVolatile_name,"putIntVolatile") \
1159 do_name(getLongVolatile_name,"getLongVolatile") do_name(putLongVolatile_name,"putLongVolatile") \
1160 do_name(getFloatVolatile_name,"getFloatVolatile") do_name(putFloatVolatile_name,"putFloatVolatile") \
1161 do_name(getDoubleVolatile_name,"getDoubleVolatile") do_name(putDoubleVolatile_name,"putDoubleVolatile") \
1162 \
1163 do_intrinsic(_getReferenceVolatile, jdk_internal_misc_Unsafe, getReferenceVolatile_name, getReference_signature, F_RN) \
1164 do_intrinsic(_getBooleanVolatile, jdk_internal_misc_Unsafe, getBooleanVolatile_name, getBoolean_signature, F_RN) \
1165 do_intrinsic(_getByteVolatile, jdk_internal_misc_Unsafe, getByteVolatile_name, getByte_signature, F_RN) \
1166 do_intrinsic(_getShortVolatile, jdk_internal_misc_Unsafe, getShortVolatile_name, getShort_signature, F_RN) \
1167 do_intrinsic(_getCharVolatile, jdk_internal_misc_Unsafe, getCharVolatile_name, getChar_signature, F_RN) \
1168 do_intrinsic(_getIntVolatile, jdk_internal_misc_Unsafe, getIntVolatile_name, getInt_signature, F_RN) \
1169 do_intrinsic(_getLongVolatile, jdk_internal_misc_Unsafe, getLongVolatile_name, getLong_signature, F_RN) \
1170 do_intrinsic(_getFloatVolatile, jdk_internal_misc_Unsafe, getFloatVolatile_name, getFloat_signature, F_RN) \
1171 do_intrinsic(_getDoubleVolatile, jdk_internal_misc_Unsafe, getDoubleVolatile_name, getDouble_signature, F_RN) \
|
308 template(java_lang_invoke_MethodHandleNatives_CallSiteContext_signature, "Ljava/lang/invoke/MethodHandleNatives$CallSiteContext;") \
309 /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \
310 template(findMethodHandleType_name, "findMethodHandleType") \
311 template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
312 template(invokeExact_name, "invokeExact") \
313 template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \
314 template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \
315 template(linkMethod_name, "linkMethod") \
316 template(linkMethod_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
317 template(linkDynamicConstant_name, "linkDynamicConstant") \
318 template(linkDynamicConstant_signature, "(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
319 template(linkCallSite_name, "linkCallSite") \
320 template(linkCallSite_signature, "(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
321 template(setTargetNormal_name, "setTargetNormal") \
322 template(setTargetVolatile_name, "setTargetVolatile") \
323 template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \
324 template(DEFAULT_CONTEXT_name, "DEFAULT_CONTEXT") \
325 NOT_LP64( do_alias(intptr_signature, int_signature) ) \
326 LP64_ONLY( do_alias(intptr_signature, long_signature) ) \
327 \
328 \
329 /* Support for JVMCI */ \
330 JVMCI_VM_SYMBOLS_DO(template, do_alias) \
331 \
332 template(java_lang_StackWalker, "java/lang/StackWalker") \
333 template(java_lang_StackFrameInfo, "java/lang/StackFrameInfo") \
334 template(java_lang_LiveStackFrameInfo, "java/lang/LiveStackFrameInfo") \
335 template(java_lang_StackStreamFactory_AbstractStackWalker, "java/lang/StackStreamFactory$AbstractStackWalker") \
336 template(doStackWalk_signature, "(JIIII)Ljava/lang/Object;") \
337 template(asPrimitive_name, "asPrimitive") \
338 template(asPrimitive_int_signature, "(I)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
339 template(asPrimitive_long_signature, "(J)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
340 \
341 /* common method and field names */ \
342 template(object_initializer_name, "<init>") \
343 template(class_initializer_name, "<clinit>") \
344 template(println_name, "println") \
345 template(printStackTrace_name, "printStackTrace") \
346 template(main_name, "main") \
347 template(name_name, "name") \
348 template(priority_name, "priority") \
431 template(last_cleanup_name, "last_cleanup") \
432 template(loader_name, "loader") \
433 template(getModule_name, "getModule") \
434 template(input_stream_void_signature, "(Ljava/io/InputStream;)V") \
435 template(input_stream_signature, "Ljava/io/InputStream;") \
436 template(print_stream_signature, "Ljava/io/PrintStream;") \
437 template(security_manager_signature, "Ljava/lang/SecurityManager;") \
438 template(definePackage_name, "definePackage") \
439 template(definePackage_signature, "(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;") \
440 template(defineOrCheckPackage_name, "defineOrCheckPackage") \
441 template(defineOrCheckPackage_signature, "(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;") \
442 template(fileToEncodedURL_name, "fileToEncodedURL") \
443 template(fileToEncodedURL_signature, "(Ljava/io/File;)Ljava/net/URL;") \
444 template(getProtectionDomain_name, "getProtectionDomain") \
445 template(getProtectionDomain_signature, "(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;") \
446 template(java_lang_Integer_array_signature, "[Ljava/lang/Integer;") \
447 template(url_code_signer_array_void_signature, "(Ljava/net/URL;[Ljava/security/CodeSigner;)V") \
448 template(module_entry_name, "module_entry") \
449 template(resolved_references_name, "<resolved_references>") \
450 template(init_lock_name, "<init_lock>") \
451 template(default_value_name, ".default") \
452 \
453 /* name symbols needed by intrinsics */ \
454 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
455 \
456 /* common signatures names */ \
457 template(void_method_signature, "()V") \
458 template(void_boolean_signature, "()Z") \
459 template(void_byte_signature, "()B") \
460 template(void_char_signature, "()C") \
461 template(void_short_signature, "()S") \
462 template(void_int_signature, "()I") \
463 template(void_long_signature, "()J") \
464 template(void_float_signature, "()F") \
465 template(void_double_signature, "()D") \
466 template(bool_void_signature, "(Z)V") \
467 template(int_void_signature, "(I)V") \
468 template(int_int_signature, "(I)I") \
469 template(char_char_signature, "(C)C") \
470 template(short_short_signature, "(S)S") \
471 template(int_bool_signature, "(I)Z") \
494 template(object_boolean_signature, "(Ljava/lang/Object;)Z") \
495 template(object_object_signature, "(Ljava/lang/Object;)Ljava/lang/Object;") \
496 template(string_void_signature, "(Ljava/lang/String;)V") \
497 template(string_int_signature, "(Ljava/lang/String;)I") \
498 template(throwable_void_signature, "(Ljava/lang/Throwable;)V") \
499 template(void_throwable_signature, "()Ljava/lang/Throwable;") \
500 template(throwable_throwable_signature, "(Ljava/lang/Throwable;)Ljava/lang/Throwable;") \
501 template(class_void_signature, "(Ljava/lang/Class;)V") \
502 template(class_int_signature, "(Ljava/lang/Class;)I") \
503 template(class_long_signature, "(Ljava/lang/Class;)J") \
504 template(class_boolean_signature, "(Ljava/lang/Class;)Z") \
505 template(throwable_string_void_signature, "(Ljava/lang/Throwable;Ljava/lang/String;)V") \
506 template(string_array_void_signature, "([Ljava/lang/String;)V") \
507 template(string_array_string_array_void_signature, "([Ljava/lang/String;[Ljava/lang/String;)V") \
508 template(thread_throwable_void_signature, "(Ljava/lang/Thread;Ljava/lang/Throwable;)V") \
509 template(thread_void_signature, "(Ljava/lang/Thread;)V") \
510 template(threadgroup_runnable_void_signature, "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V") \
511 template(threadgroup_string_void_signature, "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V") \
512 template(string_class_signature, "(Ljava/lang/String;)Ljava/lang/Class;") \
513 template(object_object_object_signature, "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
514 template(object_object_boolean_signature, "(Ljava/lang/Object;Ljava/lang/Object;)Z") \
515 template(string_string_string_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;") \
516 template(string_string_signature, "(Ljava/lang/String;)Ljava/lang/String;") \
517 template(classloader_string_long_signature, "(Ljava/lang/ClassLoader;Ljava/lang/String;)J") \
518 template(byte_array_void_signature, "([B)V") \
519 template(char_array_void_signature, "([C)V") \
520 template(int_int_void_signature, "(II)V") \
521 template(long_long_void_signature, "(JJ)V") \
522 template(void_classloader_signature, "()Ljava/lang/ClassLoader;") \
523 template(void_object_signature, "()Ljava/lang/Object;") \
524 template(void_class_signature, "()Ljava/lang/Class;") \
525 template(void_class_array_signature, "()[Ljava/lang/Class;") \
526 template(void_string_signature, "()Ljava/lang/String;") \
527 template(void_module_signature, "()Ljava/lang/Module;") \
528 template(object_array_object_signature, "([Ljava/lang/Object;)Ljava/lang/Object;") \
529 template(object_object_array_object_signature, "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\
530 template(exception_void_signature, "(Ljava/lang/Exception;)V") \
531 template(protectiondomain_signature, "[Ljava/security/ProtectionDomain;") \
532 template(accesscontrolcontext_signature, "Ljava/security/AccessControlContext;") \
533 template(class_protectiondomain_signature, "(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V") \
534 template(thread_signature, "Ljava/lang/Thread;") \
643 do_alias(appendToClassPathForInstrumentation_signature, string_void_signature) \
644 template(serializePropertiesToByteArray_name, "serializePropertiesToByteArray") \
645 template(serializePropertiesToByteArray_signature, "()[B") \
646 template(serializeAgentPropertiesToByteArray_name, "serializeAgentPropertiesToByteArray") \
647 template(classRedefinedCount_name, "classRedefinedCount") \
648 template(classLoader_name, "classLoader") \
649 template(componentType_name, "componentType") \
650 \
651 /* forEachRemaining support */ \
652 template(java_util_stream_StreamsRangeIntSpliterator, "java/util/stream/Streams$RangeIntSpliterator") \
653 \
654 /* jfr signatures */ \
655 JFR_TEMPLATES(template) \
656 \
657 /* cds */ \
658 template(jdk_internal_loader_ClassLoaders, "jdk/internal/loader/ClassLoaders") \
659 template(toFileURL_name, "toFileURL") \
660 template(toFileURL_signature, "(Ljava/lang/String;)Ljava/net/URL;") \
661 template(url_void_signature, "(Ljava/net/URL;)V") \
662 \
663 template(java_lang_invoke_ValueBootstrapMethods, "java/lang/invoke/ValueBootstrapMethods") \
664 template(isSubstitutable_name, "isSubstitutable") \
665 /*end*/
666
667 // Here are all the intrinsics known to the runtime and the CI.
668 // Each intrinsic consists of a public enum name (like _hashCode),
669 // followed by a specification of its klass, name, and signature:
670 // template(<id>, <klass>, <name>, <sig>, <FCODE>)
671 //
672 // If you add an intrinsic here, you must also define its name
673 // and signature as members of the VM symbols. The VM symbols for
674 // the intrinsic name and signature may be defined above.
675 //
676 // Because the VM_SYMBOLS_DO macro makes reference to VM_INTRINSICS_DO,
677 // you can also define an intrinsic's name and/or signature locally to the
678 // intrinsic, if this makes sense. (It often does make sense.)
679 //
680 // For example:
681 // do_intrinsic(_foo, java_lang_Object, foo_name, foo_signature, F_xx)
682 // do_name( foo_name, "foo")
683 // do_signature(foo_signature, "()F")
684 // klass = vmSymbols::java_lang_Object()
1108 \
1109 /* unsafe memory references (there are a lot of them...) */ \
1110 do_signature(getReference_signature, "(Ljava/lang/Object;J)Ljava/lang/Object;") \
1111 do_signature(putReference_signature, "(Ljava/lang/Object;JLjava/lang/Object;)V") \
1112 do_signature(getBoolean_signature, "(Ljava/lang/Object;J)Z") \
1113 do_signature(putBoolean_signature, "(Ljava/lang/Object;JZ)V") \
1114 do_signature(getByte_signature, "(Ljava/lang/Object;J)B") \
1115 do_signature(putByte_signature, "(Ljava/lang/Object;JB)V") \
1116 do_signature(getShort_signature, "(Ljava/lang/Object;J)S") \
1117 do_signature(putShort_signature, "(Ljava/lang/Object;JS)V") \
1118 do_signature(getChar_signature, "(Ljava/lang/Object;J)C") \
1119 do_signature(putChar_signature, "(Ljava/lang/Object;JC)V") \
1120 do_signature(getInt_signature, "(Ljava/lang/Object;J)I") \
1121 do_signature(putInt_signature, "(Ljava/lang/Object;JI)V") \
1122 do_signature(getLong_signature, "(Ljava/lang/Object;J)J") \
1123 do_signature(putLong_signature, "(Ljava/lang/Object;JJ)V") \
1124 do_signature(getFloat_signature, "(Ljava/lang/Object;J)F") \
1125 do_signature(putFloat_signature, "(Ljava/lang/Object;JF)V") \
1126 do_signature(getDouble_signature, "(Ljava/lang/Object;J)D") \
1127 do_signature(putDouble_signature, "(Ljava/lang/Object;JD)V") \
1128 do_signature(getValue_signature, "(Ljava/lang/Object;JLjava/lang/Class;)Ljava/lang/Object;") \
1129 do_signature(putValue_signature, "(Ljava/lang/Object;JLjava/lang/Class;Ljava/lang/Object;)V") \
1130 \
1131 do_name(getReference_name,"getReference") do_name(putReference_name,"putReference") \
1132 do_name(getBoolean_name,"getBoolean") do_name(putBoolean_name,"putBoolean") \
1133 do_name(getByte_name,"getByte") do_name(putByte_name,"putByte") \
1134 do_name(getShort_name,"getShort") do_name(putShort_name,"putShort") \
1135 do_name(getChar_name,"getChar") do_name(putChar_name,"putChar") \
1136 do_name(getInt_name,"getInt") do_name(putInt_name,"putInt") \
1137 do_name(getLong_name,"getLong") do_name(putLong_name,"putLong") \
1138 do_name(getFloat_name,"getFloat") do_name(putFloat_name,"putFloat") \
1139 do_name(getDouble_name,"getDouble") do_name(putDouble_name,"putDouble") \
1140 do_name(getValue_name,"getValue") do_name(putValue_name,"putValue") \
1141 do_name(makePrivateBuffer_name,"makePrivateBuffer") \
1142 do_name(finishPrivateBuffer_name,"finishPrivateBuffer") \
1143 \
1144 do_intrinsic(_getReference, jdk_internal_misc_Unsafe, getReference_name, getReference_signature, F_RN) \
1145 do_intrinsic(_getBoolean, jdk_internal_misc_Unsafe, getBoolean_name, getBoolean_signature, F_RN) \
1146 do_intrinsic(_getByte, jdk_internal_misc_Unsafe, getByte_name, getByte_signature, F_RN) \
1147 do_intrinsic(_getShort, jdk_internal_misc_Unsafe, getShort_name, getShort_signature, F_RN) \
1148 do_intrinsic(_getChar, jdk_internal_misc_Unsafe, getChar_name, getChar_signature, F_RN) \
1149 do_intrinsic(_getInt, jdk_internal_misc_Unsafe, getInt_name, getInt_signature, F_RN) \
1150 do_intrinsic(_getLong, jdk_internal_misc_Unsafe, getLong_name, getLong_signature, F_RN) \
1151 do_intrinsic(_getFloat, jdk_internal_misc_Unsafe, getFloat_name, getFloat_signature, F_RN) \
1152 do_intrinsic(_getDouble, jdk_internal_misc_Unsafe, getDouble_name, getDouble_signature, F_RN) \
1153 do_intrinsic(_getValue, jdk_internal_misc_Unsafe, getValue_name, getValue_signature, F_RN) \
1154 do_intrinsic(_putReference, jdk_internal_misc_Unsafe, putReference_name, putReference_signature, F_RN) \
1155 do_intrinsic(_putBoolean, jdk_internal_misc_Unsafe, putBoolean_name, putBoolean_signature, F_RN) \
1156 do_intrinsic(_putByte, jdk_internal_misc_Unsafe, putByte_name, putByte_signature, F_RN) \
1157 do_intrinsic(_putShort, jdk_internal_misc_Unsafe, putShort_name, putShort_signature, F_RN) \
1158 do_intrinsic(_putChar, jdk_internal_misc_Unsafe, putChar_name, putChar_signature, F_RN) \
1159 do_intrinsic(_putInt, jdk_internal_misc_Unsafe, putInt_name, putInt_signature, F_RN) \
1160 do_intrinsic(_putLong, jdk_internal_misc_Unsafe, putLong_name, putLong_signature, F_RN) \
1161 do_intrinsic(_putFloat, jdk_internal_misc_Unsafe, putFloat_name, putFloat_signature, F_RN) \
1162 do_intrinsic(_putDouble, jdk_internal_misc_Unsafe, putDouble_name, putDouble_signature, F_RN) \
1163 do_intrinsic(_putValue, jdk_internal_misc_Unsafe, putValue_name, putValue_signature, F_RN) \
1164 \
1165 do_intrinsic(_makePrivateBuffer, jdk_internal_misc_Unsafe, makePrivateBuffer_name, object_object_signature, F_RN) \
1166 do_intrinsic(_finishPrivateBuffer, jdk_internal_misc_Unsafe, finishPrivateBuffer_name, object_object_signature, F_RN) \
1167 \
1168 do_name(getReferenceVolatile_name,"getReferenceVolatile") do_name(putReferenceVolatile_name,"putReferenceVolatile") \
1169 do_name(getBooleanVolatile_name,"getBooleanVolatile") do_name(putBooleanVolatile_name,"putBooleanVolatile") \
1170 do_name(getByteVolatile_name,"getByteVolatile") do_name(putByteVolatile_name,"putByteVolatile") \
1171 do_name(getShortVolatile_name,"getShortVolatile") do_name(putShortVolatile_name,"putShortVolatile") \
1172 do_name(getCharVolatile_name,"getCharVolatile") do_name(putCharVolatile_name,"putCharVolatile") \
1173 do_name(getIntVolatile_name,"getIntVolatile") do_name(putIntVolatile_name,"putIntVolatile") \
1174 do_name(getLongVolatile_name,"getLongVolatile") do_name(putLongVolatile_name,"putLongVolatile") \
1175 do_name(getFloatVolatile_name,"getFloatVolatile") do_name(putFloatVolatile_name,"putFloatVolatile") \
1176 do_name(getDoubleVolatile_name,"getDoubleVolatile") do_name(putDoubleVolatile_name,"putDoubleVolatile") \
1177 \
1178 do_intrinsic(_getReferenceVolatile, jdk_internal_misc_Unsafe, getReferenceVolatile_name, getReference_signature, F_RN) \
1179 do_intrinsic(_getBooleanVolatile, jdk_internal_misc_Unsafe, getBooleanVolatile_name, getBoolean_signature, F_RN) \
1180 do_intrinsic(_getByteVolatile, jdk_internal_misc_Unsafe, getByteVolatile_name, getByte_signature, F_RN) \
1181 do_intrinsic(_getShortVolatile, jdk_internal_misc_Unsafe, getShortVolatile_name, getShort_signature, F_RN) \
1182 do_intrinsic(_getCharVolatile, jdk_internal_misc_Unsafe, getCharVolatile_name, getChar_signature, F_RN) \
1183 do_intrinsic(_getIntVolatile, jdk_internal_misc_Unsafe, getIntVolatile_name, getInt_signature, F_RN) \
1184 do_intrinsic(_getLongVolatile, jdk_internal_misc_Unsafe, getLongVolatile_name, getLong_signature, F_RN) \
1185 do_intrinsic(_getFloatVolatile, jdk_internal_misc_Unsafe, getFloatVolatile_name, getFloat_signature, F_RN) \
1186 do_intrinsic(_getDoubleVolatile, jdk_internal_misc_Unsafe, getDoubleVolatile_name, getDouble_signature, F_RN) \
|