comparison src/share/vm/ci/ciObjectFactory.cpp @ 1138:dd57230ba8fe

6893268: additional dynamic language related optimizations in C2 Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance. Reviewed-by: kvn, never
author twisti
date Tue, 05 Jan 2010 15:21:25 +0100
parents 97125851f396
children 4ce7240d622c
comparison
equal deleted inserted replaced
1137:97125851f396 1138:dd57230ba8fe
335 } else if (o->is_methodData()) { 335 } else if (o->is_methodData()) {
336 methodDataHandle h_md(THREAD, (methodDataOop)o); 336 methodDataHandle h_md(THREAD, (methodDataOop)o);
337 return new (arena()) ciMethodData(h_md); 337 return new (arena()) ciMethodData(h_md);
338 } else if (o->is_instance()) { 338 } else if (o->is_instance()) {
339 instanceHandle h_i(THREAD, (instanceOop)o); 339 instanceHandle h_i(THREAD, (instanceOop)o);
340 return new (arena()) ciInstance(h_i); 340 if (java_dyn_CallSite::is_instance(o))
341 return new (arena()) ciCallSite(h_i);
342 else if (java_dyn_MethodHandle::is_instance(o))
343 return new (arena()) ciMethodHandle(h_i);
344 else
345 return new (arena()) ciInstance(h_i);
341 } else if (o->is_objArray()) { 346 } else if (o->is_objArray()) {
342 objArrayHandle h_oa(THREAD, (objArrayOop)o); 347 objArrayHandle h_oa(THREAD, (objArrayOop)o);
343 return new (arena()) ciObjArray(h_oa); 348 return new (arena()) ciObjArray(h_oa);
344 } else if (o->is_typeArray()) { 349 } else if (o->is_typeArray()) {
345 typeArrayHandle h_ta(THREAD, (typeArrayOop)o); 350 typeArrayHandle h_ta(THREAD, (typeArrayOop)o);