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

*** 66,73 **** --- 66,79 ---- } } // NOTE: since the linux kernel resides at the low end of // user address space, no null pointer check is needed. ! bool MacroAssembler::needs_explicit_null_check(intptr_t offset) { + 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)); + } + } return offset < 0 || offset >= 0x100000; }

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