< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.hpp

c1_root_access

270   LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);     
271 
272   // convenience functions                                                                                                           
273   LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);                                       
274   LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);                           
275 
276   // Access API                                                                                                                      
277 
278  private:                                                                                                                            
279   BarrierSetC1 *_barrier_set;                                                                                                        
280 
281  public:                                                                                                                             
282   void access_store_at(DecoratorSet decorators, BasicType type,                                                                      
283                        LIRItem& base, LIR_Opr offset, LIR_Opr value,                                                                 
284                        CodeEmitInfo* patch_info = NULL, CodeEmitInfo* store_emit_info = NULL);                                       
285 
286   void access_load_at(DecoratorSet decorators, BasicType type,                                                                       
287                       LIRItem& base, LIR_Opr offset, LIR_Opr result,                                                                 
288                       CodeEmitInfo* patch_info = NULL, CodeEmitInfo* load_emit_info = NULL);                                         
289 
                                                                                                                                     
                                                                                                                                     
                                                                                                                                     
290   LIR_Opr access_atomic_cmpxchg_at(DecoratorSet decorators, BasicType type,                                                          
291                                    LIRItem& base, LIRItem& offset, LIRItem& cmp_value, LIRItem& new_value);                          
292 
293   LIR_Opr access_atomic_xchg_at(DecoratorSet decorators, BasicType type,                                                             
294                                 LIRItem& base, LIRItem& offset, LIRItem& value);                                                     
295 
296   LIR_Opr access_atomic_add_at(DecoratorSet decorators, BasicType type,                                                              
297                                LIRItem& base, LIRItem& offset, LIRItem& value);                                                      
298 
299   // These need to guarantee JMM volatile semantics are preserved on each platform                                                   
300   // and requires one implementation per architecture.                                                                               
301   LIR_Opr atomic_cmpxchg(BasicType type, LIR_Opr addr, LIRItem& cmp_value, LIRItem& new_value);                                      
302   LIR_Opr atomic_xchg(BasicType type, LIR_Opr addr, LIRItem& new_value);                                                             
303   LIR_Opr atomic_add(BasicType type, LIR_Opr addr, LIRItem& new_value);                                                              
304 
305 #ifdef CARDTABLEBARRIERSET_POST_BARRIER_HELPER                                                                                       
306   virtual void CardTableBarrierSet_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);                               
307 #endif                                                                                                                               
308 

270   LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
271 
272   // convenience functions
273   LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
274   LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
275 
276   // Access API
277 
278  private:
279   BarrierSetC1 *_barrier_set;
280 
281  public:
282   void access_store_at(DecoratorSet decorators, BasicType type,
283                        LIRItem& base, LIR_Opr offset, LIR_Opr value,
284                        CodeEmitInfo* patch_info = NULL, CodeEmitInfo* store_emit_info = NULL);
285 
286   void access_load_at(DecoratorSet decorators, BasicType type,
287                       LIRItem& base, LIR_Opr offset, LIR_Opr result,
288                       CodeEmitInfo* patch_info = NULL, CodeEmitInfo* load_emit_info = NULL);
289 
290   void access_load(DecoratorSet decorators, BasicType type,
291                    LIR_Opr addr, LIR_Opr result);
292 
293   LIR_Opr access_atomic_cmpxchg_at(DecoratorSet decorators, BasicType type,
294                                    LIRItem& base, LIRItem& offset, LIRItem& cmp_value, LIRItem& new_value);
295 
296   LIR_Opr access_atomic_xchg_at(DecoratorSet decorators, BasicType type,
297                                 LIRItem& base, LIRItem& offset, LIRItem& value);
298 
299   LIR_Opr access_atomic_add_at(DecoratorSet decorators, BasicType type,
300                                LIRItem& base, LIRItem& offset, LIRItem& value);
301 
302   // These need to guarantee JMM volatile semantics are preserved on each platform
303   // and requires one implementation per architecture.
304   LIR_Opr atomic_cmpxchg(BasicType type, LIR_Opr addr, LIRItem& cmp_value, LIRItem& new_value);
305   LIR_Opr atomic_xchg(BasicType type, LIR_Opr addr, LIRItem& new_value);
306   LIR_Opr atomic_add(BasicType type, LIR_Opr addr, LIRItem& new_value);
307 
308 #ifdef CARDTABLEBARRIERSET_POST_BARRIER_HELPER
309   virtual void CardTableBarrierSet_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);
310 #endif
311 
< prev index next >