src/share/vm/opto/lcm.cpp

changeset 1082
bd441136a5ce
parent 1014
0fbdb4381b99
parent 1077
660978a2a31a
child 1116
fbde8ec322d0
     1.1 --- a/src/share/vm/opto/lcm.cpp	Wed Mar 18 11:37:48 2009 -0400
     1.2 +++ b/src/share/vm/opto/lcm.cpp	Thu Mar 19 09:13:24 2009 -0700
     1.3 @@ -158,7 +158,14 @@
     1.4            continue;             // Give up if offset is beyond page size
     1.5          // cannot reason about it; is probably not implicit null exception
     1.6        } else {
     1.7 -        const TypePtr* tptr = base->bottom_type()->is_ptr();
     1.8 +        const TypePtr* tptr;
     1.9 +        if (UseCompressedOops && Universe::narrow_oop_shift() == 0) {
    1.10 +          // 32-bits narrow oop can be the base of address expressions
    1.11 +          tptr = base->bottom_type()->make_ptr();
    1.12 +        } else {
    1.13 +          // only regular oops are expected here
    1.14 +          tptr = base->bottom_type()->is_ptr();
    1.15 +        }
    1.16          // Give up if offset is not a compile-time constant
    1.17          if( offset == Type::OffsetBot || tptr->_offset == Type::OffsetBot )
    1.18            continue;

mercurial