< prev index next >

src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp

Print this page
rev 51408 : [mq]: cleanup-c1.patch

*** 636,646 **** --- 636,655 ---- 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 done; + __ testptr(obj, obj); + __ jcc(Assembler::zero, done); + write_barrier(masm, obj); + __ bind(done); + } } // Special Shenandoah CAS implementation that handles false negatives // due to concurrent evacuation. #ifndef _LP64
< prev index next >