< prev index next >

src/hotspot/share/gc/z/c1/zBarrierSetC1.hpp

Print this page

 70                       LIR_Opr new_zpointer,
 71                       LIR_Opr tmp,
 72                       bool is_atomic,
 73                       address runtime_stub);
 74 
 75   LIR_Opr ref_addr() const;
 76   LIR_Opr new_zaddress() const;
 77   LIR_Opr new_zpointer() const;
 78   LIR_Opr tmp() const;
 79   bool is_atomic() const;
 80   address runtime_stub() const;
 81 
 82   virtual void emit_code(LIR_Assembler* ce);
 83   virtual void visit(LIR_OpVisitState* visitor);
 84 
 85 #ifndef PRODUCT
 86   virtual void print_name(outputStream* out) const;
 87 #endif // PRODUCT
 88 };
 89 


 90 class ZBarrierSetC1 : public BarrierSetC1 {

 91 private:
 92   address _load_barrier_on_oop_field_preloaded_runtime_stub;
 93   address _load_barrier_on_weak_oop_field_preloaded_runtime_stub;
 94   address _store_barrier_on_oop_field_with_healing;
 95   address _store_barrier_on_oop_field_without_healing;
 96 
 97   address load_barrier_on_oop_field_preloaded_runtime_stub(DecoratorSet decorators) const;
 98   address store_barrier_on_oop_field_runtime_stub(bool self_healing) const;
 99 
100   LIR_Opr color(LIRAccess& access, LIR_Opr ref) const;
101 
102   void load_barrier(LIRAccess& access, LIR_Opr result) const;
103   LIR_Opr store_barrier(LIRAccess& access, LIR_Opr new_zaddress, bool is_atomic) const;
104 
105 protected:
106   virtual LIR_Opr resolve_address(LIRAccess& access, bool resolve_in_register);
107   virtual void load_at_resolved(LIRAccess& access, LIR_Opr result);
108   virtual void store_at_resolved(LIRAccess& access, LIR_Opr value);
109   virtual LIR_Opr atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value);
110   virtual LIR_Opr atomic_xchg_at_resolved(LIRAccess& access, LIRItem& value);

 70                       LIR_Opr new_zpointer,
 71                       LIR_Opr tmp,
 72                       bool is_atomic,
 73                       address runtime_stub);
 74 
 75   LIR_Opr ref_addr() const;
 76   LIR_Opr new_zaddress() const;
 77   LIR_Opr new_zpointer() const;
 78   LIR_Opr tmp() const;
 79   bool is_atomic() const;
 80   address runtime_stub() const;
 81 
 82   virtual void emit_code(LIR_Assembler* ce);
 83   virtual void visit(LIR_OpVisitState* visitor);
 84 
 85 #ifndef PRODUCT
 86   virtual void print_name(outputStream* out) const;
 87 #endif // PRODUCT
 88 };
 89 
 90 class SCAddressTable;
 91 
 92 class ZBarrierSetC1 : public BarrierSetC1 {
 93   friend SCAddressTable;
 94 private:
 95   address _load_barrier_on_oop_field_preloaded_runtime_stub;
 96   address _load_barrier_on_weak_oop_field_preloaded_runtime_stub;
 97   address _store_barrier_on_oop_field_with_healing;
 98   address _store_barrier_on_oop_field_without_healing;
 99 
100   address load_barrier_on_oop_field_preloaded_runtime_stub(DecoratorSet decorators) const;
101   address store_barrier_on_oop_field_runtime_stub(bool self_healing) const;
102 
103   LIR_Opr color(LIRAccess& access, LIR_Opr ref) const;
104 
105   void load_barrier(LIRAccess& access, LIR_Opr result) const;
106   LIR_Opr store_barrier(LIRAccess& access, LIR_Opr new_zaddress, bool is_atomic) const;
107 
108 protected:
109   virtual LIR_Opr resolve_address(LIRAccess& access, bool resolve_in_register);
110   virtual void load_at_resolved(LIRAccess& access, LIR_Opr result);
111   virtual void store_at_resolved(LIRAccess& access, LIR_Opr value);
112   virtual LIR_Opr atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value);
113   virtual LIR_Opr atomic_xchg_at_resolved(LIRAccess& access, LIRItem& value);
< prev index next >