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.