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