Mercurial > hg > graal-jvmci-8
comparison src/share/vm/graal/graalCodeInstaller.cpp @ 19801:deab43a789ad
Split LeafType off from ConcreteSubtype
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 11 Mar 2015 17:45:21 -0700 |
parents | 6a3832494e24 |
children | c1f116cd4b67 |
comparison
equal
deleted
inserted
replaced
19800:3362ba500371 | 19801:deab43a789ad |
---|---|
398 if (!assumption.is_null()) { | 398 if (!assumption.is_null()) { |
399 if (assumption->klass() == Assumptions_NoFinalizableSubclass::klass()) { | 399 if (assumption->klass() == Assumptions_NoFinalizableSubclass::klass()) { |
400 assumption_NoFinalizableSubclass(assumption); | 400 assumption_NoFinalizableSubclass(assumption); |
401 } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) { | 401 } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) { |
402 assumption_ConcreteSubtype(assumption); | 402 assumption_ConcreteSubtype(assumption); |
403 } else if (assumption->klass() == Assumptions_LeafType::klass()) { | |
404 assumption_LeafType(assumption); | |
403 } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) { | 405 } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) { |
404 assumption_ConcreteMethod(assumption); | 406 assumption_ConcreteMethod(assumption); |
405 } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) { | 407 } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) { |
406 assumption_CallSiteTargetValue(assumption); | 408 assumption_CallSiteTargetValue(assumption); |
407 } else { | 409 } else { |
656 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); | 658 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); |
657 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption()); | 659 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption()); |
658 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); | 660 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); |
659 Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(subtype_handle)); | 661 Klass* subtype = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(subtype_handle)); |
660 | 662 |
661 if (context != subtype) { | 663 assert(context->is_abstract(), ""); |
662 assert(context->is_abstract(), ""); | 664 _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); |
663 _dependencies->assert_abstract_with_unique_concrete_subtype(context, subtype); | 665 } |
664 } | 666 |
665 _dependencies->assert_leaf_type(subtype); | 667 void CodeInstaller::assumption_LeafType(Handle assumption) { |
668 Handle context_handle = Assumptions_LeafType::context(assumption()); | |
669 Klass* context = java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(context_handle)); | |
670 | |
671 _dependencies->assert_leaf_type(context); | |
666 } | 672 } |
667 | 673 |
668 void CodeInstaller::assumption_ConcreteMethod(Handle assumption) { | 674 void CodeInstaller::assumption_ConcreteMethod(Handle assumption) { |
669 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); | 675 Handle impl_handle = Assumptions_ConcreteMethod::impl(assumption()); |
670 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); | 676 Handle context_handle = Assumptions_ConcreteMethod::context(assumption()); |