< prev index next >
src/hotspot/cpu/x86/macroAssembler_x86.cpp
Print this page
rev 50076 : Fold Partial GC into Traversal GC
*** 5369,5385 ****
void MacroAssembler::shenandoah_write_barrier(Register dst) {
Unimplemented();
}
#else
void MacroAssembler::shenandoah_write_barrier(Register dst) {
! assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValWriteBarrier || ShenandoahStoreValEnqueueBarrier), "Should be enabled");
Label done;
// Check for evacuation-in-progress
Address gc_state(r15_thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
! testb(gc_state, ShenandoahHeap::EVACUATION | ShenandoahHeap::PARTIAL | ShenandoahHeap::TRAVERSAL);
// The read-barrier.
if (ShenandoahWriteBarrierRB) {
movptr(dst, Address(dst, BrooksPointer::byte_offset()));
}
--- 5369,5385 ----
void MacroAssembler::shenandoah_write_barrier(Register dst) {
Unimplemented();
}
#else
void MacroAssembler::shenandoah_write_barrier(Register dst) {
! assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValEnqueueBarrier), "Should be enabled");
Label done;
// Check for evacuation-in-progress
Address gc_state(r15_thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
! testb(gc_state, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL);
// The read-barrier.
if (ShenandoahWriteBarrierRB) {
movptr(dst, Address(dst, BrooksPointer::byte_offset()));
}
< prev index next >