Mercurial > hg > truffle
diff src/share/vm/graal/graalCompiler.cpp @ 13375:e8c4a6ea3f77
cleaned up VMToCompiler.createResolvedJavaType
author | twisti |
---|---|
date | Tue, 17 Dec 2013 20:58:58 -0800 |
parents | 430c9f08728d |
children | 606959535fd4 |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompiler.cpp Tue Dec 17 21:25:27 2013 -0800 +++ b/src/share/vm/graal/graalCompiler.cpp Tue Dec 17 20:58:58 2013 -0800 @@ -219,21 +219,17 @@ TRACE_graal_1("GraalCompiler::print_timers"); } -Handle GraalCompiler::get_JavaType(Symbol* klass_name, TRAPS) { - return VMToCompiler::createUnresolvedJavaType(java_lang_String::create_from_symbol(klass_name, THREAD), THREAD); -} - Handle GraalCompiler::get_JavaTypeFromSignature(Symbol* signature, KlassHandle loading_klass, TRAPS) { - BasicType field_type = FieldType::basic_type(signature); // If the field is a pointer type, get the klass of the // field. if (field_type == T_OBJECT || field_type == T_ARRAY) { - KlassHandle handle = GraalEnv::get_klass_by_name(loading_klass, signature, false); - if (handle.is_null()) { - return get_JavaType(signature, CHECK_NH); + KlassHandle klass = GraalEnv::get_klass_by_name(loading_klass, signature, false); + if (klass.is_null()) { + Handle signature_string = java_lang_String::create_from_symbol(signature, CHECK_NH); + return VMToCompiler::createUnresolvedJavaType(signature_string, CHECK_NH); } else { - return get_JavaType(handle, CHECK_NH); + return createHotSpotResolvedObjectType(klass, CHECK_NH); } } else { return VMToCompiler::createPrimitiveJavaType(field_type, CHECK_NH); @@ -256,7 +252,7 @@ if (tag.is_klass()) { // The klass has been inserted into the constant pool // very recently. - return GraalCompiler::get_JavaType(cp->resolved_klass_at(index), CHECK_NH); + return GraalCompiler::createHotSpotResolvedObjectType(cp->resolved_klass_at(index), CHECK_NH); } else if (tag.is_symbol()) { klass_name = cp->symbol_at(index); } else { @@ -264,50 +260,26 @@ klass_name = cp->unresolved_klass_at(index); } } - return GraalCompiler::get_JavaType(klass_name, CHECK_NH); + Handle klass_name_string = java_lang_String::create_from_symbol(klass_name, CHECK_NH); + return VMToCompiler::createUnresolvedJavaType(klass_name_string, CHECK_NH); } else { - return GraalCompiler::get_JavaType(klass, CHECK_NH); + return GraalCompiler::createHotSpotResolvedObjectType(klass, CHECK_NH); } } -Handle GraalCompiler::get_JavaType(KlassHandle klass, TRAPS) { - Handle name = java_lang_String::create_from_symbol(klass->name(), THREAD); - return createHotSpotResolvedObjectType(klass, name, CHECK_NH); -} - Handle GraalCompiler::get_JavaField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, TRAPS) { Handle name = java_lang_String::create_from_symbol(field_name, CHECK_NH); return VMToCompiler::createJavaField(field_holder, name, field_type, offset, flags, false, CHECK_NH); } -Handle GraalCompiler::createHotSpotResolvedObjectType(KlassHandle klass, Handle name, TRAPS) { +Handle GraalCompiler::createHotSpotResolvedObjectType(KlassHandle klass, TRAPS) { oop java_class = klass->java_mirror(); oop graal_mirror = java_lang_Class::graal_mirror(java_class); if (graal_mirror != NULL) { assert(graal_mirror->is_a(HotSpotResolvedObjectType::klass()), "unexpected class..."); return graal_mirror; } - - Handle simpleName = name; - if (klass->oop_is_instance()) { - ResourceMark rm; - InstanceKlass* ik = (InstanceKlass*) klass(); - name = java_lang_String::create_from_str(ik->signature_name(), CHECK_NH); - } - - int sizeOrSpecies; - if (klass->is_interface()) { - sizeOrSpecies = (int) 0x80000000; // see HotSpotResolvedObjectType.INTERFACE_SPECIES_VALUE - } else if (klass->oop_is_array()) { - sizeOrSpecies = (int) 0x7fffffff; // see HotSpotResolvedObjectType.ARRAY_SPECIES_VALUE - } else { - sizeOrSpecies = InstanceKlass::cast(klass())->size_helper() * HeapWordSize; - if (!InstanceKlass::cast(klass())->can_be_fastpath_allocated()) { - sizeOrSpecies = -sizeOrSpecies; - } - } - - return VMToCompiler::createResolvedJavaType(klass(), name, simpleName, java_class, sizeOrSpecies, CHECK_NH); + return VMToCompiler::createResolvedJavaType(java_class, CHECK_NH); } BasicType GraalCompiler::kindToBasicType(jchar ch) {