< prev index next >
src/hotspot/share/utilities/constantTag.hpp
Print this page
rev 52749 : Bootstrap method consolidation
* clean up and simplify JDK support code for BSM invocation
* simplify JVM bootstrap handshake: use BootstrapCallInfo only
* remove unused JVM paths and data fields
* move bootstrap argument processing from MethodHandleNatives to ConstantPool
* remove ConstantGroup; merge argument access into BootstrapCallInfo
* adjust BSM argument access: remove copyArguments, add argumentRef API
* add metadata-free BSM modes, including symbolic arguments from CP
@@ -96,10 +96,16 @@
bool is_method_type() const { return _tag == JVM_CONSTANT_MethodType; }
bool is_method_handle() const { return _tag == JVM_CONSTANT_MethodHandle; }
bool is_dynamic_constant() const { return _tag == JVM_CONSTANT_Dynamic; }
bool is_invoke_dynamic() const { return _tag == JVM_CONSTANT_InvokeDynamic; }
+ bool has_bootstrap() const {
+ return (_tag == JVM_CONSTANT_Dynamic ||
+ _tag == JVM_CONSTANT_DynamicInError ||
+ _tag == JVM_CONSTANT_InvokeDynamic);
+ }
+
bool is_loadable_constant() const {
return ((_tag >= JVM_CONSTANT_Integer && _tag <= JVM_CONSTANT_String) ||
is_method_type() || is_method_handle() || is_dynamic_constant() ||
is_unresolved_klass());
}
@@ -127,10 +133,11 @@
assert(false, "bad basic type for tag");
return constantTag();
}
jbyte value() const { return _tag; }
+ jbyte classfile_value() const;
jbyte error_value() const;
jbyte non_error_value() const;
BasicType basic_type() const; // if used with ldc, what kind of value gets pushed?
< prev index next >