< prev index next >
src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Print this page
rev 50076 : Fold Partial GC into Traversal GC
*** 4084,4094 ****
str(zr, dst);
}
#ifdef INCLUDE_ALL_GCS
void MacroAssembler::shenandoah_write_barrier(Register dst) {
! assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValWriteBarrier || ShenandoahStoreValEnqueueBarrier), "Should be enabled");
assert(dst != rscratch1, "need rscratch1");
assert(dst != rscratch2, "need rscratch2");
Label done;
--- 4084,4094 ----
str(zr, dst);
}
#ifdef INCLUDE_ALL_GCS
void MacroAssembler::shenandoah_write_barrier(Register dst) {
! assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValEnqueueBarrier), "Should be enabled");
assert(dst != rscratch1, "need rscratch1");
assert(dst != rscratch2, "need rscratch2");
Label done;
*** 4100,4110 ****
if (ShenandoahWriteBarrierRB) {
ldr(dst, Address(dst, BrooksPointer::byte_offset()));
}
// Evac-check ...
! mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::PARTIAL | ShenandoahHeap::TRAVERSAL);
tst(rscratch1, rscratch2);
br(Assembler::EQ, done);
RegSet to_save = RegSet::of(r0);
if (dst != r0) {
--- 4100,4110 ----
if (ShenandoahWriteBarrierRB) {
ldr(dst, Address(dst, BrooksPointer::byte_offset()));
}
// Evac-check ...
! mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL);
tst(rscratch1, rscratch2);
br(Assembler::EQ, done);
RegSet to_save = RegSet::of(r0);
if (dst != r0) {
< prev index next >