< prev index next >
src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp
Print this page
rev 50905 : Move Shenandoah stubs generation into ShenandoahBarrierSetAssembler
rev 50907 : [mq]: stubgen-v3.patch
*** 31,40 ****
--- 31,44 ----
#include "gc/shenandoah/c1/shenandoahBarrierSetC1.hpp"
#endif
class ShenandoahBarrierSetAssembler: public BarrierSetAssembler {
private:
+
+ static address _shenandoah_wb;
+ static address _shenandoah_wb_C;
+
void satb_write_barrier_pre(MacroAssembler* masm,
Register obj,
Register pre_val,
Register thread,
Register tmp,
*** 65,75 ****
--- 69,86 ----
void write_barrier_impl(MacroAssembler* masm, Register dst);
void storeval_barrier(MacroAssembler* masm, Register dst, Register tmp);
void storeval_barrier_impl(MacroAssembler* masm, Register dst, Register tmp);
+ address generate_shenandoah_wb(StubCodeGenerator* cgen, bool c_abi, bool do_cset_test);
+
public:
+ static address shenandoah_wb();
+ static address shenandoah_wb_C();
+
+ static bool is_shenandoah_wb_C_call(address call);
+
#ifdef COMPILER1
void gen_pre_barrier_stub(LIR_Assembler* ce, ShenandoahPreBarrierStub* stub);
void generate_c1_pre_barrier_runtime_stub(StubAssembler* sasm);
#endif
*** 92,99 ****
--- 103,112 ----
virtual void obj_equals_addr(MacroAssembler* masm, DecoratorSet decorators, Register src1, Address src2);
virtual void resolve_for_read(MacroAssembler* masm, DecoratorSet decorators, Register obj);
virtual void resolve_for_write(MacroAssembler* masm, DecoratorSet decorators, Register obj);
+ virtual void barrier_stubs_init();
+
};
#endif // CPU_X86_GC_SHENANDOAH_SHENANDOAHBARRIERSETASSEMBLER_X86_HPP
< prev index next >