< prev index next > src/hotspot/share/code/nmethod.hpp
Print this page
#ifndef SHARE_CODE_NMETHOD_HPP
#define SHARE_CODE_NMETHOD_HPP
#include "code/compiledMethod.hpp"
+ #include "compiler/compilerDefinitions.hpp"
class CompileTask;
class DepChange;
class DirectiveSet;
class DebugInformationRecorder;
oops_do_mark_link* volatile _oops_do_mark_link;
// offsets for entry points
address _entry_point; // entry point with class check
address _verified_entry_point; // entry point without class check
+ address _inline_entry_point; // inline type entry point (unpack all inline type args) with class check
+ address _verified_inline_entry_point; // inline type entry point (unpack all inline type args) without class check
+ address _verified_inline_ro_entry_point; // inline type entry point (unpack receiver only) without class check
address _osr_entry_point; // entry point for on stack replacement
nmethod* _unlinked_next;
// Shared fields for all nmethod's
bool metadata_contains (Metadata** addr) const { return metadata_begin () <= addr && addr < metadata_end (); }
bool scopes_data_contains (address addr) const { return scopes_data_begin () <= addr && addr < scopes_data_end (); }
bool scopes_pcs_contains (PcDesc* addr) const { return scopes_pcs_begin () <= addr && addr < scopes_pcs_end (); }
// entry points
! address entry_point() const { return _entry_point; } // normal entry point
! address verified_entry_point() const { return _verified_entry_point; } // if klass is correct
// flag accessing and manipulation
bool is_not_installed() const { return _state == not_installed; }
bool is_in_use() const { return _state <= in_use; }
bool is_not_entrant() const { return _state == not_entrant; }
bool metadata_contains (Metadata** addr) const { return metadata_begin () <= addr && addr < metadata_end (); }
bool scopes_data_contains (address addr) const { return scopes_data_begin () <= addr && addr < scopes_data_end (); }
bool scopes_pcs_contains (PcDesc* addr) const { return scopes_pcs_begin () <= addr && addr < scopes_pcs_end (); }
// entry points
! address entry_point() const { return _entry_point; } // normal entry point
! address verified_entry_point() const { return _verified_entry_point; } // normal entry point without class check
+ address inline_entry_point() const { return _inline_entry_point; } // inline type entry point (unpack all inline type args)
+ address verified_inline_entry_point() const { return _verified_inline_entry_point; } // inline type entry point (unpack all inline type args) without class check
+ address verified_inline_ro_entry_point() const { return _verified_inline_ro_entry_point; } // inline type entry point (only unpack receiver) without class check
// flag accessing and manipulation
bool is_not_installed() const { return _state == not_installed; }
bool is_in_use() const { return _state <= in_use; }
bool is_not_entrant() const { return _state == not_entrant; }
< prev index next >