Loading... (original) (raw)

The inconsistency was introduced in

JDK-8199417

: oop_store_at is open for overriding for particular GCs, oop_store_at is marked as pure virtual on some platforms, and the ModRefBS becomes abstract because of that.

Yet, AArch64 and PPC implementations do provide the default implementation:

void ModRefBarrierSetAssembler::oop_store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address dst, Register val, Register tmp1, Register tmp2) {
BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2);
}

It makes sense to keep ModRefBarrierSetAssembler abstract on all platforms, to catch missing overrides.