< prev index next >

src/hotspot/share/gc/g1/c1/g1BarrierSetC1.hpp

BarrierSetC1_v3

BarrierSetC1_v2

100 
101   virtual void emit_code(LIR_Assembler* e);                                                                                          
102   virtual void visit(LIR_OpVisitState* visitor) {                                                                                    
103     // don't pass in the code emit info since it's processed in the fast path                                                        
104     visitor->do_slow_case();                                                                                                         
105     visitor->do_input(_addr);                                                                                                        
106     visitor->do_input(_new_val);                                                                                                     
107   }                                                                                                                                  
108 #ifndef PRODUCT                                                                                                                      
109   virtual void print_name(outputStream* out) const { out->print("G1PostBarrierStub"); }                                              
110 #endif // PRODUCT                                                                                                                    
111 };                                                                                                                                   
112 
113 class CodeBlob;                                                                                                                      
114 
115 class G1BarrierSetC1 : public ModRefBarrierSetC1 {                                                                                   
116  protected:                                                                                                                          
117   CodeBlob* _pre_barrier_c1_runtime_code_blob;                                                                                       
118   CodeBlob* _post_barrier_c1_runtime_code_blob;                                                                                      
119 
120   virtual void pre_barrier(LIRGenerator* lir_generator, DecoratorSet decorators,                                                     
121                            LIR_Opr addr_opr, LIR_Opr pre_val, CodeEmitInfo* info);                                                   
122   virtual void post_barrier(LIRGenerator* lir_generator, DecoratorSet decorators,                                                    
123                             LIR_OprDesc* addr, LIR_OprDesc* new_val);                                                                
                                                                                                                                     
124 
125   virtual void load_at_resolved(LIRGenerator* lir_generator, DecoratorSet decorators, BasicType type,                                
126                                 LIR_Opr addr, LIRItem& base, LIR_Opr offset, LIR_Opr result,                                         
127                                 CodeEmitInfo* patch_info, CodeEmitInfo* load_emit_info);                                             
128  public:                                                                                                                             
129   G1BarrierSetC1()                                                                                                                   
130     : _pre_barrier_c1_runtime_code_blob(NULL),                                                                                       
131       _post_barrier_c1_runtime_code_blob(NULL) {}                                                                                    
132 
133   CodeBlob* pre_barrier_c1_runtime_code_blob() { return _pre_barrier_c1_runtime_code_blob; }                                         
134   CodeBlob* post_barrier_c1_runtime_code_blob() { return _post_barrier_c1_runtime_code_blob; }                                       
135 
136   virtual void generate_c1_runtime_stubs(BufferBlob* buffer_blob);                                                                   
137 };                                                                                                                                   
138 
139 #endif // SHARE_GC_G1_C1_G1BARRIERSETC1_HPP                                                                                          

100 
101   virtual void emit_code(LIR_Assembler* e);
102   virtual void visit(LIR_OpVisitState* visitor) {
103     // don't pass in the code emit info since it's processed in the fast path
104     visitor->do_slow_case();
105     visitor->do_input(_addr);
106     visitor->do_input(_new_val);
107   }
108 #ifndef PRODUCT
109   virtual void print_name(outputStream* out) const { out->print("G1PostBarrierStub"); }
110 #endif // PRODUCT
111 };
112 
113 class CodeBlob;
114 
115 class G1BarrierSetC1 : public ModRefBarrierSetC1 {
116  protected:
117   CodeBlob* _pre_barrier_c1_runtime_code_blob;
118   CodeBlob* _post_barrier_c1_runtime_code_blob;
119 
120   virtual void pre_barrier(LIRAccess& access, LIR_Opr addr_opr,
121                            LIR_Opr pre_val, CodeEmitInfo* info);
122   virtual void post_barrier(LIRAccess& access, LIR_OprDesc* addr, LIR_OprDesc* new_val);
123 
124   virtual void load_at_resolved(LIRAccess& access, LIR_Opr result);
125 



126  public:
127   G1BarrierSetC1()
128     : _pre_barrier_c1_runtime_code_blob(NULL),
129       _post_barrier_c1_runtime_code_blob(NULL) {}
130 
131   CodeBlob* pre_barrier_c1_runtime_code_blob() { return _pre_barrier_c1_runtime_code_blob; }
132   CodeBlob* post_barrier_c1_runtime_code_blob() { return _post_barrier_c1_runtime_code_blob; }
133 
134   virtual void generate_c1_runtime_stubs(BufferBlob* buffer_blob);
135 };
136 
137 #endif // SHARE_GC_G1_C1_G1BARRIERSETC1_HPP
< prev index next >