hotspot/src/share/vm/prims/methodHandles.hpp
changeset 35086 bbf32241d851
parent 31037 01a5c5fa5681
child 35232 76aed99c0ddd
equal deleted inserted replaced
35085:839c8ba29724 35086:bbf32241d851
    89   static bool is_signature_polymorphic(vmIntrinsics::ID iid) {
    89   static bool is_signature_polymorphic(vmIntrinsics::ID iid) {
    90     return (iid >= vmIntrinsics::FIRST_MH_SIG_POLY &&
    90     return (iid >= vmIntrinsics::FIRST_MH_SIG_POLY &&
    91             iid <= vmIntrinsics::LAST_MH_SIG_POLY);
    91             iid <= vmIntrinsics::LAST_MH_SIG_POLY);
    92   }
    92   }
    93 
    93 
       
    94   static bool is_signature_polymorphic_method(Method* m) {
       
    95     return is_signature_polymorphic(m->intrinsic_id());
       
    96   }
       
    97 
    94   static bool is_signature_polymorphic_intrinsic(vmIntrinsics::ID iid) {
    98   static bool is_signature_polymorphic_intrinsic(vmIntrinsics::ID iid) {
    95     assert(is_signature_polymorphic(iid), "");
    99     assert(is_signature_polymorphic(iid), "");
    96     // Most sig-poly methods are intrinsics which do not require an
   100     // Most sig-poly methods are intrinsics which do not require an
    97     // appeal to Java for adapter code.
   101     // appeal to Java for adapter code.
    98     return (iid != vmIntrinsics::_invokeGeneric);
   102     return (iid != vmIntrinsics::_invokeGeneric);
   128   }
   132   }
   129   static bool is_method_handle_invoke_name(Klass* klass, Symbol* name);
   133   static bool is_method_handle_invoke_name(Klass* klass, Symbol* name);
   130   static bool is_signature_polymorphic_name(Klass* klass, Symbol* name) {
   134   static bool is_signature_polymorphic_name(Klass* klass, Symbol* name) {
   131     return signature_polymorphic_name_id(klass, name) != vmIntrinsics::_none;
   135     return signature_polymorphic_name_id(klass, name) != vmIntrinsics::_none;
   132   }
   136   }
       
   137 
       
   138   static Bytecodes::Code signature_polymorphic_intrinsic_bytecode(vmIntrinsics::ID id);
   133 
   139 
   134   static int get_named_constant(int which, Handle name_box, TRAPS);
   140   static int get_named_constant(int which, Handle name_box, TRAPS);
   135 
   141 
   136 public:
   142 public:
   137   static Symbol* lookup_signature(oop type_str, bool polymorphic, TRAPS);  // use TempNewSymbol
   143   static Symbol* lookup_signature(oop type_str, bool polymorphic, TRAPS);  // use TempNewSymbol