62 |
62 |
63 void storeval_barrier_impl(MacroAssembler* masm, Register dst, Register tmp); |
63 void storeval_barrier_impl(MacroAssembler* masm, Register dst, Register tmp); |
64 |
64 |
65 address generate_shenandoah_lrb(StubCodeGenerator* cgen); |
65 address generate_shenandoah_lrb(StubCodeGenerator* cgen); |
66 |
66 |
67 void save_vector_registers(MacroAssembler* masm); |
|
68 void restore_vector_registers(MacroAssembler* masm); |
|
69 |
|
70 public: |
67 public: |
71 static address shenandoah_lrb(); |
68 static address shenandoah_lrb(); |
72 |
69 |
73 void storeval_barrier(MacroAssembler* masm, Register dst, Register tmp); |
70 void storeval_barrier(MacroAssembler* masm, Register dst, Register tmp); |
74 #ifdef COMPILER1 |
71 #ifdef COMPILER1 |
75 void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub); |
72 void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub); |
76 void gen_load_reference_barrier_stub(LIR_Assembler* ce, ShenandoahLoadReferenceBarrierStub* stub); |
73 void gen_load_reference_barrier_stub(LIR_Assembler* ce, ShenandoahLoadReferenceBarrierStub* stub); |
77 void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm); |
74 void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm); |
|
75 void generate_c1_load_reference_barrier_runtime_stub(StubAssembler* sasm); |
78 #endif |
76 #endif |
79 |
77 |
80 void load_reference_barrier(MacroAssembler* masm, Register dst); |
78 void load_reference_barrier(MacroAssembler* masm, Register dst); |
|
79 void load_reference_barrier_native(MacroAssembler* masm, Register dst); |
81 |
80 |
82 void cmpxchg_oop(MacroAssembler* masm, |
81 void cmpxchg_oop(MacroAssembler* masm, |
83 Register res, Address addr, Register oldval, Register newval, |
82 Register res, Address addr, Register oldval, Register newval, |
84 bool exchange, Register tmp1, Register tmp2); |
83 bool exchange, Register tmp1, Register tmp2); |
85 virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
84 virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
86 Register src, Register dst, Register count); |
85 Register src, Register dst, Register count); |
87 virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
|
88 Register src, Register dst, Register count); |
|
89 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
86 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
90 Register dst, Address src, Register tmp1, Register tmp_thread); |
87 Register dst, Address src, Register tmp1, Register tmp_thread); |
91 virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
88 virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
92 Address dst, Register val, Register tmp1, Register tmp2); |
89 Address dst, Register val, Register tmp1, Register tmp2); |
|
90 virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env, |
|
91 Register obj, Register tmp, Label& slowpath); |
93 |
92 |
94 virtual void barrier_stubs_init(); |
93 virtual void barrier_stubs_init(); |
95 |
94 |
96 }; |
95 }; |
97 |
96 |