Please review fix for 6716785: implicit null checks not triggering with CompressedOops
Vladimir.Kozlov at Sun.COM
Thu Jul 17 11:38:13 PDT 2008
Coleen Phillimore - Sun Microsystems wrote:
> Vladimir Kozlov wrote:
>> Why you added os::is_implicit_NPE() method?
>> All MacroAssembler::needs_explicit_null_check() methods
>> have the code for compressed oops implicit NPE.
> Oh, now I see that. You must have added it. It's not in sparc versions
> though (and I can't figure out why we have so many variants of the same
On sparc we don't have implicit NPE for compressed oops since
there is no an addressing mode with compressed oop.
On x86 it use (r12 + r*8 + offset), on sparc you can not do this.
This is why we safe on sparc now with COOP.
>> Also you removed _heap_base setting in universe.cpp.
>> Where it is set now?
> It's set in protect_noaccess_prefix in virtualspace.cpp
I see. OK.
>> Coleen Phillimore - Sun Microsystems wrote:
>>> 6716785: implicit null checks not triggering with CompressedOops
>>> Summary: allocate alignment-sized page(s) below java heap so that
>>> memory accesses at heap_base+1page give signal and cause an implicit
>>> null check
>>> Note in this webrev, the change in arguments.cpp to enable
>>> UseCompressedOops by default will be reverted for checking into HS13
>>> (it's still off by default) for 6u6p. Should I enable it in our HS14
>>> source base?
More information about the hotspot-runtime-dev