< 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 >