< prev index next >

src/cpu/x86/vm/shenandoahBarrierSetAssembler_x86.hpp

Print this page
rev 11463 : Backport Traversal GC


  24 #ifndef CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP
  25 #define CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP
  26 
  27 #include "asm/macroAssembler.hpp"
  28 #include "memory/allocation.hpp"
  29 #ifdef COMPILER1
  30 class LIR_Assembler;
  31 class ShenandoahLoadReferenceBarrierStub;
  32 class StubAssembler;
  33 class StubCodeGenerator;
  34 #endif
  35 
  36 class ShenandoahBarrierSetAssembler : public CHeapObj<mtGC> {
  37 private:
  38 
  39   void resolve_forward_pointer(MacroAssembler* masm, Register dst, Register tmp = noreg);
  40   void resolve_forward_pointer_not_null(MacroAssembler* masm, Register dst, Register tmp = noreg);
  41 
  42   void load_reference_barrier_not_null(MacroAssembler* masm, Register dst);
  43 


  44 public:
  45   static ShenandoahBarrierSetAssembler* bsasm();
  46 

  47 #ifdef COMPILER1
  48   void gen_load_reference_barrier_stub(LIR_Assembler* ce, ShenandoahLoadReferenceBarrierStub* stub);
  49 #endif
  50 
  51   void load_reference_barrier(MacroAssembler* masm, Register dst);
  52 
  53   virtual void cmpxchg_oop(MacroAssembler* masm,
  54                            Register res, Address addr, Register oldval, Register newval,
  55                            bool exchange, Register tmp1, Register tmp2);
  56 };
  57 
  58 #endif // CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP


  24 #ifndef CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP
  25 #define CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP
  26 
  27 #include "asm/macroAssembler.hpp"
  28 #include "memory/allocation.hpp"
  29 #ifdef COMPILER1
  30 class LIR_Assembler;
  31 class ShenandoahLoadReferenceBarrierStub;
  32 class StubAssembler;
  33 class StubCodeGenerator;
  34 #endif
  35 
  36 class ShenandoahBarrierSetAssembler : public CHeapObj<mtGC> {
  37 private:
  38 
  39   void resolve_forward_pointer(MacroAssembler* masm, Register dst, Register tmp = noreg);
  40   void resolve_forward_pointer_not_null(MacroAssembler* masm, Register dst, Register tmp = noreg);
  41 
  42   void load_reference_barrier_not_null(MacroAssembler* masm, Register dst);
  43 
  44   void storeval_barrier_impl(MacroAssembler* masm, Register dst, Register tmp);
  45 
  46 public:
  47   static ShenandoahBarrierSetAssembler* bsasm();
  48 
  49   void storeval_barrier(MacroAssembler* masm, Register dst, Register tmp);
  50 #ifdef COMPILER1
  51   void gen_load_reference_barrier_stub(LIR_Assembler* ce, ShenandoahLoadReferenceBarrierStub* stub);
  52 #endif
  53 
  54   void load_reference_barrier(MacroAssembler* masm, Register dst);
  55 
  56   virtual void cmpxchg_oop(MacroAssembler* masm,
  57                            Register res, Address addr, Register oldval, Register newval,
  58                            bool exchange, Register tmp1, Register tmp2);
  59 };
  60 
  61 #endif // CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP
< prev index next >