src/hotspot/cpu/s390/gc/shared/modRefBarrierSetAssembler_s390.hpp
changeset 49748 6a880e576856
parent 49729 78d797e04484
child 49830 ac761df837c7
equal deleted inserted replaced
49747:376792a6e9da 49748:6a880e576856
    27 #define CPU_S390_GC_SHARED_MODREFBARRIERSETASSEMBLER_S390_HPP
    27 #define CPU_S390_GC_SHARED_MODREFBARRIERSETASSEMBLER_S390_HPP
    28 
    28 
    29 #include "asm/macroAssembler.hpp"
    29 #include "asm/macroAssembler.hpp"
    30 #include "gc/shared/barrierSetAssembler.hpp"
    30 #include "gc/shared/barrierSetAssembler.hpp"
    31 
    31 
       
    32 // The ModRefBarrierSetAssembler filters away accesses on BasicTypes other
       
    33 // than T_OBJECT/T_ARRAY (oops). The oop accesses call one of the protected
       
    34 // accesses, which are overridden in the concrete BarrierSetAssembler.
       
    35 
    32 class ModRefBarrierSetAssembler: public BarrierSetAssembler {
    36 class ModRefBarrierSetAssembler: public BarrierSetAssembler {
    33 protected:
    37 protected:
    34   virtual void gen_write_ref_array_pre_barrier(MacroAssembler* masm, DecoratorSet decorators, Register addr, Register count) {}
    38   virtual void gen_write_ref_array_pre_barrier(MacroAssembler* masm, DecoratorSet decorators, Register addr, Register count) {}
    35   virtual void gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators, Register addr, Register count,
    39   virtual void gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators, Register addr, Register count,
    36                                                 bool do_return);
    40                                                 bool do_return);
    37 
    41   virtual void oop_store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
       
    42                             const Address& dst, Register val, Register tmp1, Register tmp2, Register tmp3);
    38 public:
    43 public:
    39   virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
    44   virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
    40                                   Register src, Register dst, Register count);
    45                                   Register src, Register dst, Register count);
    41   virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
    46   virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
    42                                   Register dst, Register count, bool do_return = false);
    47                                   Register dst, Register count, bool do_return = false);
       
    48 
       
    49   virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
       
    50                         const Address& dst, Register val, Register tmp1, Register tmp2, Register tmp3);
    43 };
    51 };
    44 
    52 
    45 #endif // CPU_S390_GC_SHARED_MODREFBARRIERSETASSEMBLER_S390_HPP
    53 #endif // CPU_S390_GC_SHARED_MODREFBARRIERSETASSEMBLER_S390_HPP