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
|