--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp Mon Jul 23 13:04:59 2012 -0700
+++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp Tue Jul 24 10:51:00 2012 -0700
@@ -212,10 +212,12 @@
template(newField_signature, "(Lsun/reflect/FieldInfo;)Ljava/lang/reflect/Field;") \
template(newMethod_name, "newMethod") \
template(newMethod_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Method;") \
- /* the following two names must be in order: */ \
- template(invokeExact_name, "invokeExact") \
- template(invokeGeneric_name, "invokeGeneric") \
- template(invokeVarargs_name, "invokeVarargs") \
+ template(invokeBasic_name, "invokeBasic") \
+ template(linkToVirtual_name, "linkToVirtual") \
+ template(linkToStatic_name, "linkToStatic") \
+ template(linkToSpecial_name, "linkToSpecial") \
+ template(linkToInterface_name, "linkToInterface") \
+ template(compiledLambdaForm_name, "<compiledLambdaForm>") /*fake name*/ \
template(star_name, "*") /*not really a name*/ \
template(invoke_name, "invoke") \
template(override_name, "override") \
@@ -236,37 +238,33 @@
template(base_name, "base") \
\
/* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \
- template(java_lang_invoke_InvokeDynamic, "java/lang/invoke/InvokeDynamic") \
- template(java_lang_invoke_Linkage, "java/lang/invoke/Linkage") \
template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \
template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \
template(java_lang_invoke_MutableCallSite, "java/lang/invoke/MutableCallSite") \
template(java_lang_invoke_VolatileCallSite, "java/lang/invoke/VolatileCallSite") \
template(java_lang_invoke_MethodHandle, "java/lang/invoke/MethodHandle") \
template(java_lang_invoke_MethodType, "java/lang/invoke/MethodType") \
- template(java_lang_invoke_WrongMethodTypeException, "java/lang/invoke/WrongMethodTypeException") \
template(java_lang_invoke_MethodType_signature, "Ljava/lang/invoke/MethodType;") \
+ template(java_lang_invoke_MemberName_signature, "Ljava/lang/invoke/MemberName;") \
+ template(java_lang_invoke_LambdaForm_signature, "Ljava/lang/invoke/LambdaForm;") \
template(java_lang_invoke_MethodHandle_signature, "Ljava/lang/invoke/MethodHandle;") \
/* internal classes known only to the JVM: */ \
- template(java_lang_invoke_MethodTypeForm, "java/lang/invoke/MethodTypeForm") \
- template(java_lang_invoke_MethodTypeForm_signature, "Ljava/lang/invoke/MethodTypeForm;") \
template(java_lang_invoke_MemberName, "java/lang/invoke/MemberName") \
template(java_lang_invoke_MethodHandleNatives, "java/lang/invoke/MethodHandleNatives") \
- template(java_lang_invoke_MethodHandleImpl, "java/lang/invoke/MethodHandleImpl") \
- template(java_lang_invoke_AdapterMethodHandle, "java/lang/invoke/AdapterMethodHandle") \
- template(java_lang_invoke_BoundMethodHandle, "java/lang/invoke/BoundMethodHandle") \
- template(java_lang_invoke_DirectMethodHandle, "java/lang/invoke/DirectMethodHandle") \
- template(java_lang_invoke_CountingMethodHandle, "java/lang/invoke/CountingMethodHandle") \
+ template(java_lang_invoke_LambdaForm, "java/lang/invoke/LambdaForm") \
template(java_lang_invoke_ForceInline_signature, "Ljava/lang/invoke/ForceInline;") \
+ template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \
+ template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \
+ template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \
/* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \
template(findMethodHandleType_name, "findMethodHandleType") \
template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
- template(notifyGenericMethodType_name, "notifyGenericMethodType") \
- template(notifyGenericMethodType_signature, "(Ljava/lang/invoke/MethodType;)V") \
template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \
template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \
- template(makeDynamicCallSite_name, "makeDynamicCallSite") \
- 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;") \
+ template(linkMethod_name, "linkMethod") \
+ template(linkMethod_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \
+ template(linkCallSite_name, "linkCallSite") \
+ 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;") \
template(setTargetNormal_name, "setTargetNormal") \
template(setTargetVolatile_name, "setTargetVolatile") \
template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \
@@ -359,22 +357,15 @@
template(toString_name, "toString") \
template(values_name, "values") \
template(receiver_name, "receiver") \
- template(vmmethod_name, "vmmethod") \
template(vmtarget_name, "vmtarget") \
- template(vmentry_name, "vmentry") \
+ template(vmindex_name, "vmindex") \
template(vmcount_name, "vmcount") \
- template(vmslots_name, "vmslots") \
- template(vmlayout_name, "vmlayout") \
- template(vmindex_name, "vmindex") \
- template(vmargslot_name, "vmargslot") \
+ template(vmentry_name, "vmentry") \
template(flags_name, "flags") \
- template(argument_name, "argument") \
- template(conversion_name, "conversion") \
template(rtype_name, "rtype") \
template(ptypes_name, "ptypes") \
template(form_name, "form") \
- template(erasedType_name, "erasedType") \
- template(genericInvoker_name, "genericInvoker") \
+ template(basicType_name, "basicType") \
template(append_name, "append") \
template(klass_name, "klass") \
template(resolved_constructor_name, "resolved_constructor") \
@@ -922,15 +913,15 @@
\
do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \
/* (symbols invoke_name and invoke_signature defined above) */ \
- do_intrinsic(_checkSpreadArgument, java_lang_invoke_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \
- do_name( checkSpreadArgument_name, "checkSpreadArgument") \
- do_name( checkSpreadArgument_signature, "(Ljava/lang/Object;I)V") \
- do_intrinsic(_invokeExact, java_lang_invoke_MethodHandle, invokeExact_name, object_array_object_signature, F_RN) \
- do_intrinsic(_invokeGeneric, java_lang_invoke_MethodHandle, invokeGeneric_name, object_array_object_signature, F_RN) \
- do_intrinsic(_invokeVarargs, java_lang_invoke_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R) \
- do_intrinsic(_invokeDynamic, java_lang_invoke_InvokeDynamic, star_name, object_array_object_signature, F_SN) \
- \
- do_intrinsic(_selectAlternative, java_lang_invoke_MethodHandleImpl, selectAlternative_name, selectAlternative_signature, F_S) \
+ /* the polymorphic MH intrinsics must be in compact order, with _invokeGeneric first and _linkToInterface last */ \
+ do_intrinsic(_invokeGeneric, java_lang_invoke_MethodHandle, invoke_name, star_name, F_RN) \
+ do_intrinsic(_invokeBasic, java_lang_invoke_MethodHandle, invokeBasic_name, star_name, F_RN) \
+ do_intrinsic(_linkToVirtual, java_lang_invoke_MethodHandle, linkToVirtual_name, star_name, F_SN) \
+ do_intrinsic(_linkToStatic, java_lang_invoke_MethodHandle, linkToStatic_name, star_name, F_SN) \
+ do_intrinsic(_linkToSpecial, java_lang_invoke_MethodHandle, linkToSpecial_name, star_name, F_SN) \
+ do_intrinsic(_linkToInterface, java_lang_invoke_MethodHandle, linkToInterface_name, star_name, F_SN) \
+ /* special marker for bytecode generated for the JVM from a LambdaForm: */ \
+ do_intrinsic(_compiledLambdaForm, java_lang_invoke_MethodHandle, compiledLambdaForm_name, star_name, F_RN) \
\
/* unboxing methods: */ \
do_intrinsic(_booleanValue, java_lang_Boolean, booleanValue_name, void_boolean_signature, F_R) \
@@ -1063,6 +1054,10 @@
ID_LIMIT,
LAST_COMPILER_INLINE = _prefetchWriteStatic,
+ FIRST_MH_SIG_POLY = _invokeGeneric,
+ FIRST_MH_STATIC = _linkToVirtual,
+ LAST_MH_SIG_POLY = _linkToInterface,
+
FIRST_ID = _none + 1
};