< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.hpp

8199604_cardtablemodrefbs_rename

257   void do_update_CRC32C(Intrinsic* x);                                                                                               
258   void do_vectorizedMismatch(Intrinsic* x);                                                                                          
259 
260   LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);     
261   LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);     
262 
263   // convenience functions                                                                                                           
264   LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);                                       
265   LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);                           
266 
267   // GC Barriers                                                                                                                     
268 
269   // generic interface                                                                                                               
270 
271   void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info);                                 
272   void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);                                                                        
273 
274   // specific implementations                                                                                                        
275   // pre barriers                                                                                                                    
276 
277   void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val,                                                          
278                                          bool do_load, bool patch, CodeEmitInfo* info);                                              
279 
280   // post barriers                                                                                                                   
281 
282   void G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);                                                  
283   void CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);                                                        
284 #ifdef CARDTABLEMODREF_POST_BARRIER_HELPER                                                                                           
285   void CardTableModRef_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);                                           
286 #endif                                                                                                                               
287 
288 
289   static LIR_Opr result_register_for(ValueType* type, bool callee = false);                                                          
290 
291   ciObject* get_jobject_constant(Value value);                                                                                       
292 
293   LIRItemList* invoke_visit_arguments(Invoke* x);                                                                                    
294   void invoke_load_arguments(Invoke* x, LIRItemList* args, const LIR_OprList* arg_list);                                             
295 
296   void trace_block_entry(BlockBegin* block);                                                                                         
297 
298   // volatile field operations are never patchable because a klass                                                                   
299   // must be loaded to know it's volatile which means that the offset                                                                
300   // it always known as well.                                                                                                        
301   void volatile_field_store(LIR_Opr value, LIR_Address* address, CodeEmitInfo* info);                                                
302   void volatile_field_load(LIR_Address* address, LIR_Opr result, CodeEmitInfo* info);                                                
303 
304   void put_Object_unsafe(LIR_Opr src, LIR_Opr offset, LIR_Opr data, BasicType type, bool is_volatile);                               

257   void do_update_CRC32C(Intrinsic* x);
258   void do_vectorizedMismatch(Intrinsic* x);
259 
260   LIR_Opr call_runtime(BasicTypeArray* signature, LIRItemList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
261   LIR_Opr call_runtime(BasicTypeArray* signature, LIR_OprList* args, address entry, ValueType* result_type, CodeEmitInfo* info);
262 
263   // convenience functions
264   LIR_Opr call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info);
265   LIR_Opr call_runtime(Value arg1, Value arg2, address entry, ValueType* result_type, CodeEmitInfo* info);
266 
267   // GC Barriers
268 
269   // generic interface
270 
271   void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info);
272   void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
273 
274   // specific implementations
275   // pre barriers
276 
277   void G1BarrierSet_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val,
278                                 bool do_load, bool patch, CodeEmitInfo* info);
279 
280   // post barriers
281 
282   void G1BarrierSet_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
283   void CardTableBarrierSet_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val);
284 #ifdef CARDTABLEBARRIERSET_POST_BARRIER_HELPER
285   void CardTableBarrierSet_post_barrier_helper(LIR_OprDesc* addr, LIR_Const* card_table_base);
286 #endif
287 
288 
289   static LIR_Opr result_register_for(ValueType* type, bool callee = false);
290 
291   ciObject* get_jobject_constant(Value value);
292 
293   LIRItemList* invoke_visit_arguments(Invoke* x);
294   void invoke_load_arguments(Invoke* x, LIRItemList* args, const LIR_OprList* arg_list);
295 
296   void trace_block_entry(BlockBegin* block);
297 
298   // volatile field operations are never patchable because a klass
299   // must be loaded to know it's volatile which means that the offset
300   // it always known as well.
301   void volatile_field_store(LIR_Opr value, LIR_Address* address, CodeEmitInfo* info);
302   void volatile_field_load(LIR_Address* address, LIR_Opr result, CodeEmitInfo* info);
303 
304   void put_Object_unsafe(LIR_Opr src, LIR_Opr offset, LIR_Opr data, BasicType type, bool is_volatile);
< prev index next >