Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/type.cpp @ 17795:a9becfeecd1b
Merge
author | kvn |
---|---|
date | Wed, 22 Jan 2014 17:42:23 -0800 |
parents | 5231c2210388 15120a36272d |
children | 45467c53f178 |
comparison
equal
deleted
inserted
replaced
17794:3514ee402842 | 17795:a9becfeecd1b |
---|---|
3816 // This must fall to bottom, not (int[-128..65535])[int+]. | 3816 // This must fall to bottom, not (int[-128..65535])[int+]. |
3817 instance_id = InstanceBot; | 3817 instance_id = InstanceBot; |
3818 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); | 3818 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); |
3819 } | 3819 } |
3820 } else // Non integral arrays. | 3820 } else // Non integral arrays. |
3821 // Must fall to bottom if exact klasses in upper lattice | 3821 // Must fall to bottom if exact klasses in upper lattice |
3822 // are not equal or super klass is exact. | 3822 // are not equal or super klass is exact. |
3823 if ( above_centerline(ptr) && klass() != tap->klass() && | 3823 if ((above_centerline(ptr) || ptr == Constant) && klass() != tap->klass() && |
3824 // meet with top[] and bottom[] are processed further down: | 3824 // meet with top[] and bottom[] are processed further down: |
3825 tap ->_klass != NULL && this->_klass != NULL && | 3825 tap->_klass != NULL && this->_klass != NULL && |
3826 // both are exact and not equal: | 3826 // both are exact and not equal: |
3827 ((tap ->_klass_is_exact && this->_klass_is_exact) || | 3827 ((tap->_klass_is_exact && this->_klass_is_exact) || |
3828 // 'tap' is exact and super or unrelated: | 3828 // 'tap' is exact and super or unrelated: |
3829 (tap ->_klass_is_exact && !tap->klass()->is_subtype_of(klass())) || | 3829 (tap->_klass_is_exact && !tap->klass()->is_subtype_of(klass())) || |
3830 // 'this' is exact and super or unrelated: | 3830 // 'this' is exact and super or unrelated: |
3831 (this->_klass_is_exact && !klass()->is_subtype_of(tap->klass())))) { | 3831 (this->_klass_is_exact && !klass()->is_subtype_of(tap->klass())))) { |
3832 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); | 3832 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); |
3833 return make(NotNull, NULL, tary, lazy_klass, false, off, InstanceBot); | 3833 return make(NotNull, NULL, tary, lazy_klass, false, off, InstanceBot); |
3834 } | 3834 } |
3835 | 3835 |
3836 bool xk = false; | 3836 bool xk = false; |