6829187: compiler optimizations required for JSR 292

C2 implementation for invokedynamic support.

Reviewed-by: kvn, never
This commit is contained in:
Christian Thalinger 2010-01-05 13:05:58 +01:00
parent 9be2e29930
commit 375527d84e
31 changed files with 566 additions and 89 deletions

View file

@ -153,6 +153,10 @@ void ciObjectFactory::init_shared_objects() {
ciEnv::_ClassCastException =
get(SystemDictionary::ClassCastException_klass())
->as_instance_klass();
if (EnableInvokeDynamic) {
ciEnv::_InvokeDynamic =
get(SystemDictionary::InvokeDynamic_klass())->as_instance_klass();
}
ciEnv::_Object =
get(SystemDictionary::object_klass())
->as_instance_klass();
@ -340,6 +344,9 @@ ciObject* ciObjectFactory::create_new_object(oop o) {
} else if (o->is_typeArray()) {
typeArrayHandle h_ta(THREAD, (typeArrayOop)o);
return new (arena()) ciTypeArray(h_ta);
} else if (o->is_constantPoolCache()) {
constantPoolCacheHandle h_cpc(THREAD, (constantPoolCacheOop) o);
return new (arena()) ciCPCache(h_cpc);
}
// The oop is of some type not supported by the compiler interface.