Mercurial > hg > truffle
comparison src/share/vm/graal/graalCodeInstaller.cpp @ 7084:9ba90252ce08
HotSpotResolvedJavaType is now the HotSpot implementation of ResolvedJavaType,
Renamed old HotSpotResolvedJavaType to HotSpotResolvedObjectType
Renamed HotSpotTypePrimitive to HotSpotResolvedPrimitiveType
Renamed HotSpotTypeUnresolved to HotSpotUnresolvedJavaType
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 28 Nov 2012 14:07:25 +0100 |
parents | 3e61ffb9ce29 |
children | af30115c9d0e |
comparison
equal
deleted
inserted
replaced
7083:fa3c8913d674 | 7084:9ba90252ce08 |
---|---|
100 } | 100 } |
101 | 101 |
102 return map; | 102 return map; |
103 } | 103 } |
104 | 104 |
105 // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedJavaType.klass()). | 105 // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedObjectType.klass()). |
106 static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) { | 106 static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) { |
107 char kind = Kind::typeChar(Constant::kind(constant)); | 107 char kind = Kind::typeChar(Constant::kind(constant)); |
108 char wordKind = 'j'; | 108 char wordKind = 'j'; |
109 if (kind == wordKind) { | 109 if (kind == wordKind) { |
110 oop obj = Constant::object(constant); | 110 oop obj = Constant::object(constant); |
111 jlong prim = Constant::primitive(constant); | 111 jlong prim = Constant::primitive(constant); |
112 if (obj != NULL) { | 112 if (obj != NULL) { |
113 if (obj->is_a(HotSpotResolvedJavaType::klass())) { | 113 if (obj->is_a(HotSpotResolvedObjectType::klass())) { |
114 Klass* klass = (Klass*) (address) HotSpotResolvedJavaType::metaspaceKlass(obj); | 114 Klass* klass = (Klass*) (address) HotSpotResolvedObjectType::metaspaceKlass(obj); |
115 assert((Klass*) prim == klass, err_msg("%s @ %p != %p", klass->name()->as_C_string(), klass, prim)); | 115 assert((Klass*) prim == klass, err_msg("%s @ %p != %p", klass->name()->as_C_string(), klass, prim)); |
116 int index = oop_recorder->find_index(klass); | 116 int index = oop_recorder->find_index(klass); |
117 TRACE_graal_3("metadata[%d of %d] = %s", index, oop_recorder->metadata_count(), klass->name()->as_C_string()); | 117 TRACE_graal_3("metadata[%d of %d] = %s", index, oop_recorder->metadata_count(), klass->name()->as_C_string()); |
118 } else { | 118 } else { |
119 assert(java_lang_String::is_instance(obj), | 119 assert(java_lang_String::is_instance(obj), |
197 } | 197 } |
198 tty->print("%i", type); | 198 tty->print("%i", type); |
199 } else if (value->is_a(VirtualObject::klass())) { | 199 } else if (value->is_a(VirtualObject::klass())) { |
200 oop type = VirtualObject::type(value); | 200 oop type = VirtualObject::type(value); |
201 int id = VirtualObject::id(value); | 201 int id = VirtualObject::id(value); |
202 oop javaMirror = HotSpotResolvedJavaType::javaMirror(type); | 202 oop javaMirror = HotSpotResolvedObjectType::javaMirror(type); |
203 Klass* klass = java_lang_Class::as_Klass(javaMirror); | 203 Klass* klass = java_lang_Class::as_Klass(javaMirror); |
204 bool isLongArray = klass == Universe::longArrayKlassObj(); | 204 bool isLongArray = klass == Universe::longArrayKlassObj(); |
205 | 205 |
206 for (jint i = 0; i < objects->length(); i++) { | 206 for (jint i = 0; i < objects->length(); i++) { |
207 ObjectValue* obj = (ObjectValue*) objects->at(i); | 207 ObjectValue* obj = (ObjectValue*) objects->at(i); |
410 _dependencies->assert_evol_method(m); | 410 _dependencies->assert_evol_method(m); |
411 } | 411 } |
412 | 412 |
413 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) { | 413 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) { |
414 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); | 414 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); |
415 ciKlass* context = (ciKlass*) CURRENT_ENV->get_klass(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(context_handle))); | 415 ciKlass* context = (ciKlass*) CURRENT_ENV->get_klass(java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaMirror(context_handle))); |
416 | 416 |
417 Handle type_handle = Assumptions_ConcreteSubtype::subtype(assumption()); | 417 Handle type_handle = Assumptions_ConcreteSubtype::subtype(assumption()); |
418 ciKlass* type = (ciKlass*) CURRENT_ENV->get_klass(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(type_handle))); | 418 ciKlass* type = (ciKlass*) CURRENT_ENV->get_klass(java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaMirror(type_handle))); |
419 | 419 |
420 _dependencies->assert_leaf_type(type); | 420 _dependencies->assert_leaf_type(type); |
421 if (context != type) { | 421 if (context != type) { |
422 assert(context->is_abstract(), ""); | 422 assert(context->is_abstract(), ""); |
423 _dependencies->assert_abstract_with_unique_concrete_subtype(context, type); | 423 _dependencies->assert_abstract_with_unique_concrete_subtype(context, type); |
428 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); | 428 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); |
429 methodHandle impl = getMethodFromHotSpotMethod(impl_handle()); | 429 methodHandle impl = getMethodFromHotSpotMethod(impl_handle()); |
430 ciMethod* m = (ciMethod*) CURRENT_ENV->get_method(impl()); | 430 ciMethod* m = (ciMethod*) CURRENT_ENV->get_method(impl()); |
431 | 431 |
432 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); | 432 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); |
433 ciKlass* context = (ciKlass*) CURRENT_ENV->get_klass(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(context_handle))); | 433 ciKlass* context = (ciKlass*) CURRENT_ENV->get_klass(java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaMirror(context_handle))); |
434 _dependencies->assert_unique_concrete_method(context, m); | 434 _dependencies->assert_unique_concrete_method(context, m); |
435 } | 435 } |
436 | 436 |
437 void CodeInstaller::process_exception_handlers() { | 437 void CodeInstaller::process_exception_handlers() { |
438 // allocate some arrays for use by the collection code. | 438 // allocate some arrays for use by the collection code. |