< prev index next >
src/share/vm/asm/assembler.cpp
Print this page
rev 10763 : [backport] Fix build failures when Shenandoah is disabled, after #include reshuffles
rev 10764 : [backport] Rename BrooksPointer to ShenandoahBrooksPointer
*** 24,34 ****
#include "precompiled.hpp"
#include "asm/macroAssembler.hpp"
#include "asm/macroAssembler.inline.hpp"
#include "asm/codeBuffer.hpp"
! #include "gc_implementation/shenandoah/brooksPointer.hpp"
#include "runtime/atomic.hpp"
#include "runtime/atomic.inline.hpp"
#include "runtime/icache.hpp"
#include "runtime/os.hpp"
--- 24,34 ----
#include "precompiled.hpp"
#include "asm/macroAssembler.hpp"
#include "asm/macroAssembler.inline.hpp"
#include "asm/codeBuffer.hpp"
! #include "gc_implementation/shenandoah/shenandoahBrooksPointer.hpp"
#include "runtime/atomic.hpp"
#include "runtime/atomic.inline.hpp"
#include "runtime/icache.hpp"
#include "runtime/os.hpp"
*** 314,334 ****
assert (Universe::heap() != NULL, "java heap should be initialized");
// The first page after heap_base is unmapped and
// the 'offset' is equal to [heap_base + offset] for
// narrow oop implicit null checks.
uintptr_t base = (uintptr_t)Universe::narrow_oop_base();
! int adj = MIN2(0, UseShenandoahGC ? BrooksPointer::byte_offset() : 0);
if ((uintptr_t)((offset - adj) & address_bits) >= base) {
// Normalize offset for the next check.
offset = (intptr_t)(pointer_delta((void*)offset, (void*)base, 1));
}
}
#endif
! if (UseShenandoahGC) {
! if ((offset & address_bits) == (BrooksPointer::byte_offset() & address_bits)) {
return false;
}
- }
return offset < 0 || os::vm_page_size() <= offset;
}
--- 314,336 ----
assert (Universe::heap() != NULL, "java heap should be initialized");
// The first page after heap_base is unmapped and
// the 'offset' is equal to [heap_base + offset] for
// narrow oop implicit null checks.
uintptr_t base = (uintptr_t)Universe::narrow_oop_base();
! int adj = 0;
! if (UseShenandoahGC) {
! adj = ShenandoahBrooksPointer::byte_offset();
! assert(adj < 0, "no need for positive adjustments");
! }
if ((uintptr_t)((offset - adj) & address_bits) >= base) {
// Normalize offset for the next check.
offset = (intptr_t)(pointer_delta((void*)offset, (void*)base, 1));
}
}
#endif
! if (UseShenandoahGC && ((offset & address_bits) == (ShenandoahBrooksPointer::byte_offset() & address_bits))) {
return false;
}
return offset < 0 || os::vm_page_size() <= offset;
}
< prev index next >