src/hotspot/share/opto/macro.hpp
changeset 58217 b1a394e15ae9
parent 53244 9807daeb47c4
equal deleted inserted replaced
58216:f43c809a27bd 58217:b1a394e15ae9
    60   void set_eden_pointers(Node* &eden_top_adr, Node* &eden_end_adr);
    60   void set_eden_pointers(Node* &eden_top_adr, Node* &eden_end_adr);
    61   Node* make_load( Node* ctl, Node* mem, Node* base, int offset,
    61   Node* make_load( Node* ctl, Node* mem, Node* base, int offset,
    62                    const Type* value_type, BasicType bt);
    62                    const Type* value_type, BasicType bt);
    63   Node* make_store(Node* ctl, Node* mem, Node* base, int offset,
    63   Node* make_store(Node* ctl, Node* mem, Node* base, int offset,
    64                    Node* value, BasicType bt);
    64                    Node* value, BasicType bt);
       
    65 
       
    66   Node* make_leaf_call(Node* ctrl, Node* mem,
       
    67                        const TypeFunc* call_type, address call_addr,
       
    68                        const char* call_name,
       
    69                        const TypePtr* adr_type,
       
    70                        Node* parm0 = NULL, Node* parm1 = NULL,
       
    71                        Node* parm2 = NULL, Node* parm3 = NULL,
       
    72                        Node* parm4 = NULL, Node* parm5 = NULL,
       
    73                        Node* parm6 = NULL, Node* parm7 = NULL);
       
    74 
       
    75   address basictype2arraycopy(BasicType t,
       
    76                               Node* src_offset,
       
    77                               Node* dest_offset,
       
    78                               bool disjoint_bases,
       
    79                               const char* &name,
       
    80                               bool dest_uninitialized);
    65 
    81 
    66 private:
    82 private:
    67   // projections extracted from a call node
    83   // projections extracted from a call node
    68   ProjNode *_fallthroughproj;
    84   ProjNode *_fallthroughproj;
    69   ProjNode *_fallthroughcatchproj;
    85   ProjNode *_fallthroughcatchproj;
   101 
   117 
   102   // More helper methods modeled after GraphKit for array copy
   118   // More helper methods modeled after GraphKit for array copy
   103   void insert_mem_bar(Node** ctrl, Node** mem, int opcode, Node* precedent = NULL);
   119   void insert_mem_bar(Node** ctrl, Node** mem, int opcode, Node* precedent = NULL);
   104   Node* array_element_address(Node* ary, Node* idx, BasicType elembt);
   120   Node* array_element_address(Node* ary, Node* idx, BasicType elembt);
   105   Node* ConvI2L(Node* offset);
   121   Node* ConvI2L(Node* offset);
   106   Node* make_leaf_call(Node* ctrl, Node* mem,
       
   107                        const TypeFunc* call_type, address call_addr,
       
   108                        const char* call_name,
       
   109                        const TypePtr* adr_type,
       
   110                        Node* parm0 = NULL, Node* parm1 = NULL,
       
   111                        Node* parm2 = NULL, Node* parm3 = NULL,
       
   112                        Node* parm4 = NULL, Node* parm5 = NULL,
       
   113                        Node* parm6 = NULL, Node* parm7 = NULL);
       
   114 
   122 
   115   // helper methods modeled after LibraryCallKit for array copy
   123   // helper methods modeled after LibraryCallKit for array copy
   116   Node* generate_guard(Node** ctrl, Node* test, RegionNode* region, float true_prob);
   124   Node* generate_guard(Node** ctrl, Node* test, RegionNode* region, float true_prob);
   117   Node* generate_slow_guard(Node** ctrl, Node* test, RegionNode* region);
   125   Node* generate_slow_guard(Node** ctrl, Node* test, RegionNode* region);
   118   void generate_negative_guard(Node** ctrl, Node* index, RegionNode* region);
   126   void generate_negative_guard(Node** ctrl, Node* index, RegionNode* region);
   119   void generate_limit_guard(Node** ctrl, Node* offset, Node* subseq_length, Node* array_length, RegionNode* region);
   127   void generate_limit_guard(Node** ctrl, Node* offset, Node* subseq_length, Node* array_length, RegionNode* region);
   120 
   128 
   121   // More helper methods for array copy
   129   // More helper methods for array copy
   122   Node* generate_nonpositive_guard(Node** ctrl, Node* index, bool never_negative);
   130   Node* generate_nonpositive_guard(Node** ctrl, Node* index, bool never_negative);
   123   void finish_arraycopy_call(Node* call, Node** ctrl, MergeMemNode** mem, const TypePtr* adr_type);
   131   void finish_arraycopy_call(Node* call, Node** ctrl, MergeMemNode** mem, const TypePtr* adr_type);
   124   address basictype2arraycopy(BasicType t,
       
   125                               Node* src_offset,
       
   126                               Node* dest_offset,
       
   127                               bool disjoint_bases,
       
   128                               const char* &name,
       
   129                               bool dest_uninitialized);
       
   130   Node* generate_arraycopy(ArrayCopyNode *ac,
   132   Node* generate_arraycopy(ArrayCopyNode *ac,
   131                            AllocateArrayNode* alloc,
   133                            AllocateArrayNode* alloc,
   132                            Node** ctrl, MergeMemNode* mem, Node** io,
   134                            Node** ctrl, MergeMemNode* mem, Node** io,
   133                            const TypePtr* adr_type,
   135                            const TypePtr* adr_type,
   134                            BasicType basic_elem_type,
   136                            BasicType basic_elem_type,