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