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;