< prev index next >
src/share/vm/opto/matcher.hpp
Print this page
rev 7602 : 8064457: Introduce compressed oops mode disjoint base and improve compressed heap handling.
*** 431,440 ****
--- 431,447 ----
// decode narrow_oop_reg, oop_reg // only 'shift'
// [oop_reg + offset]
// NullCheck oop_reg
//
inline static bool gen_narrow_oop_implicit_null_checks() {
+ // Advice matcher to perform null checks on the narrow oop side.
+ // Implicit checks are not possible on the uncompressed oop side anyway
+ // (at least not for read accesses).
+ // Performs significantly better (especially on Power 6).
+ if (!os::zero_page_read_protected()) {
+ return true;
+ }
return Universe::narrow_oop_use_implicit_null_checks() &&
(narrow_oop_use_complex_address() ||
Universe::narrow_oop_base() != NULL);
}
< prev index next >