--- old/src/share/vm/gc/shared/barrierSet.hpp 2015-10-14 13:53:59.493245542 +0200 +++ new/src/share/vm/gc/shared/barrierSet.hpp 2015-10-14 13:53:59.316249822 +0200 @@ -27,11 +27,14 @@ #include "memory/memRegion.hpp" #include "oops/oopsHierarchy.hpp" +#include "asm/register.hpp" #include "utilities/fakeRttiSupport.hpp" // This class provides the interface between a barrier implementation and // the rest of the system. +class MacroAssembler; + class BarrierSet: public CHeapObj { friend class VMStructs; public: @@ -52,7 +55,8 @@ CardTableForRS, // CardTableModRefBSForCTRS CardTableExtension, // CardTableExtension G1SATBCT, // G1SATBCardTableModRefBS - G1SATBCTLogging // G1SATBCardTableLoggingModRefBS + G1SATBCTLogging, // G1SATBCardTableLoggingModRefBS + ShenandoahBarrierSet // ShenandoahBarrierSet }; protected: @@ -213,6 +217,32 @@ // Print a description of the memory for the barrier set virtual void print_on(outputStream* st) const = 0; + + virtual oop read_barrier(oop src) { + return src; + } + virtual oop write_barrier(oop src) { + return src; + } + virtual oop resolve_and_update_oop(oop* p, oop obj) { + return obj; + } + virtual oop resolve_and_update_oop(narrowOop* p, oop obj) { + return obj; + } +#ifndef CC_INTERP + virtual void interpreter_read_barrier(MacroAssembler* masm, Register dst) { + // Default implementation does nothing. + } + + virtual void interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) { + // Default implementation does nothing. + } + + virtual void interpreter_write_barrier(MacroAssembler* masm, Register dst) { + // Default implementation does nothing. + } +#endif }; template