< prev index next >
src/cpu/aarch64/vm/shenandoahBarrierSet_aarch64.cpp
Print this page
rev 14442 : Backout: Refactor evac-in-progress flag to more general gc-phase flag.
*** 50,68 ****
assert(dst != rscratch1, "different regs");
assert(dst != rscratch2, "Need rscratch2");
Label done;
! Address gc_phase_in_progress = Address(rthread, in_bytes(JavaThread::gc_phase_in_progress_offset()));
! __ ldrb(rscratch1, gc_phase_in_progress);
__ membar(Assembler::LoadLoad);
// Now check if evacuation is in progress.
interpreter_read_barrier_not_null(masm, dst);
! __ tbz(rscratch1, ShenandoahHeap::EVACUATION_BITPOS, done);
__ lsr(rscratch1, dst, ShenandoahHeapRegion::region_size_bytes_shift_jint());
__ mov(rscratch2, ShenandoahHeap::in_cset_fast_test_addr());
__ ldrb(rscratch2, Address(rscratch2, rscratch1));
__ tst(rscratch2, 0x1);
--- 50,69 ----
assert(dst != rscratch1, "different regs");
assert(dst != rscratch2, "Need rscratch2");
Label done;
! Address evacuation_in_progress
! = Address(rthread, in_bytes(JavaThread::evacuation_in_progress_offset()));
! __ ldrb(rscratch2, evacuation_in_progress);
__ membar(Assembler::LoadLoad);
// Now check if evacuation is in progress.
interpreter_read_barrier_not_null(masm, dst);
! __ cbzw(rscratch2, done);
__ lsr(rscratch1, dst, ShenandoahHeapRegion::region_size_bytes_shift_jint());
__ mov(rscratch2, ShenandoahHeap::in_cset_fast_test_addr());
__ ldrb(rscratch2, Address(rscratch2, rscratch1));
__ tst(rscratch2, 0x1);
< prev index next >