equal
deleted
inserted
replaced
217 MacroAssembler::needs_explicit_null_check(offset) ) |
217 MacroAssembler::needs_explicit_null_check(offset) ) |
218 continue; // Give up if offset is beyond page size |
218 continue; // Give up if offset is beyond page size |
219 // cannot reason about it; is probably not implicit null exception |
219 // cannot reason about it; is probably not implicit null exception |
220 } else { |
220 } else { |
221 const TypePtr* tptr; |
221 const TypePtr* tptr; |
222 if (UseCompressedOops && Universe::narrow_oop_shift() == 0) { |
222 if (UseCompressedOops && (Universe::narrow_oop_shift() == 0 || |
|
223 Universe::narrow_klass_shift() == 0)) { |
223 // 32-bits narrow oop can be the base of address expressions |
224 // 32-bits narrow oop can be the base of address expressions |
224 tptr = base->bottom_type()->make_ptr(); |
225 tptr = base->get_ptr_type(); |
225 } else { |
226 } else { |
226 // only regular oops are expected here |
227 // only regular oops are expected here |
227 tptr = base->bottom_type()->is_ptr(); |
228 tptr = base->bottom_type()->is_ptr(); |
228 } |
229 } |
229 // Give up if offset is not a compile-time constant |
230 // Give up if offset is not a compile-time constant |