< prev index next >

src/share/vm/code/codeBlob.hpp

Print this page




 142   address code_end() const            { return _code_end; }
 143   address data_end() const            { return _data_end;      }
 144 
 145   // This field holds the beginning of the const section in the old code buffer.
 146   // It is needed to fix relocations of pc-relative loads when resizing the
 147   // the constant pool or moving it.
 148   S390_ONLY(address ctable_begin() const { return header_begin() + _ctable_offset; })
 149   void set_ctable_begin(address ctable) { S390_ONLY(_ctable_offset = ctable - header_begin();) }
 150 
 151   // Sizes
 152   int size() const                               { return _size; }
 153   int header_size() const                        { return _header_size; }
 154   int relocation_size() const                    { return (address) relocation_end() - (address) relocation_begin(); }
 155   int content_size() const                       { return           content_end()    -           content_begin();    }
 156   int code_size() const                          { return           code_end()       -           code_begin();       }
 157 
 158   // Containment
 159   bool blob_contains(address addr) const         { return header_begin()       <= addr && addr < data_end();       }
 160   bool code_contains(address addr) const         { return code_begin()         <= addr && addr < code_end();       }
 161   bool contains(address addr) const              { return content_begin()      <= addr && addr < content_end();    }
 162   bool is_frame_complete_at(address addr) const  { return code_contains(addr) && addr >= code_begin() + _frame_complete_offset; }

 163 
 164   // CodeCache support: really only used by the nmethods, but in order to get
 165   // asserts and certain bookkeeping to work in the CodeCache they are defined
 166   // virtual here.
 167   virtual bool is_zombie() const                 { return false; }
 168   virtual bool is_locked_by_vm() const           { return false; }
 169 
 170   virtual bool is_unloaded() const               { return false; }
 171   virtual bool is_not_entrant() const            { return false; }
 172 
 173   // GC support
 174   virtual bool is_alive() const                  = 0;
 175 
 176   // OopMap for frame
 177   ImmutableOopMapSet* oop_maps() const           { return _oop_maps; }
 178   void set_oop_maps(OopMapSet* p);
 179   const ImmutableOopMap* oop_map_for_return_address(address return_address);
 180   virtual void preserve_callee_argument_oops(frame fr, const RegisterMap* reg_map, OopClosure* f) = 0;
 181 
 182   // Frame support




 142   address code_end() const            { return _code_end; }
 143   address data_end() const            { return _data_end;      }
 144 
 145   // This field holds the beginning of the const section in the old code buffer.
 146   // It is needed to fix relocations of pc-relative loads when resizing the
 147   // the constant pool or moving it.
 148   S390_ONLY(address ctable_begin() const { return header_begin() + _ctable_offset; })
 149   void set_ctable_begin(address ctable) { S390_ONLY(_ctable_offset = ctable - header_begin();) }
 150 
 151   // Sizes
 152   int size() const                               { return _size; }
 153   int header_size() const                        { return _header_size; }
 154   int relocation_size() const                    { return (address) relocation_end() - (address) relocation_begin(); }
 155   int content_size() const                       { return           content_end()    -           content_begin();    }
 156   int code_size() const                          { return           code_end()       -           code_begin();       }
 157 
 158   // Containment
 159   bool blob_contains(address addr) const         { return header_begin()       <= addr && addr < data_end();       }
 160   bool code_contains(address addr) const         { return code_begin()         <= addr && addr < code_end();       }
 161   bool contains(address addr) const              { return content_begin()      <= addr && addr < content_end();    }
 162   bool is_frame_complete_at(address addr) const  { return _frame_complete_offset != CodeOffsets::frame_never_safe &&
 163                                                           code_contains(addr) && addr >= code_begin() + _frame_complete_offset; }
 164 
 165   // CodeCache support: really only used by the nmethods, but in order to get
 166   // asserts and certain bookkeeping to work in the CodeCache they are defined
 167   // virtual here.
 168   virtual bool is_zombie() const                 { return false; }
 169   virtual bool is_locked_by_vm() const           { return false; }
 170 
 171   virtual bool is_unloaded() const               { return false; }
 172   virtual bool is_not_entrant() const            { return false; }
 173 
 174   // GC support
 175   virtual bool is_alive() const                  = 0;
 176 
 177   // OopMap for frame
 178   ImmutableOopMapSet* oop_maps() const           { return _oop_maps; }
 179   void set_oop_maps(OopMapSet* p);
 180   const ImmutableOopMap* oop_map_for_return_address(address return_address);
 181   virtual void preserve_callee_argument_oops(frame fr, const RegisterMap* reg_map, OopClosure* f) = 0;
 182 
 183   // Frame support


< prev index next >