comparison src/share/vm/ci/ciObjectFactory.cpp @ 6266:1d7922586cf6

7023639: JSR 292 method handle invocation needs a fast path for compiled code 6984705: JSR 292 method handle creation should not go through JNI Summary: remove assembly code for JDK 7 chained method handles Reviewed-by: jrose, twisti, kvn, mhaupt Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author twisti
date Tue, 24 Jul 2012 10:51:00 -0700
parents d2a62e0f25eb
children 957c266d8bc5 da91efe96a93
comparison
equal deleted inserted replaced
6241:aba91a731143 6266:1d7922586cf6
26 #include "ci/ciCPCache.hpp" 26 #include "ci/ciCPCache.hpp"
27 #include "ci/ciCallSite.hpp" 27 #include "ci/ciCallSite.hpp"
28 #include "ci/ciInstance.hpp" 28 #include "ci/ciInstance.hpp"
29 #include "ci/ciInstanceKlass.hpp" 29 #include "ci/ciInstanceKlass.hpp"
30 #include "ci/ciInstanceKlassKlass.hpp" 30 #include "ci/ciInstanceKlassKlass.hpp"
31 #include "ci/ciMemberName.hpp"
31 #include "ci/ciMethod.hpp" 32 #include "ci/ciMethod.hpp"
32 #include "ci/ciMethodData.hpp" 33 #include "ci/ciMethodData.hpp"
33 #include "ci/ciMethodHandle.hpp" 34 #include "ci/ciMethodHandle.hpp"
34 #include "ci/ciMethodKlass.hpp" 35 #include "ci/ciMethodKlass.hpp"
35 #include "ci/ciNullObject.hpp" 36 #include "ci/ciNullObject.hpp"
342 return new (arena()) ciMethodData(h_md); 343 return new (arena()) ciMethodData(h_md);
343 } else if (o->is_instance()) { 344 } else if (o->is_instance()) {
344 instanceHandle h_i(THREAD, (instanceOop)o); 345 instanceHandle h_i(THREAD, (instanceOop)o);
345 if (java_lang_invoke_CallSite::is_instance(o)) 346 if (java_lang_invoke_CallSite::is_instance(o))
346 return new (arena()) ciCallSite(h_i); 347 return new (arena()) ciCallSite(h_i);
348 else if (java_lang_invoke_MemberName::is_instance(o))
349 return new (arena()) ciMemberName(h_i);
347 else if (java_lang_invoke_MethodHandle::is_instance(o)) 350 else if (java_lang_invoke_MethodHandle::is_instance(o))
348 return new (arena()) ciMethodHandle(h_i); 351 return new (arena()) ciMethodHandle(h_i);
349 else 352 else
350 return new (arena()) ciInstance(h_i); 353 return new (arena()) ciInstance(h_i);
351 } else if (o->is_objArray()) { 354 } else if (o->is_objArray()) {