src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp	Tue May 27 22:58:56 2008
--- new/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp	Tue May 27 22:58:55 2008

*** 84,93 **** --- 84,99 ---- if (thread != rax) { popq(rax); } } ! bool MacroAssembler::needs_explicit_null_check(intptr_t offset) { // Identical to Sparc/Solaris code + if (UseCompressedOops) { + uintptr_t heap_base = (uintptr_t)Universe::heap_base(); + if ((uintptr_t)offset >= heap_base) { + offset = (intptr_t)(pointer_delta((void*)offset, (void*)heap_base, 1)); + } + } bool offset_in_first_page = 0 <= offset && offset < os::vm_page_size(); return !offset_in_first_page; }

src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File