< prev index next >
src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp
Print this page
rev 50076 : Fold Partial GC into Traversal GC
@@ -86,18 +86,10 @@
Register pre_val,
Register thread,
Register tmp,
bool tosca_live,
bool expand_call) {
- if (ShenandoahConditionalSATBBarrier) {
- Label done;
- Address gc_state(rthread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
- __ ldrb(tmp, gc_state);
- __ tbz(tmp, ShenandoahHeap::MARKING_BITPOS, done);
- satb_write_barrier_pre(masm, obj, pre_val, thread, tmp, tosca_live, expand_call);
- __ bind(done);
- }
if (ShenandoahSATBBarrier) {
satb_write_barrier_pre(masm, obj, pre_val, thread, tmp, tosca_live, expand_call);
}
}
@@ -262,11 +254,11 @@
write_barrier_impl(masm, dst);
}
}
void ShenandoahBarrierSetAssembler::write_barrier_impl(MacroAssembler* masm, Register dst) {
- assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValWriteBarrier || ShenandoahStoreValEnqueueBarrier), "should be enabled");
+ assert(UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValEnqueueBarrier), "should be enabled");
assert(dst != rscratch1, "different regs");
assert(dst != rscratch2, "Need rscratch2");
Label done;
@@ -275,11 +267,11 @@
__ membar(Assembler::LoadLoad);
// Now check if evacuation is in progress.
read_barrier_not_null(masm, dst);
- __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::PARTIAL | ShenandoahHeap::TRAVERSAL);
+ __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL);
__ tst(rscratch1, rscratch2);
__ br(Assembler::EQ, done);
__ lsr(rscratch1, dst, ShenandoahHeapRegion::region_size_bytes_shift_jint());
__ mov(rscratch2, ShenandoahHeap::in_cset_fast_test_addr());
@@ -304,17 +296,15 @@
__ bind(done);
}
void ShenandoahBarrierSetAssembler::storeval_barrier(MacroAssembler* masm, Register dst, Register tmp) {
- if (ShenandoahStoreValWriteBarrier || ShenandoahStoreValEnqueueBarrier) {
+ if (ShenandoahStoreValEnqueueBarrier) {
Label is_null;
__ cbz(dst, is_null);
write_barrier_impl(masm, dst);
__ bind(is_null);
- }
- if (ShenandoahStoreValEnqueueBarrier) {
// Save possibly live regs.
RegSet live_regs = RegSet::range(r0, r4) - dst;
__ push(live_regs, sp);
__ strd(v0, __ pre(sp, 2 * -wordSize));
< prev index next >