comparison src/share/vm/jvmci/jvmciCompilerToVM.cpp @ 23741:6542cd8da2da

include VarHandle in signature polymorphic method test (JDK-8164214)
author Doug Simon <doug.simon@oracle.com>
date Tue, 23 Aug 2016 22:58:50 +0200
parents 724fbad94ee3
children a67f4d28935f
comparison
equal deleted inserted replaced
23740:724fbad94ee3 23741:6542cd8da2da
1245 cp_cache_entry->set_dynamic_call(cp, callInfo); 1245 cp_cache_entry->set_dynamic_call(cp, callInfo);
1246 C2V_END 1246 C2V_END
1247 1247
1248 C2V_VMENTRY(void, resolveInvokeHandleInPool, (JNIEnv*, jobject, jobject jvmci_constant_pool, jint index)) 1248 C2V_VMENTRY(void, resolveInvokeHandleInPool, (JNIEnv*, jobject, jobject jvmci_constant_pool, jint index))
1249 constantPoolHandle cp = CompilerToVM::asConstantPool(jvmci_constant_pool); 1249 constantPoolHandle cp = CompilerToVM::asConstantPool(jvmci_constant_pool);
1250 CallInfo callInfo; 1250 KlassHandle holder = cp->klass_ref_at(index, CHECK);
1251 LinkResolver::resolve_invokehandle(callInfo, cp, index, CHECK); 1251 Symbol* name = cp->name_ref_at(index);
1252 ConstantPoolCacheEntry* cp_cache_entry = cp_cache_entry = cp->cache()->entry_at(cp->decode_cpcache_index(index)); 1252 if (MethodHandles::is_signature_polymorphic_name(holder(), name)) {
1253 cp_cache_entry->set_method_handle(cp, callInfo); 1253 CallInfo callInfo;
1254 LinkResolver::resolve_invokehandle(callInfo, cp, index, CHECK);
1255 ConstantPoolCacheEntry* cp_cache_entry = cp_cache_entry = cp->cache()->entry_at(cp->decode_cpcache_index(index));
1256 cp_cache_entry->set_method_handle(cp, callInfo);
1257 }
1258 C2V_END
1259
1260 C2V_VMENTRY(jobject, getSignaturePolymorphicHolders, (JNIEnv*, jobject))
1261 objArrayHandle holders = oopFactory::new_objArray(SystemDictionary::String_klass(), 2, CHECK_NULL);
1262 Handle mh = java_lang_String::create_from_str("Ljava/lang/invoke/MethodHandle;", CHECK_NULL);
1263 Handle vh = java_lang_String::create_from_str("Ljava/lang/invoke/VarHandle;", CHECK_NULL);
1264 holders->obj_at_put(0, mh());
1265 holders->obj_at_put(1, vh());
1266 return JNIHandles::make_local(THREAD, holders());
1254 C2V_END 1267 C2V_END
1255 1268
1256 C2V_VMENTRY(jboolean, shouldDebugNonSafepoints, (JNIEnv*, jobject)) 1269 C2V_VMENTRY(jboolean, shouldDebugNonSafepoints, (JNIEnv*, jobject))
1257 //see compute_recording_non_safepoints in debugInfroRec.cpp 1270 //see compute_recording_non_safepoints in debugInfroRec.cpp
1258 if (JvmtiExport::should_post_compiled_method_load() && FLAG_IS_DEFAULT(DebugNonSafepoints)) { 1271 if (JvmtiExport::should_post_compiled_method_load() && FLAG_IS_DEFAULT(DebugNonSafepoints)) {