Mercurial > hg > graal-compiler
diff src/cpu/ppc/vm/macroAssembler_ppc.inline.hpp @ 14436:b0133e4187d3
8028471: PPC64 (part 215): opto: Extend ImplicitNullCheck optimization.
Summary: Fixed Implicit NULL check optimization for AIX, where the page at address '0' is only write-protected.
Reviewed-by: kvn
author | goetz |
---|---|
date | Thu, 21 Nov 2013 18:29:34 -0800 |
parents | ec28f9c041ff |
children | 67fa91961822 |
line wrap: on
line diff
--- a/src/cpu/ppc/vm/macroAssembler_ppc.inline.hpp Thu Nov 21 12:30:35 2013 -0800 +++ b/src/cpu/ppc/vm/macroAssembler_ppc.inline.hpp Thu Nov 21 18:29:34 2013 -0800 @@ -269,7 +269,7 @@ // No support for compressed oops (base page of heap). Does not distinguish // loads and stores. inline void MacroAssembler::null_check_throw(Register a, int offset, Register temp_reg, address exception_entry) { - if (!ImplicitNullChecks || needs_explicit_null_check(offset) NOT_LINUX(|| true) /*!os::zero_page_read_protected()*/) { + if (!ImplicitNullChecks || needs_explicit_null_check(offset) || !os::zero_page_read_protected()) { if (TrapBasedNullChecks) { assert(UseSIGTRAP, "sanity"); trap_null_check(a); @@ -286,7 +286,7 @@ } inline void MacroAssembler::ld_with_trap_null_check(Register d, int si16, Register s1) { - if ( NOT_LINUX(true) LINUX_ONLY(false)/*!os::zero_page_read_protected()*/) { + if (!os::zero_page_read_protected()) { if (TrapBasedNullChecks) { trap_null_check(s1); } @@ -297,7 +297,7 @@ // Attention: No null check for loaded uncompressed OOP. Can be used for loading klass field. inline void MacroAssembler::load_heap_oop_with_trap_null_check(Register d, RegisterOrConstant si16, Register s1) { - if ( NOT_LINUX(true)LINUX_ONLY(false) /*!os::zero_page_read_protected()*/) { + if ( !os::zero_page_read_protected()) { if (TrapBasedNullChecks) { trap_null_check(s1); }