62 void read_barrier_not_null_impl(MacroAssembler* masm, Register dst); |
62 void read_barrier_not_null_impl(MacroAssembler* masm, Register dst); |
63 |
63 |
64 void write_barrier(MacroAssembler* masm, Register dst); |
64 void write_barrier(MacroAssembler* masm, Register dst); |
65 void write_barrier_impl(MacroAssembler* masm, Register dst); |
65 void write_barrier_impl(MacroAssembler* masm, Register dst); |
66 |
66 |
67 void storeval_barrier(MacroAssembler* masm, Register dst, Register tmp); |
|
68 void storeval_barrier_impl(MacroAssembler* masm, Register dst, Register tmp); |
67 void storeval_barrier_impl(MacroAssembler* masm, Register dst, Register tmp); |
69 |
68 |
70 address generate_shenandoah_wb(StubCodeGenerator* cgen); |
69 address generate_shenandoah_wb(StubCodeGenerator* cgen); |
71 |
70 |
72 void save_vector_registers(MacroAssembler* masm); |
71 void save_vector_registers(MacroAssembler* masm); |
73 void restore_vector_registers(MacroAssembler* masm); |
72 void restore_vector_registers(MacroAssembler* masm); |
74 |
73 |
75 public: |
74 public: |
76 static address shenandoah_wb(); |
75 static address shenandoah_wb(); |
77 |
76 |
|
77 void storeval_barrier(MacroAssembler* masm, Register dst, Register tmp); |
78 #ifdef COMPILER1 |
78 #ifdef COMPILER1 |
79 void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub); |
79 void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub); |
80 void gen_write_barrier_stub(LIR_Assembler* ce, ShenandoahWriteBarrierStub* stub); |
80 void gen_write_barrier_stub(LIR_Assembler* ce, ShenandoahWriteBarrierStub* stub); |
81 void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm); |
81 void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm); |
82 #endif |
82 #endif |
83 |
83 |
84 void cmpxchg_oop(MacroAssembler* masm, |
84 void cmpxchg_oop(MacroAssembler* masm, |
85 Register res, Address addr, Register oldval, Register newval, |
85 Register res, Address addr, Register oldval, Register newval, |
86 bool exchange, bool encode, Register tmp1, Register tmp2); |
86 bool exchange, Register tmp1, Register tmp2); |
87 virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
87 virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
88 Register src, Register dst, Register count); |
88 Register src, Register dst, Register count); |
89 virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
89 virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
90 Register src, Register dst, Register count); |
90 Register src, Register dst, Register count); |
91 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
91 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |