< prev index next >

src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp

Print this page
rev 55922 : 8228369: Shenandoah: Refactor LRB C1 stubs
rev 55923 : imported patch JDK-8228369-03.patch


 177     return "shenandoah_cas_obj";
 178   }
 179 #endif // PRODUCT
 180 };
 181 
 182 class ShenandoahBarrierSetC1 : public BarrierSetC1 {
 183 private:
 184   CodeBlob* _pre_barrier_c1_runtime_code_blob;
 185   CodeBlob* _load_reference_barrier_rt_code_blob;
 186 
 187   void pre_barrier(LIRGenerator* gen, CodeEmitInfo* info, DecoratorSet decorators, LIR_Opr addr_opr, LIR_Opr pre_val);
 188 
 189   LIR_Opr load_reference_barrier(LIRGenerator* gen, LIR_Opr obj);
 190   LIR_Opr storeval_barrier(LIRGenerator* gen, LIR_Opr obj, CodeEmitInfo* info, DecoratorSet decorators);
 191 
 192   LIR_Opr load_reference_barrier_impl(LIRGenerator* gen, LIR_Opr obj);
 193 
 194   LIR_Opr ensure_in_register(LIRGenerator* gen, LIR_Opr obj);
 195 
 196 public:
 197   CodeBlob* pre_barrier_c1_runtime_code_blob() { return _pre_barrier_c1_runtime_code_blob; }
 198   CodeBlob* load_reference_barrier_rt_code_blob() { return _load_reference_barrier_rt_code_blob; }









 199 
 200 protected:
 201 
 202   virtual void store_at_resolved(LIRAccess& access, LIR_Opr value);
 203   virtual void load_at_resolved(LIRAccess& access, LIR_Opr result);
 204 
 205   virtual LIR_Opr atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value);
 206 
 207   virtual LIR_Opr atomic_xchg_at_resolved(LIRAccess& access, LIRItem& value);
 208 
 209 public:
 210 
 211   virtual void generate_c1_runtime_stubs(BufferBlob* buffer_blob);
 212   virtual const char* rtcall_name_for_address(address entry);
 213 };
 214 
 215 #endif // SHARE_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP


 177     return "shenandoah_cas_obj";
 178   }
 179 #endif // PRODUCT
 180 };
 181 
 182 class ShenandoahBarrierSetC1 : public BarrierSetC1 {
 183 private:
 184   CodeBlob* _pre_barrier_c1_runtime_code_blob;
 185   CodeBlob* _load_reference_barrier_rt_code_blob;
 186 
 187   void pre_barrier(LIRGenerator* gen, CodeEmitInfo* info, DecoratorSet decorators, LIR_Opr addr_opr, LIR_Opr pre_val);
 188 
 189   LIR_Opr load_reference_barrier(LIRGenerator* gen, LIR_Opr obj);
 190   LIR_Opr storeval_barrier(LIRGenerator* gen, LIR_Opr obj, CodeEmitInfo* info, DecoratorSet decorators);
 191 
 192   LIR_Opr load_reference_barrier_impl(LIRGenerator* gen, LIR_Opr obj);
 193 
 194   LIR_Opr ensure_in_register(LIRGenerator* gen, LIR_Opr obj);
 195 
 196 public:
 197   ShenandoahBarrierSetC1();
 198 
 199   CodeBlob* pre_barrier_c1_runtime_code_blob() {
 200     assert(_pre_barrier_c1_runtime_code_blob != NULL, "");
 201     return _pre_barrier_c1_runtime_code_blob;
 202   }
 203 
 204   CodeBlob* load_reference_barrier_rt_code_blob() {
 205     assert(_load_reference_barrier_rt_code_blob != NULL, "");
 206     return _load_reference_barrier_rt_code_blob;
 207   }
 208 
 209 protected:
 210 
 211   virtual void store_at_resolved(LIRAccess& access, LIR_Opr value);
 212   virtual void load_at_resolved(LIRAccess& access, LIR_Opr result);
 213 
 214   virtual LIR_Opr atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value);
 215 
 216   virtual LIR_Opr atomic_xchg_at_resolved(LIRAccess& access, LIRItem& value);
 217 
 218 public:
 219 
 220   virtual void generate_c1_runtime_stubs(BufferBlob* buffer_blob);
 221   virtual const char* rtcall_name_for_address(address entry);
 222 };
 223 
 224 #endif // SHARE_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
< prev index next >