200 201 bool has_wide_vectors() const { return _has_wide_vectors; } 202 void set_has_wide_vectors(bool z) { _has_wide_vectors = z; } 203 204 enum { not_installed = -1, // in construction, only the owner doing the construction is 205 // allowed to advance state 206 in_use = 0, // executable nmethod 207 not_used = 1, // not entrant, but revivable 208 not_entrant = 2, // marked for deoptimization but activations may still exist, 209 // will be transformed to zombie when all activations are gone 210 zombie = 3, // no activations exist, nmethod is ready for purge 211 unloaded = 4 // there should be no activations, should not be called, 212 // will be transformed to zombie immediately 213 }; 214 215 virtual bool is_in_use() const = 0; 216 virtual int comp_level() const = 0; 217 virtual int compile_id() const = 0; 218 219 virtual address verified_entry_point() const = 0; 220 virtual void log_identity(xmlStream* log) const = 0; 221 virtual void log_state_change() const = 0; 222 virtual bool make_not_used() = 0; 223 virtual bool make_not_entrant() = 0; 224 virtual bool make_entrant() = 0; 225 virtual address entry_point() const = 0; 226 virtual bool make_zombie() = 0; 227 virtual bool is_osr_method() const = 0; 228 virtual int osr_entry_bci() const = 0; 229 Method* method() const { return _method; } 230 virtual void print_pcs() = 0; 231 bool is_native_method() const { return _method != NULL && _method->is_native(); } 232 bool is_java_method() const { return _method != NULL && !_method->is_native(); } 233 234 // ScopeDesc retrieval operation 235 PcDesc* pc_desc_at(address pc) { return find_pc_desc(pc, false); } 236 // pc_desc_near returns the first PcDesc at or after the given pc. 237 PcDesc* pc_desc_near(address pc) { return find_pc_desc(pc, true); } 238 239 // ScopeDesc for an instruction | 200 201 bool has_wide_vectors() const { return _has_wide_vectors; } 202 void set_has_wide_vectors(bool z) { _has_wide_vectors = z; } 203 204 enum { not_installed = -1, // in construction, only the owner doing the construction is 205 // allowed to advance state 206 in_use = 0, // executable nmethod 207 not_used = 1, // not entrant, but revivable 208 not_entrant = 2, // marked for deoptimization but activations may still exist, 209 // will be transformed to zombie when all activations are gone 210 zombie = 3, // no activations exist, nmethod is ready for purge 211 unloaded = 4 // there should be no activations, should not be called, 212 // will be transformed to zombie immediately 213 }; 214 215 virtual bool is_in_use() const = 0; 216 virtual int comp_level() const = 0; 217 virtual int compile_id() const = 0; 218 219 virtual address verified_entry_point() const = 0; 220 virtual address verified_value_entry_point() const = 0; 221 virtual address verified_value_ro_entry_point() const = 0; 222 virtual void log_identity(xmlStream* log) const = 0; 223 virtual void log_state_change() const = 0; 224 virtual bool make_not_used() = 0; 225 virtual bool make_not_entrant() = 0; 226 virtual bool make_entrant() = 0; 227 virtual address entry_point() const = 0; 228 virtual bool make_zombie() = 0; 229 virtual bool is_osr_method() const = 0; 230 virtual int osr_entry_bci() const = 0; 231 Method* method() const { return _method; } 232 virtual void print_pcs() = 0; 233 bool is_native_method() const { return _method != NULL && _method->is_native(); } 234 bool is_java_method() const { return _method != NULL && !_method->is_native(); } 235 236 // ScopeDesc retrieval operation 237 PcDesc* pc_desc_at(address pc) { return find_pc_desc(pc, false); } 238 // pc_desc_near returns the first PcDesc at or after the given pc. 239 PcDesc* pc_desc_near(address pc) { return find_pc_desc(pc, true); } 240 241 // ScopeDesc for an instruction |