Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8201785

Make ModRefBarrierSetAssembler abstract on all platforms

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 11
    • None
    • hotspot
    • None
    • b11

      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.

            shade Aleksey Shipilev
            shade Aleksey Shipilev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: