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