comparison src/share/vm/classfile/vmSymbols.hpp @ 6275:957c266d8bc5

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Tue, 21 Aug 2012 10:39:19 +0200
parents 7ee5463a4f48 93c71eb28866
children df02fa2bce58
comparison
equal deleted inserted replaced
5891:fd8832ae511d 6275:957c266d8bc5
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
25 #ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP 25 #ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
26 #define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP 26 #define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
27 27
28 #include "oops/symbol.hpp" 28 #include "oops/symbol.hpp"
29 #include "memory/iterator.hpp" 29 #include "memory/iterator.hpp"
30 #include "trace/traceMacros.hpp"
30 31
31 // The class vmSymbols is a name space for fast lookup of 32 // The class vmSymbols is a name space for fast lookup of
32 // symbols commonly used in the VM. 33 // symbols commonly used in the VM.
33 // 34 //
34 // Sample usage: 35 // Sample usage:
108 template(java_lang_AssertionStatusDirectives, "java/lang/AssertionStatusDirectives") \ 109 template(java_lang_AssertionStatusDirectives, "java/lang/AssertionStatusDirectives") \
109 template(sun_jkernel_DownloadManager, "sun/jkernel/DownloadManager") \ 110 template(sun_jkernel_DownloadManager, "sun/jkernel/DownloadManager") \
110 template(getBootClassPathEntryForClass_name, "getBootClassPathEntryForClass") \ 111 template(getBootClassPathEntryForClass_name, "getBootClassPathEntryForClass") \
111 template(sun_misc_PostVMInitHook, "sun/misc/PostVMInitHook") \ 112 template(sun_misc_PostVMInitHook, "sun/misc/PostVMInitHook") \
112 \ 113 \
114 /* Java runtime version access */ \
115 template(sun_misc_Version, "sun/misc/Version") \
116 template(java_runtime_name_name, "java_runtime_name") \
117 \
113 /* class file format tags */ \ 118 /* class file format tags */ \
114 template(tag_source_file, "SourceFile") \ 119 template(tag_source_file, "SourceFile") \
115 template(tag_inner_classes, "InnerClasses") \ 120 template(tag_inner_classes, "InnerClasses") \
116 template(tag_constant_value, "ConstantValue") \ 121 template(tag_constant_value, "ConstantValue") \
117 template(tag_code, "Code") \ 122 template(tag_code, "Code") \
153 template(java_lang_NegativeArraySizeException, "java/lang/NegativeArraySizeException") \ 158 template(java_lang_NegativeArraySizeException, "java/lang/NegativeArraySizeException") \
154 template(java_lang_NoSuchFieldException, "java/lang/NoSuchFieldException") \ 159 template(java_lang_NoSuchFieldException, "java/lang/NoSuchFieldException") \
155 template(java_lang_NoSuchMethodException, "java/lang/NoSuchMethodException") \ 160 template(java_lang_NoSuchMethodException, "java/lang/NoSuchMethodException") \
156 template(java_lang_NullPointerException, "java/lang/NullPointerException") \ 161 template(java_lang_NullPointerException, "java/lang/NullPointerException") \
157 template(java_lang_StringIndexOutOfBoundsException, "java/lang/StringIndexOutOfBoundsException")\ 162 template(java_lang_StringIndexOutOfBoundsException, "java/lang/StringIndexOutOfBoundsException")\
163 template(java_lang_UnsupportedOperationException, "java/lang/UnsupportedOperationException") \
158 template(java_lang_InvalidClassException, "java/lang/InvalidClassException") \ 164 template(java_lang_InvalidClassException, "java/lang/InvalidClassException") \
159 template(java_lang_reflect_InvocationTargetException, "java/lang/reflect/InvocationTargetException") \ 165 template(java_lang_reflect_InvocationTargetException, "java/lang/reflect/InvocationTargetException") \
160 template(java_lang_Exception, "java/lang/Exception") \ 166 template(java_lang_Exception, "java/lang/Exception") \
161 template(java_lang_RuntimeException, "java/lang/RuntimeException") \ 167 template(java_lang_RuntimeException, "java/lang/RuntimeException") \
162 template(java_io_IOException, "java/io/IOException") \ 168 template(java_io_IOException, "java/io/IOException") \
205 template(newConstructor_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Constructor;") \ 211 template(newConstructor_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Constructor;") \
206 template(newField_name, "newField") \ 212 template(newField_name, "newField") \
207 template(newField_signature, "(Lsun/reflect/FieldInfo;)Ljava/lang/reflect/Field;") \ 213 template(newField_signature, "(Lsun/reflect/FieldInfo;)Ljava/lang/reflect/Field;") \
208 template(newMethod_name, "newMethod") \ 214 template(newMethod_name, "newMethod") \
209 template(newMethod_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Method;") \ 215 template(newMethod_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Method;") \
210 /* the following two names must be in order: */ \ 216 template(invokeBasic_name, "invokeBasic") \
211 template(invokeExact_name, "invokeExact") \ 217 template(linkToVirtual_name, "linkToVirtual") \
212 template(invokeGeneric_name, "invokeGeneric") \ 218 template(linkToStatic_name, "linkToStatic") \
213 template(invokeVarargs_name, "invokeVarargs") \ 219 template(linkToSpecial_name, "linkToSpecial") \
220 template(linkToInterface_name, "linkToInterface") \
221 template(compiledLambdaForm_name, "<compiledLambdaForm>") /*fake name*/ \
214 template(star_name, "*") /*not really a name*/ \ 222 template(star_name, "*") /*not really a name*/ \
215 template(invoke_name, "invoke") \ 223 template(invoke_name, "invoke") \
216 template(override_name, "override") \ 224 template(override_name, "override") \
217 template(parameterTypes_name, "parameterTypes") \ 225 template(parameterTypes_name, "parameterTypes") \
218 template(returnType_name, "returnType") \ 226 template(returnType_name, "returnType") \
229 template(constantPoolOop_name, "constantPoolOop") \ 237 template(constantPoolOop_name, "constantPoolOop") \
230 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\ 238 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\
231 template(base_name, "base") \ 239 template(base_name, "base") \
232 \ 240 \
233 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ 241 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \
234 template(java_lang_invoke_InvokeDynamic, "java/lang/invoke/InvokeDynamic") \
235 template(java_lang_invoke_Linkage, "java/lang/invoke/Linkage") \
236 template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \ 242 template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \
237 template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \ 243 template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \
238 template(java_lang_invoke_MutableCallSite, "java/lang/invoke/MutableCallSite") \ 244 template(java_lang_invoke_MutableCallSite, "java/lang/invoke/MutableCallSite") \
239 template(java_lang_invoke_VolatileCallSite, "java/lang/invoke/VolatileCallSite") \ 245 template(java_lang_invoke_VolatileCallSite, "java/lang/invoke/VolatileCallSite") \
240 template(java_lang_invoke_MethodHandle, "java/lang/invoke/MethodHandle") \ 246 template(java_lang_invoke_MethodHandle, "java/lang/invoke/MethodHandle") \
241 template(java_lang_invoke_MethodType, "java/lang/invoke/MethodType") \ 247 template(java_lang_invoke_MethodType, "java/lang/invoke/MethodType") \
242 template(java_lang_invoke_WrongMethodTypeException, "java/lang/invoke/WrongMethodTypeException") \
243 template(java_lang_invoke_MethodType_signature, "Ljava/lang/invoke/MethodType;") \ 248 template(java_lang_invoke_MethodType_signature, "Ljava/lang/invoke/MethodType;") \
249 template(java_lang_invoke_MemberName_signature, "Ljava/lang/invoke/MemberName;") \
250 template(java_lang_invoke_LambdaForm_signature, "Ljava/lang/invoke/LambdaForm;") \
244 template(java_lang_invoke_MethodHandle_signature, "Ljava/lang/invoke/MethodHandle;") \ 251 template(java_lang_invoke_MethodHandle_signature, "Ljava/lang/invoke/MethodHandle;") \
245 /* internal classes known only to the JVM: */ \ 252 /* internal classes known only to the JVM: */ \
246 template(java_lang_invoke_MethodTypeForm, "java/lang/invoke/MethodTypeForm") \
247 template(java_lang_invoke_MethodTypeForm_signature, "Ljava/lang/invoke/MethodTypeForm;") \
248 template(java_lang_invoke_MemberName, "java/lang/invoke/MemberName") \ 253 template(java_lang_invoke_MemberName, "java/lang/invoke/MemberName") \
249 template(java_lang_invoke_MethodHandleNatives, "java/lang/invoke/MethodHandleNatives") \ 254 template(java_lang_invoke_MethodHandleNatives, "java/lang/invoke/MethodHandleNatives") \
250 template(java_lang_invoke_MethodHandleImpl, "java/lang/invoke/MethodHandleImpl") \ 255 template(java_lang_invoke_LambdaForm, "java/lang/invoke/LambdaForm") \
251 template(java_lang_invoke_AdapterMethodHandle, "java/lang/invoke/AdapterMethodHandle") \ 256 template(java_lang_invoke_ForceInline_signature, "Ljava/lang/invoke/ForceInline;") \
252 template(java_lang_invoke_BoundMethodHandle, "java/lang/invoke/BoundMethodHandle") \ 257 template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \
253 template(java_lang_invoke_DirectMethodHandle, "java/lang/invoke/DirectMethodHandle") \ 258 template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \
254 template(java_lang_invoke_CountingMethodHandle, "java/lang/invoke/CountingMethodHandle") \ 259 template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \
255 /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \ 260 /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \
256 template(findMethodHandleType_name, "findMethodHandleType") \ 261 template(findMethodHandleType_name, "findMethodHandleType") \
257 template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \ 262 template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
258 template(notifyGenericMethodType_name, "notifyGenericMethodType") \
259 template(notifyGenericMethodType_signature, "(Ljava/lang/invoke/MethodType;)V") \
260 template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \ 263 template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \
261 template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \ 264 template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \
262 template(makeDynamicCallSite_name, "makeDynamicCallSite") \ 265 template(linkMethod_name, "linkMethod") \
263 template(makeDynamicCallSite_signature, "(Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;Ljava/lang/invoke/MemberName;I)Ljava/lang/invoke/CallSite;") \ 266 template(linkMethod_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
267 template(linkCallSite_name, "linkCallSite") \
268 template(linkCallSite_signature, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
264 template(setTargetNormal_name, "setTargetNormal") \ 269 template(setTargetNormal_name, "setTargetNormal") \
265 template(setTargetVolatile_name, "setTargetVolatile") \ 270 template(setTargetVolatile_name, "setTargetVolatile") \
266 template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \ 271 template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \
267 NOT_LP64( do_alias(intptr_signature, int_signature) ) \ 272 NOT_LP64( do_alias(intptr_signature, int_signature) ) \
268 LP64_ONLY( do_alias(intptr_signature, long_signature) ) \ 273 LP64_ONLY( do_alias(intptr_signature, long_signature) ) \
426 template(exclusive_owner_thread_name, "exclusiveOwnerThread") \ 431 template(exclusive_owner_thread_name, "exclusiveOwnerThread") \
427 template(park_blocker_name, "parkBlocker") \ 432 template(park_blocker_name, "parkBlocker") \
428 template(park_event_name, "nativeParkEventPointer") \ 433 template(park_event_name, "nativeParkEventPointer") \
429 template(cache_field_name, "cache") \ 434 template(cache_field_name, "cache") \
430 template(value_name, "value") \ 435 template(value_name, "value") \
436 template(offset_name, "offset") \
437 template(count_name, "count") \
438 template(hash_name, "hash") \
431 template(frontCacheEnabled_name, "frontCacheEnabled") \ 439 template(frontCacheEnabled_name, "frontCacheEnabled") \
432 template(stringCacheEnabled_name, "stringCacheEnabled") \ 440 template(stringCacheEnabled_name, "stringCacheEnabled") \
433 template(numberOfLeadingZeros_name, "numberOfLeadingZeros") \ 441 template(numberOfLeadingZeros_name, "numberOfLeadingZeros") \
434 template(numberOfTrailingZeros_name, "numberOfTrailingZeros") \ 442 template(numberOfTrailingZeros_name, "numberOfTrailingZeros") \
435 template(bitCount_name, "bitCount") \ 443 template(bitCount_name, "bitCount") \
438 template(length_name, "length") \ 446 template(length_name, "length") \
439 template(target_name, "target") \ 447 template(target_name, "target") \
440 template(toString_name, "toString") \ 448 template(toString_name, "toString") \
441 template(values_name, "values") \ 449 template(values_name, "values") \
442 template(receiver_name, "receiver") \ 450 template(receiver_name, "receiver") \
443 template(vmmethod_name, "vmmethod") \
444 template(vmtarget_name, "vmtarget") \ 451 template(vmtarget_name, "vmtarget") \
452 template(vmindex_name, "vmindex") \
453 template(vmcount_name, "vmcount") \
445 template(vmentry_name, "vmentry") \ 454 template(vmentry_name, "vmentry") \
446 template(vmcount_name, "vmcount") \
447 template(vmslots_name, "vmslots") \
448 template(vmlayout_name, "vmlayout") \
449 template(vmindex_name, "vmindex") \
450 template(vmargslot_name, "vmargslot") \
451 template(flags_name, "flags") \ 455 template(flags_name, "flags") \
452 template(argument_name, "argument") \
453 template(conversion_name, "conversion") \
454 template(rtype_name, "rtype") \ 456 template(rtype_name, "rtype") \
455 template(ptypes_name, "ptypes") \ 457 template(ptypes_name, "ptypes") \
456 template(form_name, "form") \ 458 template(form_name, "form") \
457 template(erasedType_name, "erasedType") \ 459 template(basicType_name, "basicType") \
458 template(genericInvoker_name, "genericInvoker") \
459 template(append_name, "append") \ 460 template(append_name, "append") \
460 template(klass_name, "klass") \ 461 template(klass_name, "klass") \
461 template(resolved_constructor_name, "resolved_constructor") \ 462 template(resolved_constructor_name, "resolved_constructor") \
462 template(array_klass_name, "array_klass") \ 463 template(array_klass_name, "array_klass") \
463 template(oop_size_name, "oop_size") \ 464 template(oop_size_name, "oop_size") \
513 template(throwable_void_signature, "(Ljava/lang/Throwable;)V") \ 514 template(throwable_void_signature, "(Ljava/lang/Throwable;)V") \
514 template(void_throwable_signature, "()Ljava/lang/Throwable;") \ 515 template(void_throwable_signature, "()Ljava/lang/Throwable;") \
515 template(throwable_throwable_signature, "(Ljava/lang/Throwable;)Ljava/lang/Throwable;") \ 516 template(throwable_throwable_signature, "(Ljava/lang/Throwable;)Ljava/lang/Throwable;") \
516 template(class_void_signature, "(Ljava/lang/Class;)V") \ 517 template(class_void_signature, "(Ljava/lang/Class;)V") \
517 template(class_int_signature, "(Ljava/lang/Class;)I") \ 518 template(class_int_signature, "(Ljava/lang/Class;)I") \
519 template(class_long_signature, "(Ljava/lang/Class;)J") \
518 template(class_boolean_signature, "(Ljava/lang/Class;)Z") \ 520 template(class_boolean_signature, "(Ljava/lang/Class;)Z") \
519 template(throwable_string_void_signature, "(Ljava/lang/Throwable;Ljava/lang/String;)V") \ 521 template(throwable_string_void_signature, "(Ljava/lang/Throwable;Ljava/lang/String;)V") \
520 template(string_array_void_signature, "([Ljava/lang/String;)V") \ 522 template(string_array_void_signature, "([Ljava/lang/String;)V") \
521 template(string_array_string_array_void_signature, "([Ljava/lang/String;[Ljava/lang/String;)V") \ 523 template(string_array_string_array_void_signature, "([Ljava/lang/String;[Ljava/lang/String;)V") \
522 template(thread_throwable_void_signature, "(Ljava/lang/Thread;Ljava/lang/Throwable;)V") \ 524 template(thread_throwable_void_signature, "(Ljava/lang/Thread;Ljava/lang/Throwable;)V") \
598 template(createGarbageCollectorMBean_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMBean;") \ 600 template(createGarbageCollectorMBean_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMBean;") \
599 template(trigger_name, "trigger") \ 601 template(trigger_name, "trigger") \
600 template(clear_name, "clear") \ 602 template(clear_name, "clear") \
601 template(trigger_method_signature, "(ILjava/lang/management/MemoryUsage;)V") \ 603 template(trigger_method_signature, "(ILjava/lang/management/MemoryUsage;)V") \
602 template(startAgent_name, "startAgent") \ 604 template(startAgent_name, "startAgent") \
605 template(startRemoteAgent_name, "startRemoteManagementAgent") \
606 template(startLocalAgent_name, "startLocalManagementAgent") \
607 template(stopRemoteAgent_name, "stopRemoteManagementAgent") \
603 template(java_lang_management_ThreadInfo_constructor_signature, "(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;)V") \ 608 template(java_lang_management_ThreadInfo_constructor_signature, "(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;)V") \
604 template(java_lang_management_ThreadInfo_with_locks_constructor_signature, "(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/Object;[I[Ljava/lang/Object;)V") \ 609 template(java_lang_management_ThreadInfo_with_locks_constructor_signature, "(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/Object;[I[Ljava/lang/Object;)V") \
605 template(long_long_long_long_void_signature, "(JJJJ)V") \ 610 template(long_long_long_long_void_signature, "(JJJJ)V") \
606 \ 611 \
607 template(java_lang_management_MemoryPoolMXBean, "java/lang/management/MemoryPoolMXBean") \ 612 template(java_lang_management_MemoryPoolMXBean, "java/lang/management/MemoryPoolMXBean") \
625 do_alias(appendToClassPathForInstrumentation_signature, string_void_signature) \ 630 do_alias(appendToClassPathForInstrumentation_signature, string_void_signature) \
626 template(serializePropertiesToByteArray_name, "serializePropertiesToByteArray") \ 631 template(serializePropertiesToByteArray_name, "serializePropertiesToByteArray") \
627 template(serializePropertiesToByteArray_signature, "()[B") \ 632 template(serializePropertiesToByteArray_signature, "()[B") \
628 template(serializeAgentPropertiesToByteArray_name, "serializeAgentPropertiesToByteArray") \ 633 template(serializeAgentPropertiesToByteArray_name, "serializeAgentPropertiesToByteArray") \
629 template(classRedefinedCount_name, "classRedefinedCount") \ 634 template(classRedefinedCount_name, "classRedefinedCount") \
635 \
636 /* trace signatures */ \
637 TRACE_TEMPLATES(template) \
638 \
630 /*end*/ 639 /*end*/
631
632
633 640
634 // Here are all the intrinsics known to the runtime and the CI. 641 // Here are all the intrinsics known to the runtime and the CI.
635 // Each intrinsic consists of a public enum name (like _hashCode), 642 // Each intrinsic consists of a public enum name (like _hashCode),
636 // followed by a specification of its klass, name, and signature: 643 // followed by a specification of its klass, name, and signature:
637 // template(<id>, <klass>, <name>, <sig>, <FCODE>) 644 // template(<id>, <klass>, <name>, <sig>, <FCODE>)
734 \ 741 \
735 do_name( currentTimeMillis_name, "currentTimeMillis") \ 742 do_name( currentTimeMillis_name, "currentTimeMillis") \
736 do_intrinsic(_nanoTime, java_lang_System, nanoTime_name, void_long_signature, F_S) \ 743 do_intrinsic(_nanoTime, java_lang_System, nanoTime_name, void_long_signature, F_S) \
737 do_name( nanoTime_name, "nanoTime") \ 744 do_name( nanoTime_name, "nanoTime") \
738 \ 745 \
746 TRACE_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias) \
747 \
739 do_intrinsic(_arraycopy, java_lang_System, arraycopy_name, arraycopy_signature, F_S) \ 748 do_intrinsic(_arraycopy, java_lang_System, arraycopy_name, arraycopy_signature, F_S) \
740 do_name( arraycopy_name, "arraycopy") \ 749 do_name( arraycopy_name, "arraycopy") \
741 do_signature(arraycopy_signature, "(Ljava/lang/Object;ILjava/lang/Object;II)V") \ 750 do_signature(arraycopy_signature, "(Ljava/lang/Object;ILjava/lang/Object;II)V") \
742 do_intrinsic(_isInterrupted, java_lang_Thread, isInterrupted_name, isInterrupted_signature, F_R) \ 751 do_intrinsic(_isInterrupted, java_lang_Thread, isInterrupted_name, isInterrupted_signature, F_R) \
743 do_name( isInterrupted_name, "isInterrupted") \ 752 do_name( isInterrupted_name, "isInterrupted") \
798 do_intrinsic(_checkIndex, java_nio_Buffer, checkIndex_name, int_int_signature, F_R) \ 807 do_intrinsic(_checkIndex, java_nio_Buffer, checkIndex_name, int_int_signature, F_R) \
799 do_name( checkIndex_name, "checkIndex") \ 808 do_name( checkIndex_name, "checkIndex") \
800 \ 809 \
801 /* java/lang/ref/Reference */ \ 810 /* java/lang/ref/Reference */ \
802 do_intrinsic(_Reference_get, java_lang_ref_Reference, get_name, void_object_signature, F_R) \ 811 do_intrinsic(_Reference_get, java_lang_ref_Reference, get_name, void_object_signature, F_R) \
803 \
804 \
805 do_class(sun_misc_AtomicLongCSImpl, "sun/misc/AtomicLongCSImpl") \
806 do_intrinsic(_get_AtomicLong, sun_misc_AtomicLongCSImpl, get_name, void_long_signature, F_R) \
807 /* (symbols get_name and void_long_signature defined above) */ \
808 \
809 do_intrinsic(_attemptUpdate, sun_misc_AtomicLongCSImpl, attemptUpdate_name, attemptUpdate_signature, F_R) \
810 do_name( attemptUpdate_name, "attemptUpdate") \
811 do_signature(attemptUpdate_signature, "(JJ)Z") \
812 \ 812 \
813 /* support for sun.misc.Unsafe */ \ 813 /* support for sun.misc.Unsafe */ \
814 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ 814 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \
815 \ 815 \
816 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ 816 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \
1003 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \ 1003 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \
1004 /* (symbol object_initializer_name defined above) */ \ 1004 /* (symbol object_initializer_name defined above) */ \
1005 \ 1005 \
1006 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \ 1006 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \
1007 /* (symbols invoke_name and invoke_signature defined above) */ \ 1007 /* (symbols invoke_name and invoke_signature defined above) */ \
1008 do_intrinsic(_checkSpreadArgument, java_lang_invoke_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \ 1008 /* the polymorphic MH intrinsics must be in compact order, with _invokeGeneric first and _linkToInterface last */ \
1009 do_name( checkSpreadArgument_name, "checkSpreadArgument") \ 1009 do_intrinsic(_invokeGeneric, java_lang_invoke_MethodHandle, invoke_name, star_name, F_RN) \
1010 do_name( checkSpreadArgument_signature, "(Ljava/lang/Object;I)V") \ 1010 do_intrinsic(_invokeBasic, java_lang_invoke_MethodHandle, invokeBasic_name, star_name, F_RN) \
1011 do_intrinsic(_invokeExact, java_lang_invoke_MethodHandle, invokeExact_name, object_array_object_signature, F_RN) \ 1011 do_intrinsic(_linkToVirtual, java_lang_invoke_MethodHandle, linkToVirtual_name, star_name, F_SN) \
1012 do_intrinsic(_invokeGeneric, java_lang_invoke_MethodHandle, invokeGeneric_name, object_array_object_signature, F_RN) \ 1012 do_intrinsic(_linkToStatic, java_lang_invoke_MethodHandle, linkToStatic_name, star_name, F_SN) \
1013 do_intrinsic(_invokeVarargs, java_lang_invoke_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R) \ 1013 do_intrinsic(_linkToSpecial, java_lang_invoke_MethodHandle, linkToSpecial_name, star_name, F_SN) \
1014 do_intrinsic(_invokeDynamic, java_lang_invoke_InvokeDynamic, star_name, object_array_object_signature, F_SN) \ 1014 do_intrinsic(_linkToInterface, java_lang_invoke_MethodHandle, linkToInterface_name, star_name, F_SN) \
1015 \ 1015 /* special marker for bytecode generated for the JVM from a LambdaForm: */ \
1016 do_intrinsic(_selectAlternative, java_lang_invoke_MethodHandleImpl, selectAlternative_name, selectAlternative_signature, F_S) \ 1016 do_intrinsic(_compiledLambdaForm, java_lang_invoke_MethodHandle, compiledLambdaForm_name, star_name, F_RN) \
1017 \ 1017 \
1018 /* unboxing methods: */ \ 1018 /* unboxing methods: */ \
1019 do_intrinsic(_booleanValue, java_lang_Boolean, booleanValue_name, void_boolean_signature, F_R) \ 1019 do_intrinsic(_booleanValue, java_lang_Boolean, booleanValue_name, void_boolean_signature, F_R) \
1020 do_name( booleanValue_name, "booleanValue") \ 1020 do_name( booleanValue_name, "booleanValue") \
1021 do_intrinsic(_byteValue, java_lang_Byte, byteValue_name, void_byte_signature, F_R) \ 1021 do_intrinsic(_byteValue, java_lang_Byte, byteValue_name, void_byte_signature, F_R) \
1144 VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) 1144 VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE)
1145 #undef VM_INTRINSIC_ENUM 1145 #undef VM_INTRINSIC_ENUM
1146 1146
1147 ID_LIMIT, 1147 ID_LIMIT,
1148 LAST_COMPILER_INLINE = _prefetchWriteStatic, 1148 LAST_COMPILER_INLINE = _prefetchWriteStatic,
1149 FIRST_MH_SIG_POLY = _invokeGeneric,
1150 FIRST_MH_STATIC = _linkToVirtual,
1151 LAST_MH_SIG_POLY = _linkToInterface,
1152
1149 FIRST_ID = _none + 1 1153 FIRST_ID = _none + 1
1150 }; 1154 };
1151 1155
1152 enum Flags { 1156 enum Flags {
1153 // AccessFlags syndromes relevant to intrinsics. 1157 // AccessFlags syndromes relevant to intrinsics.