< 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 >