--- old/src/hotspot/cpu/x86/macroAssembler_x86.cpp 2018-07-02 13:48:18.749601213 +0200 +++ new/src/hotspot/cpu/x86/macroAssembler_x86.cpp 2018-07-02 13:48:18.486604489 +0200 @@ -6287,14 +6287,13 @@ } } -void MacroAssembler::resolve_for_read(DecoratorSet decorators, Register obj) { - BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); - return bs->resolve_for_read(this, decorators, obj); -} - -void MacroAssembler::resolve_for_write(DecoratorSet decorators, Register obj) { +void MacroAssembler::resolve(DecoratorSet decorators, Register obj) { + // Use stronger ACCESS_WRITE by default. + if ((decorators & ACCESS_READ) == 0) { + decorators |= ACCESS_WRITE; + } BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); - return bs->resolve_for_write(this, decorators, obj); + return bs->resolve(this, decorators, obj); } void MacroAssembler::load_heap_oop(Register dst, Address src, Register tmp1,