< prev index next >

src/hotspot/share/code/nmethod.hpp

Print this page
*** 24,10 ***
--- 24,11 ---
  
  #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;

*** 192,10 ***
--- 193,13 ---
    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

*** 425,12 ***
    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; }
--- 429,15 ---
    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 >