< prev index next >
src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp
Print this page
rev 51408 : [mq]: cleanup-c1.patch
@@ -463,11 +463,19 @@
read_barrier(masm, obj);
}
}
void ShenandoahBarrierSetAssembler::resolve_for_write(MacroAssembler* masm, DecoratorSet decorators, Register obj) {
+ bool oop_not_null = (decorators & IS_NOT_NULL) != 0;
+ if (oop_not_null) {
write_barrier(masm, obj);
+ } else {
+ Label is_null;
+ __ cbz(obj, is_null);
+ write_barrier(masm, obj);
+ __ bind(is_null);
+ }
}
void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, Register addr, Register expected, Register new_val,
bool acquire, bool release, bool weak, bool encode,
Register tmp1, Register tmp2, Register tmp3,
< prev index next >