comparison src/share/vm/classfile/systemDictionary.cpp @ 16348:fefb82b01d6f

Make find_method_handle_intrinsic work in Xint mode
author Gilles Duboscq <duboscq@ssw.jku.at>
date Fri, 27 Jun 2014 11:50:07 +0200
parents b7a1ece4f07b
children ad431bf0de07
comparison
equal deleted inserted replaced
16347:c6a1215d025b 16348:fefb82b01d6f
2284 methodHandle m; 2284 methodHandle m;
2285 if (spe == NULL || spe->method() == NULL) { 2285 if (spe == NULL || spe->method() == NULL) {
2286 spe = NULL; 2286 spe = NULL;
2287 // Must create lots of stuff here, but outside of the SystemDictionary lock. 2287 // Must create lots of stuff here, but outside of the SystemDictionary lock.
2288 m = Method::make_method_handle_intrinsic(iid, signature, CHECK_(empty)); 2288 m = Method::make_method_handle_intrinsic(iid, signature, CHECK_(empty));
2289 nmethod* nm = CompileBroker::compile_method(m, InvocationEntryBci, CompLevel_highest_tier, 2289 CompileBroker::compile_method(m, InvocationEntryBci, CompLevel_highest_tier,
2290 methodHandle(), CompileThreshold, "MH", CHECK_(empty)); 2290 methodHandle(), CompileThreshold, "MH", CHECK_(empty));
2291 2291
2292 // Now grab the lock. We might have to throw away the new method, 2292 // Now grab the lock. We might have to throw away the new method,
2293 // if a racing thread has managed to install one at the same time. 2293 // if a racing thread has managed to install one at the same time.
2294 { 2294 {
2298 spe = invoke_method_table()->add_entry(index, hash, signature, iid); 2298 spe = invoke_method_table()->add_entry(index, hash, signature, iid);
2299 if (spe->method() == NULL) 2299 if (spe->method() == NULL)
2300 spe->set_method(m()); 2300 spe->set_method(m());
2301 } 2301 }
2302 } else if (spe->method()->code() == NULL) { 2302 } else if (spe->method()->code() == NULL) {
2303 nmethod* nm = CompileBroker::compile_method(spe->method(), InvocationEntryBci, CompLevel_highest_tier, 2303 CompileBroker::compile_method(spe->method(), InvocationEntryBci, CompLevel_highest_tier,
2304 methodHandle(), CompileThreshold, "MH", CHECK_(empty)); 2304 methodHandle(), CompileThreshold, "MH", CHECK_(empty));
2305 } 2305 }
2306 2306
2307 guarantee(spe != NULL && spe->method() != NULL && spe->method()->code() != NULL, "Could not compile a method handle intrinsic"); 2307 guarantee(spe != NULL && spe->method() != NULL && (!UseCompiler || spe->method()->code() != NULL), "Could not compile a method handle intrinsic");
2308 return spe->method(); 2308 return spe->method();
2309 } 2309 }
2310 2310
2311 // Helper for unpacking the return value from linkMethod and linkCallSite. 2311 // Helper for unpacking the return value from linkMethod and linkCallSite.
2312 static methodHandle unpack_method_and_appendix(Handle mname, 2312 static methodHandle unpack_method_and_appendix(Handle mname,