< prev index next >

src/hotspot/cpu/arm/gc/shared/modRefBarrierSetAssembler_arm.hpp

Print this page
rev 49939 : 8201786: Modularize interpreter GC barriers: leftovers for ARM32
Reviewed-by: enevill, eosterlund

*** 26,45 **** --- 26,54 ---- #define CPU_ARM_GC_SHARED_MODREFBARRIERSETASSEMBLER_ARM_HPP #include "asm/macroAssembler.hpp" #include "gc/shared/barrierSetAssembler.hpp" + // The ModRefBarrierSetAssembler filters away accesses on BasicTypes other + // than T_OBJECT/T_ARRAY (oops). The oop accesses call one of the protected + // accesses, which are overridden in the concrete BarrierSetAssembler. + class ModRefBarrierSetAssembler: public BarrierSetAssembler { protected: virtual void gen_write_ref_array_pre_barrier(MacroAssembler* masm, DecoratorSet decorators, Register addr, Register count, int callee_saved_regs) {} virtual void gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators, Register addr, Register count, Register tmp) {} + virtual void oop_store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, + Address obj, Register val, Register tmp1, Register tmp2, Register tmp3, bool is_null) = 0; + public: virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop, Register addr, Register count, int callee_saved_regs); virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop, Register addr, Register count, Register tmp); + virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, + Address obj, Register val, Register tmp1, Register tmp2, Register tmp3, bool is_null); }; #endif // CPU_ARM_GC_SHARED_MODREFBARRIERSETASSEMBLER_ARM_HPP
< prev index next >