< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page
*** 1361,11 ***
                  cast_to_exactness(false)->
                  with_offset(offset);
        } else if( offset == arrayOopDesc::length_offset_in_bytes() ) {
          // range is OK as-is.
          tj = ta = TypeAryPtr::RANGE;
!       } else if( offset == oopDesc::klass_offset_in_bytes() ) {
          tj = TypeInstPtr::KLASS; // all klass loads look alike
          ta = TypeAryPtr::RANGE; // generic ignored junk
          ptr = TypePtr::BotPTR;
        } else if( offset == oopDesc::mark_offset_in_bytes() ) {
          tj = TypeInstPtr::MARK;
--- 1361,11 ---
                  cast_to_exactness(false)->
                  with_offset(offset);
        } else if( offset == arrayOopDesc::length_offset_in_bytes() ) {
          // range is OK as-is.
          tj = ta = TypeAryPtr::RANGE;
!       } else if( offset == Type::klass_offset() ) {
          tj = TypeInstPtr::KLASS; // all klass loads look alike
          ta = TypeAryPtr::RANGE; // generic ignored junk
          ptr = TypePtr::BotPTR;
        } else if( offset == oopDesc::mark_offset_in_bytes() ) {
          tj = TypeInstPtr::MARK;

*** 1534,11 ***
    assert( (offset != Type::OffsetBot && tj->base() != Type::AryPtr) ||
            (offset == Type::OffsetBot && tj->base() == Type::AryPtr) ||
            (offset == Type::OffsetBot && tj == TypeOopPtr::BOTTOM) ||
            (offset == Type::OffsetBot && tj == TypePtr::BOTTOM) ||
            (offset == oopDesc::mark_offset_in_bytes() && tj->base() == Type::AryPtr) ||
!           (offset == oopDesc::klass_offset_in_bytes() && tj->base() == Type::AryPtr) ||
            (offset == arrayOopDesc::length_offset_in_bytes() && tj->base() == Type::AryPtr),
            "For oops, klasses, raw offset must be constant; for arrays the offset is never known" );
    assert( tj->ptr() != TypePtr::TopPTR &&
            tj->ptr() != TypePtr::AnyNull &&
            tj->ptr() != TypePtr::Null, "No imprecise addresses" );
--- 1534,11 ---
    assert( (offset != Type::OffsetBot && tj->base() != Type::AryPtr) ||
            (offset == Type::OffsetBot && tj->base() == Type::AryPtr) ||
            (offset == Type::OffsetBot && tj == TypeOopPtr::BOTTOM) ||
            (offset == Type::OffsetBot && tj == TypePtr::BOTTOM) ||
            (offset == oopDesc::mark_offset_in_bytes() && tj->base() == Type::AryPtr) ||
!           (offset == Type::klass_offset() && tj->base() == Type::AryPtr) ||
            (offset == arrayOopDesc::length_offset_in_bytes() && tj->base() == Type::AryPtr),
            "For oops, klasses, raw offset must be constant; for arrays the offset is never known" );
    assert( tj->ptr() != TypePtr::TopPTR &&
            tj->ptr() != TypePtr::AnyNull &&
            tj->ptr() != TypePtr::Null, "No imprecise addresses" );
< prev index next >