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
|