Mercurial > hg > graal-jvmci-8
comparison src/share/vm/graal/graalCodeInstaller.cpp @ 18223:17c98fad6980
converted HotSpotResolvedObjectType to an interface
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 03 Nov 2014 17:03:19 +0100 |
parents | a8cff27ca2e1 |
children | e04712c8928a |
comparison
equal
deleted
inserted
replaced
18222:a8cff27ca2e1 | 18223:17c98fad6980 |
---|---|
164 | 164 |
165 return map; | 165 return map; |
166 } | 166 } |
167 | 167 |
168 static void record_metadata_reference(oop obj, jlong prim, jboolean compressed, OopRecorder* oop_recorder) { | 168 static void record_metadata_reference(oop obj, jlong prim, jboolean compressed, OopRecorder* oop_recorder) { |
169 if (obj->is_a(HotSpotResolvedObjectType::klass())) { | 169 if (obj->is_a(HotSpotResolvedObjectTypeImpl::klass())) { |
170 Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(obj)); | 170 Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(obj)); |
171 if (compressed) { | 171 if (compressed) { |
172 assert(Klass::decode_klass((narrowKlass) prim) == klass, err_msg("%s @ " INTPTR_FORMAT " != " INTPTR_FORMAT, klass->name()->as_C_string(), p2i(klass), prim)); | 172 assert(Klass::decode_klass((narrowKlass) prim) == klass, err_msg("%s @ " INTPTR_FORMAT " != " INTPTR_FORMAT, klass->name()->as_C_string(), p2i(klass), prim)); |
173 } else { | 173 } else { |
174 assert((Klass*) prim == klass, err_msg("%s @ " INTPTR_FORMAT " != " INTPTR_FORMAT, klass->name()->as_C_string(), p2i(klass), prim)); | 174 assert((Klass*) prim == klass, err_msg("%s @ " INTPTR_FORMAT " != " INTPTR_FORMAT, klass->name()->as_C_string(), p2i(klass), prim)); |
175 } | 175 } |
184 assert(java_lang_String::is_instance(obj), | 184 assert(java_lang_String::is_instance(obj), |
185 err_msg("unexpected metadata reference (%s) for constant " JLONG_FORMAT " (" INTPTR_FORMAT ")", obj->klass()->name()->as_C_string(), prim, prim)); | 185 err_msg("unexpected metadata reference (%s) for constant " JLONG_FORMAT " (" INTPTR_FORMAT ")", obj->klass()->name()->as_C_string(), prim, prim)); |
186 } | 186 } |
187 } | 187 } |
188 | 188 |
189 // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedObjectType.klass()). | 189 // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedObjectTypeImpl.klass()). |
190 static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) { | 190 static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) { |
191 if (constant->is_a(HotSpotMetaspaceConstant::klass())) { | 191 if (constant->is_a(HotSpotMetaspaceConstant::klass())) { |
192 oop obj = HotSpotMetaspaceConstant::metaspaceObject(constant); | 192 oop obj = HotSpotMetaspaceConstant::metaspaceObject(constant); |
193 jlong prim = HotSpotMetaspaceConstant::primitive(constant); | 193 jlong prim = HotSpotMetaspaceConstant::primitive(constant); |
194 assert(Kind::typeChar(Value::kind(constant)) == 'j', "must have word kind"); | 194 assert(Kind::typeChar(Value::kind(constant)) == 'j', "must have word kind"); |
322 } | 322 } |
323 } | 323 } |
324 } else if (value->is_a(VirtualObject::klass())) { | 324 } else if (value->is_a(VirtualObject::klass())) { |
325 oop type = VirtualObject::type(value); | 325 oop type = VirtualObject::type(value); |
326 int id = VirtualObject::id(value); | 326 int id = VirtualObject::id(value); |
327 oop javaMirror = HotSpotResolvedObjectType::javaClass(type); | 327 oop javaMirror = HotSpotResolvedObjectTypeImpl::javaClass(type); |
328 Klass* klass = java_lang_Class::as_Klass(javaMirror); | 328 Klass* klass = java_lang_Class::as_Klass(javaMirror); |
329 bool isLongArray = klass == Universe::longArrayKlassObj(); | 329 bool isLongArray = klass == Universe::longArrayKlassObj(); |
330 | 330 |
331 for (jint i = 0; i < objects->length(); i++) { | 331 for (jint i = 0; i < objects->length(); i++) { |
332 ObjectValue* obj = (ObjectValue*) objects->at(i); | 332 ObjectValue* obj = (ObjectValue*) objects->at(i); |
651 _dependencies->assert_evol_method(method()); | 651 _dependencies->assert_evol_method(method()); |
652 } | 652 } |
653 | 653 |
654 void CodeInstaller::assumption_NoFinalizableSubclass(Handle assumption) { | 654 void CodeInstaller::assumption_NoFinalizableSubclass(Handle assumption) { |
655 Handle receiverType_handle = Assumptions_NoFinalizableSubclass::receiverType(assumption()); | 655 Handle receiverType_handle = Assumptions_NoFinalizableSubclass::receiverType(assumption()); |
656 Klass* receiverType = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(receiverType_handle)); | 656 Klass* receiverType = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(receiverType_handle)); |
657 _dependencies->assert_has_no_finalizable_subclasses(receiverType); | 657 _dependencies->assert_has_no_finalizable_subclasses(receiverType); |
658 } | 658 } |
659 | 659 |
660 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) { | 660 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) { |
661 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); | 661 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); |
662 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption()); | 662 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption()); |
663 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(context_handle)); | 663 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); |
664 Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(subtype_handle)); | 664 Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(subtype_handle)); |
665 | 665 |
666 if (context != subtype) { | 666 if (context != subtype) { |
667 assert(context->is_abstract(), ""); | 667 assert(context->is_abstract(), ""); |
668 _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); | 668 _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); |
669 } else { | 669 } else { |
674 void CodeInstaller::assumption_ConcreteMethod(Handle assumption) { | 674 void CodeInstaller::assumption_ConcreteMethod(Handle assumption) { |
675 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); | 675 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); |
676 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); | 676 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); |
677 | 677 |
678 methodHandle impl = getMethodFromHotSpotMethod(impl_handle()); | 678 methodHandle impl = getMethodFromHotSpotMethod(impl_handle()); |
679 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(context_handle)); | 679 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); |
680 | 680 |
681 _dependencies->assert_unique_concrete_method(context, impl()); | 681 _dependencies->assert_unique_concrete_method(context, impl()); |
682 } | 682 } |
683 | 683 |
684 void CodeInstaller::assumption_CallSiteTargetValue(Handle assumption) { | 684 void CodeInstaller::assumption_CallSiteTargetValue(Handle assumption) { |