26 #ifndef CPU_PPC_GC_G1_G1BARRIERSETASSEMBLER_PPC_HPP |
26 #ifndef CPU_PPC_GC_G1_G1BARRIERSETASSEMBLER_PPC_HPP |
27 #define CPU_PPC_GC_G1_G1BARRIERSETASSEMBLER_PPC_HPP |
27 #define CPU_PPC_GC_G1_G1BARRIERSETASSEMBLER_PPC_HPP |
28 |
28 |
29 #include "asm/macroAssembler.hpp" |
29 #include "asm/macroAssembler.hpp" |
30 #include "gc/shared/modRefBarrierSetAssembler.hpp" |
30 #include "gc/shared/modRefBarrierSetAssembler.hpp" |
|
31 #include "utilities/macros.hpp" |
|
32 |
|
33 class LIR_Assembler; |
|
34 class StubAssembler; |
|
35 class G1PreBarrierStub; |
|
36 class G1PostBarrierStub; |
31 |
37 |
32 class G1BarrierSetAssembler: public ModRefBarrierSetAssembler { |
38 class G1BarrierSetAssembler: public ModRefBarrierSetAssembler { |
33 protected: |
39 protected: |
34 virtual void gen_write_ref_array_pre_barrier(MacroAssembler* masm, DecoratorSet decorators, Register from, Register to, Register count, |
40 virtual void gen_write_ref_array_pre_barrier(MacroAssembler* masm, DecoratorSet decorators, Register from, Register to, Register count, |
35 Register preserve1, Register preserve2); |
41 Register preserve1, Register preserve2); |
43 virtual void oop_store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
49 virtual void oop_store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
44 Register base, RegisterOrConstant ind_or_offs, Register val, |
50 Register base, RegisterOrConstant ind_or_offs, Register val, |
45 Register tmp1, Register tmp2, Register tmp3, bool needs_frame); |
51 Register tmp1, Register tmp2, Register tmp3, bool needs_frame); |
46 |
52 |
47 public: |
53 public: |
|
54 #ifdef COMPILER1 |
|
55 void gen_pre_barrier_stub(LIR_Assembler* ce, G1PreBarrierStub* stub); |
|
56 void gen_post_barrier_stub(LIR_Assembler* ce, G1PostBarrierStub* stub); |
|
57 |
|
58 void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm); |
|
59 void generate_c1_post_barrier_runtime_stub(StubAssembler* sasm); |
|
60 #endif |
|
61 |
48 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
62 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
49 Register base, RegisterOrConstant ind_or_offs, Register dst, |
63 Register base, RegisterOrConstant ind_or_offs, Register dst, |
50 Register tmp1, Register tmp2, bool needs_frame, Label *is_null = NULL); |
64 Register tmp1, Register tmp2, bool needs_frame, Label *is_null = NULL); |
51 |
65 |
52 virtual void resolve_jobject(MacroAssembler* masm, Register value, Register tmp1, Register tmp2, bool needs_frame); |
66 virtual void resolve_jobject(MacroAssembler* masm, Register value, Register tmp1, Register tmp2, bool needs_frame); |