< prev index next >

src/share/vm/opto/graphKit.hpp

Print this page
rev 14282 : Factor out keep-alive barrier from usual pre-barrier implementations.


 617 
 618   // Could be an array or object we don't know at compile time (unsafe ref.)
 619   Node* store_oop_to_unknown(Node* ctl,
 620                              Node* obj,   // containing obj
 621                              Node* adr,   // actual adress to store val at
 622                              const TypePtr* adr_type,
 623                              Node* val,
 624                              BasicType bt,
 625                              MemNode::MemOrd mo,
 626                              bool mismatched = false);
 627 
 628   // For the few case where the barriers need special help
 629   Node* pre_barrier(bool do_load, Node* ctl,
 630                    Node* obj, Node* adr, uint adr_idx, Node* val, const TypeOopPtr* val_type,
 631                    Node* pre_val,
 632                    BasicType bt);
 633 
 634   void post_barrier(Node* ctl, Node* store, Node* obj, Node* adr, uint adr_idx,
 635                     Node* val, BasicType bt, bool use_precise);
 636 


 637   // Return addressing for an array element.
 638   Node* array_element_address(Node* ary, Node* idx, BasicType elembt,
 639                               // Optional constraint on the array size:
 640                               const TypeInt* sizetype = NULL,
 641                               // Optional control dependency (for example, on range check)
 642                               Node* ctrl = NULL);
 643 
 644   // Return a load of array element at idx.
 645   Node* load_array_element(Node* ctl, Node* ary, Node* idx, const TypeAryPtr* arytype);
 646 
 647   //---------------- Dtrace support --------------------
 648   void make_dtrace_method_entry_exit(ciMethod* method, bool is_entry);
 649   void make_dtrace_method_entry(ciMethod* method) {
 650     make_dtrace_method_entry_exit(method, true);
 651   }
 652   void make_dtrace_method_exit(ciMethod* method) {
 653     make_dtrace_method_entry_exit(method, false);
 654   }
 655 
 656   //--------------- stub generation -------------------




 617 
 618   // Could be an array or object we don't know at compile time (unsafe ref.)
 619   Node* store_oop_to_unknown(Node* ctl,
 620                              Node* obj,   // containing obj
 621                              Node* adr,   // actual adress to store val at
 622                              const TypePtr* adr_type,
 623                              Node* val,
 624                              BasicType bt,
 625                              MemNode::MemOrd mo,
 626                              bool mismatched = false);
 627 
 628   // For the few case where the barriers need special help
 629   Node* pre_barrier(bool do_load, Node* ctl,
 630                    Node* obj, Node* adr, uint adr_idx, Node* val, const TypeOopPtr* val_type,
 631                    Node* pre_val,
 632                    BasicType bt);
 633 
 634   void post_barrier(Node* ctl, Node* store, Node* obj, Node* adr, uint adr_idx,
 635                     Node* val, BasicType bt, bool use_precise);
 636 
 637   void keep_alive_barrier(Node* ctl, Node* pre_val);
 638 
 639   // Return addressing for an array element.
 640   Node* array_element_address(Node* ary, Node* idx, BasicType elembt,
 641                               // Optional constraint on the array size:
 642                               const TypeInt* sizetype = NULL,
 643                               // Optional control dependency (for example, on range check)
 644                               Node* ctrl = NULL);
 645 
 646   // Return a load of array element at idx.
 647   Node* load_array_element(Node* ctl, Node* ary, Node* idx, const TypeAryPtr* arytype);
 648 
 649   //---------------- Dtrace support --------------------
 650   void make_dtrace_method_entry_exit(ciMethod* method, bool is_entry);
 651   void make_dtrace_method_entry(ciMethod* method) {
 652     make_dtrace_method_entry_exit(method, true);
 653   }
 654   void make_dtrace_method_exit(ciMethod* method) {
 655     make_dtrace_method_entry_exit(method, false);
 656   }
 657 
 658   //--------------- stub generation -------------------


< prev index next >