< prev index next >

src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.hpp

Print this page

 77 
 78   virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
 79                                   Register start, Register count, Register tmp);
 80 
 81   virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
 82                        Register dst, Address src, Register tmp1, Register tmp2);
 83   virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
 84                         Address dst, Register val, Register tmp1, Register tmp2, Register tmp3);
 85 
 86   virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
 87                                              Register obj, Register tmp, Label& slowpath);
 88 
 89 #ifdef COMPILER1
 90   void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub);
 91   void gen_load_reference_barrier_stub(LIR_Assembler* ce, ShenandoahLoadReferenceBarrierStub* stub);
 92   void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm);
 93   void generate_c1_load_reference_barrier_runtime_stub(StubAssembler* sasm, DecoratorSet decorators);
 94 #endif
 95 
 96 #ifdef COMPILER2
 97   // Entry points from Matcher





 98   void load_c2(const MachNode* node, MacroAssembler* masm, Register dst, Address addr);
 99   void store_c2(const MachNode* node, MacroAssembler* masm, Address dst, bool dst_narrow, Register src,
100       bool src_narrow, Register tmp);
101   void compare_and_set_c2(const MachNode* node, MacroAssembler* masm, Register res, Register addr, Register oldval,
102       Register newval, Register tmp, bool exchange, bool maybe_null, bool narrow, bool weak);
103   void get_and_set_c2(const MachNode* node, MacroAssembler* masm, Register preval, Register newval,
104       Register addr, Register tmp);
105 
106   void gc_state_check_c2(MacroAssembler* masm, Register rscratch, const unsigned char test_state, BarrierStubC2* slow_stub);
107   void card_barrier_c2(const MachNode* node, MacroAssembler* masm, Address addr);
108   virtual void try_resolve_weak_handle_in_c2(MacroAssembler* masm, Register obj, Register tmp, Label& slow_path);
109 #endif
110 };
111 
112 #endif // CPU_RISCV_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_RISCV_HPP

 77 
 78   virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
 79                                   Register start, Register count, Register tmp);
 80 
 81   virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
 82                        Register dst, Address src, Register tmp1, Register tmp2);
 83   virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
 84                         Address dst, Register val, Register tmp1, Register tmp2, Register tmp3);
 85 
 86   virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
 87                                              Register obj, Register tmp, Label& slowpath);
 88 
 89 #ifdef COMPILER1
 90   void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub);
 91   void gen_load_reference_barrier_stub(LIR_Assembler* ce, ShenandoahLoadReferenceBarrierStub* stub);
 92   void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm);
 93   void generate_c1_load_reference_barrier_runtime_stub(StubAssembler* sasm, DecoratorSet decorators);
 94 #endif
 95 
 96 #ifdef COMPILER2
 97   // Barriers hotpatching
 98   static address parse_stub_address(address pc);
 99   static void patch_branch_to_nop(address pc);
100   static void patch_nop_to_branch(address pc, address stub_addr);
101 
102 // Entry points from Matcher
103   void load_c2(const MachNode* node, MacroAssembler* masm, Register dst, Address addr);
104   void store_c2(const MachNode* node, MacroAssembler* masm, Address dst, bool dst_narrow, Register src,
105       bool src_narrow, Register tmp);
106   void compare_and_set_c2(const MachNode* node, MacroAssembler* masm, Register res, Register addr, Register oldval,
107       Register newval, Register tmp, bool exchange, bool maybe_null, bool narrow, bool weak);
108   void get_and_set_c2(const MachNode* node, MacroAssembler* masm, Register preval, Register newval,
109       Register addr, Register tmp);
110 

111   void card_barrier_c2(const MachNode* node, MacroAssembler* masm, Address addr);
112   virtual void try_resolve_weak_handle_in_c2(MacroAssembler* masm, Register obj, Register tmp, Label& slow_path);
113 #endif
114 };
115 
116 #endif // CPU_RISCV_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_RISCV_HPP
< prev index next >