< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.hpp

Print this page
rev 51436 : 8209667: Explicit barriers for C1/LIR


 283   void access_store_at(DecoratorSet decorators, BasicType type,
 284                        LIRItem& base, LIR_Opr offset, LIR_Opr value,
 285                        CodeEmitInfo* patch_info = NULL, CodeEmitInfo* store_emit_info = NULL);
 286 
 287   void access_load_at(DecoratorSet decorators, BasicType type,
 288                       LIRItem& base, LIR_Opr offset, LIR_Opr result,
 289                       CodeEmitInfo* patch_info = NULL, CodeEmitInfo* load_emit_info = NULL);
 290 
 291   void access_load(DecoratorSet decorators, BasicType type,
 292                    LIR_Opr addr, LIR_Opr result);
 293 
 294   LIR_Opr access_atomic_cmpxchg_at(DecoratorSet decorators, BasicType type,
 295                                    LIRItem& base, LIRItem& offset, LIRItem& cmp_value, LIRItem& new_value);
 296 
 297   LIR_Opr access_atomic_xchg_at(DecoratorSet decorators, BasicType type,
 298                                 LIRItem& base, LIRItem& offset, LIRItem& value);
 299 
 300   LIR_Opr access_atomic_add_at(DecoratorSet decorators, BasicType type,
 301                                LIRItem& base, LIRItem& offset, LIRItem& value);
 302 


 303   // These need to guarantee JMM volatile semantics are preserved on each platform
 304   // and requires one implementation per architecture.
 305   LIR_Opr atomic_cmpxchg(BasicType type, LIR_Opr addr, LIRItem& cmp_value, LIRItem& new_value);
 306   LIR_Opr atomic_xchg(BasicType type, LIR_Opr addr, LIRItem& new_value);
 307   LIR_Opr atomic_add(BasicType type, LIR_Opr addr, LIRItem& new_value);
 308 
 309 #ifdef CARDTABLEBARRIERSET_POST_BARRIER_HELPER
 310   virtual void CardTableBarrierSet_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);
 311 #endif
 312 
 313   // specific implementations
 314   void array_store_check(LIR_Opr value, LIR_Opr array, CodeEmitInfo* store_check_info, ciMethod* profiled_method, int profiled_bci);
 315 
 316   static LIR_Opr result_register_for(ValueType* type, bool callee = false);
 317 
 318   ciObject* get_jobject_constant(Value value);
 319 
 320   LIRItemList* invoke_visit_arguments(Invoke* x);
 321   void invoke_load_arguments(Invoke* x, LIRItemList* args, const LIR_OprList* arg_list);
 322 




 283   void access_store_at(DecoratorSet decorators, BasicType type,
 284                        LIRItem& base, LIR_Opr offset, LIR_Opr value,
 285                        CodeEmitInfo* patch_info = NULL, CodeEmitInfo* store_emit_info = NULL);
 286 
 287   void access_load_at(DecoratorSet decorators, BasicType type,
 288                       LIRItem& base, LIR_Opr offset, LIR_Opr result,
 289                       CodeEmitInfo* patch_info = NULL, CodeEmitInfo* load_emit_info = NULL);
 290 
 291   void access_load(DecoratorSet decorators, BasicType type,
 292                    LIR_Opr addr, LIR_Opr result);
 293 
 294   LIR_Opr access_atomic_cmpxchg_at(DecoratorSet decorators, BasicType type,
 295                                    LIRItem& base, LIRItem& offset, LIRItem& cmp_value, LIRItem& new_value);
 296 
 297   LIR_Opr access_atomic_xchg_at(DecoratorSet decorators, BasicType type,
 298                                 LIRItem& base, LIRItem& offset, LIRItem& value);
 299 
 300   LIR_Opr access_atomic_add_at(DecoratorSet decorators, BasicType type,
 301                                LIRItem& base, LIRItem& offset, LIRItem& value);
 302 
 303   LIR_Opr access_resolve(DecoratorSet decorators, LIR_Opr obj, CodeEmitInfo* info);
 304 
 305   // These need to guarantee JMM volatile semantics are preserved on each platform
 306   // and requires one implementation per architecture.
 307   LIR_Opr atomic_cmpxchg(BasicType type, LIR_Opr addr, LIRItem& cmp_value, LIRItem& new_value);
 308   LIR_Opr atomic_xchg(BasicType type, LIR_Opr addr, LIRItem& new_value);
 309   LIR_Opr atomic_add(BasicType type, LIR_Opr addr, LIRItem& new_value);
 310 
 311 #ifdef CARDTABLEBARRIERSET_POST_BARRIER_HELPER
 312   virtual void CardTableBarrierSet_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);
 313 #endif
 314 
 315   // specific implementations
 316   void array_store_check(LIR_Opr value, LIR_Opr array, CodeEmitInfo* store_check_info, ciMethod* profiled_method, int profiled_bci);
 317 
 318   static LIR_Opr result_register_for(ValueType* type, bool callee = false);
 319 
 320   ciObject* get_jobject_constant(Value value);
 321 
 322   LIRItemList* invoke_visit_arguments(Invoke* x);
 323   void invoke_load_arguments(Invoke* x, LIRItemList* args, const LIR_OprList* arg_list);
 324 


< prev index next >