src/share/vm/prims/methodHandles.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/prims

src/share/vm/prims/methodHandles.hpp

Print this page




  87 
  88   static bool is_signature_polymorphic_intrinsic(vmIntrinsics::ID iid) {
  89     assert(is_signature_polymorphic(iid), "");
  90     // Most sig-poly methods are intrinsics which do not require an
  91     // appeal to Java for adapter code.
  92     return (iid != vmIntrinsics::_invokeGeneric);
  93   }
  94 
  95   static bool is_signature_polymorphic_static(vmIntrinsics::ID iid) {
  96     assert(is_signature_polymorphic(iid), "");
  97     return (iid >= vmIntrinsics::FIRST_MH_STATIC &&
  98             iid <= vmIntrinsics::LAST_MH_SIG_POLY);
  99   }
 100 
 101   static bool has_member_arg(vmIntrinsics::ID iid) {
 102     assert(is_signature_polymorphic(iid), "");
 103     return (iid >= vmIntrinsics::_linkToVirtual &&
 104             iid <= vmIntrinsics::_linkToInterface);
 105   }
 106   static bool has_member_arg(Symbol* klass, Symbol* name) {
 107     if ((klass == vmSymbols::java_lang_invoke_MethodHandle()) &&
 108         is_signature_polymorphic_name(name)) {
 109       vmIntrinsics::ID iid = signature_polymorphic_name_id(name);
 110       return has_member_arg(iid);
 111     }
 112     return false;
 113   }
 114 
 115   static Symbol* signature_polymorphic_intrinsic_name(vmIntrinsics::ID iid);
 116   static int signature_polymorphic_intrinsic_ref_kind(vmIntrinsics::ID iid);
 117 
 118   static vmIntrinsics::ID signature_polymorphic_name_id(Klass* klass, Symbol* name);
 119   static vmIntrinsics::ID signature_polymorphic_name_id(Symbol* name);
 120   static bool is_signature_polymorphic_name(Symbol* name) {
 121     return signature_polymorphic_name_id(name) != vmIntrinsics::_none;
 122   }
 123   static bool is_method_handle_invoke_name(Klass* klass, Symbol* name);
 124   static bool is_signature_polymorphic_name(Klass* klass, Symbol* name) {
 125     return signature_polymorphic_name_id(klass, name) != vmIntrinsics::_none;
 126   }
 127 




  87 
  88   static bool is_signature_polymorphic_intrinsic(vmIntrinsics::ID iid) {
  89     assert(is_signature_polymorphic(iid), "");
  90     // Most sig-poly methods are intrinsics which do not require an
  91     // appeal to Java for adapter code.
  92     return (iid != vmIntrinsics::_invokeGeneric);
  93   }
  94 
  95   static bool is_signature_polymorphic_static(vmIntrinsics::ID iid) {
  96     assert(is_signature_polymorphic(iid), "");
  97     return (iid >= vmIntrinsics::FIRST_MH_STATIC &&
  98             iid <= vmIntrinsics::LAST_MH_SIG_POLY);
  99   }
 100 
 101   static bool has_member_arg(vmIntrinsics::ID iid) {
 102     assert(is_signature_polymorphic(iid), "");
 103     return (iid >= vmIntrinsics::_linkToVirtual &&
 104             iid <= vmIntrinsics::_linkToInterface);
 105   }
 106   static bool has_member_arg(Symbol* klass, Symbol* name) {
 107     if ((klass->equals(vmSymbols::java_lang_invoke_MethodHandle())) &&
 108         is_signature_polymorphic_name(name)) {
 109       vmIntrinsics::ID iid = signature_polymorphic_name_id(name);
 110       return has_member_arg(iid);
 111     }
 112     return false;
 113   }
 114 
 115   static Symbol* signature_polymorphic_intrinsic_name(vmIntrinsics::ID iid);
 116   static int signature_polymorphic_intrinsic_ref_kind(vmIntrinsics::ID iid);
 117 
 118   static vmIntrinsics::ID signature_polymorphic_name_id(Klass* klass, Symbol* name);
 119   static vmIntrinsics::ID signature_polymorphic_name_id(Symbol* name);
 120   static bool is_signature_polymorphic_name(Symbol* name) {
 121     return signature_polymorphic_name_id(name) != vmIntrinsics::_none;
 122   }
 123   static bool is_method_handle_invoke_name(Klass* klass, Symbol* name);
 124   static bool is_signature_polymorphic_name(Klass* klass, Symbol* name) {
 125     return signature_polymorphic_name_id(klass, name) != vmIntrinsics::_none;
 126   }
 127 


src/share/vm/prims/methodHandles.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File