< prev index next >
src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
Print this page
rev 50081 : Several small aarch64 fixes
*** 1115,1125 ****
__ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), r0);
__ should_not_reach_here();
break;
}
! if (bs->kind() == BarrierSet::Shenandoah && !ShenandoahSATBBarrier) {
break;
}
const Register pre_val = r0;
const Register thread = rthread;
--- 1115,1125 ----
__ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), r0);
__ should_not_reach_here();
break;
}
! if (bs->kind() == BarrierSet::Shenandoah && !(ShenandoahSATBBarrier || ShenandoahStoreValEnqueueBarrier)) {
break;
}
const Register pre_val = r0;
const Register thread = rthread;
*** 1136,1146 ****
Label runtime;
if (UseShenandoahGC) {
Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
__ ldrb(tmp, gc_state);
! __ tbz(tmp, ShenandoahHeap::MARKING_BITPOS, done);
} else {
assert(UseG1GC, "Should be");
// Is marking still active?
if (in_bytes(SATBMarkQueue::byte_width_of_active()) == 4) {
__ ldrw(tmp, in_progress);
--- 1136,1148 ----
Label runtime;
if (UseShenandoahGC) {
Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
__ ldrb(tmp, gc_state);
! __ mov(rscratch2, ShenandoahHeap::MARKING | ShenandoahHeap::TRAVERSAL);
! __ tst(tmp, rscratch2);
! __ br(Assembler::EQ, done);
} else {
assert(UseG1GC, "Should be");
// Is marking still active?
if (in_bytes(SATBMarkQueue::byte_width_of_active()) == 4) {
__ ldrw(tmp, in_progress);
< prev index next >