hotspot/src/share/vm/code/nmethod.hpp

Print this page




 321 
 322 #endif // def HAVE_DTRACE_H
 323 
 324   // accessors
 325   methodOop method() const                        { return _method; }
 326   AbstractCompiler* compiler() const              { return _compiler; }
 327 
 328 #ifndef PRODUCT
 329   bool has_debug_info() const                     { return _has_debug_info; }
 330   void set_has_debug_info(bool f)                 { _has_debug_info = false; }
 331 #endif // NOT PRODUCT
 332 
 333   // type info
 334   bool is_nmethod() const                         { return true; }
 335   bool is_java_method() const                     { return !method()->is_native(); }
 336   bool is_native_method() const                   { return method()->is_native(); }
 337   bool is_osr_method() const                      { return _entry_bci != InvocationEntryBci; }
 338 
 339   bool is_compiled_by_c1() const;
 340   bool is_compiled_by_c2() const;

 341 
 342   // boundaries for different parts
 343   address code_begin            () const          { return _entry_point; }
 344   address code_end              () const          { return           header_begin() + _stub_offset          ; }
 345   address exception_begin       () const          { return           header_begin() + _exception_offset     ; }
 346   address deopt_handler_begin   () const          { return           header_begin() + _deoptimize_offset    ; }
 347   address deopt_mh_handler_begin() const          { return           header_begin() + _deoptimize_mh_offset ; }
 348   address unwind_handler_begin  () const          { return _unwind_handler_offset != -1 ? (header_begin() + _unwind_handler_offset) : NULL; }
 349   address stub_begin            () const          { return           header_begin() + _stub_offset          ; }
 350   address stub_end              () const          { return           header_begin() + _consts_offset        ; }
 351   address consts_begin          () const          { return           header_begin() + _consts_offset        ; }
 352   address consts_end            () const          { return           header_begin() + _oops_offset          ; }
 353   oop*    oops_begin            () const          { return (oop*)   (header_begin() + _oops_offset)         ; }
 354   oop*    oops_end              () const          { return (oop*)   (header_begin() + _scopes_data_offset)  ; }
 355 
 356   address scopes_data_begin     () const          { return           header_begin() + _scopes_data_offset   ; }
 357   address scopes_data_end       () const          { return           header_begin() + _scopes_pcs_offset    ; }
 358   PcDesc* scopes_pcs_begin      () const          { return (PcDesc*)(header_begin() + _scopes_pcs_offset   ); }
 359   PcDesc* scopes_pcs_end        () const          { return (PcDesc*)(header_begin() + _dependencies_offset) ; }
 360   address dependencies_begin    () const          { return           header_begin() + _dependencies_offset  ; }




 321 
 322 #endif // def HAVE_DTRACE_H
 323 
 324   // accessors
 325   methodOop method() const                        { return _method; }
 326   AbstractCompiler* compiler() const              { return _compiler; }
 327 
 328 #ifndef PRODUCT
 329   bool has_debug_info() const                     { return _has_debug_info; }
 330   void set_has_debug_info(bool f)                 { _has_debug_info = false; }
 331 #endif // NOT PRODUCT
 332 
 333   // type info
 334   bool is_nmethod() const                         { return true; }
 335   bool is_java_method() const                     { return !method()->is_native(); }
 336   bool is_native_method() const                   { return method()->is_native(); }
 337   bool is_osr_method() const                      { return _entry_bci != InvocationEntryBci; }
 338 
 339   bool is_compiled_by_c1() const;
 340   bool is_compiled_by_c2() const;
 341   bool is_compiled_by_shark() const;
 342 
 343   // boundaries for different parts
 344   address code_begin            () const          { return _entry_point; }
 345   address code_end              () const          { return           header_begin() + _stub_offset          ; }
 346   address exception_begin       () const          { return           header_begin() + _exception_offset     ; }
 347   address deopt_handler_begin   () const          { return           header_begin() + _deoptimize_offset    ; }
 348   address deopt_mh_handler_begin() const          { return           header_begin() + _deoptimize_mh_offset ; }
 349   address unwind_handler_begin  () const          { return _unwind_handler_offset != -1 ? (header_begin() + _unwind_handler_offset) : NULL; }
 350   address stub_begin            () const          { return           header_begin() + _stub_offset          ; }
 351   address stub_end              () const          { return           header_begin() + _consts_offset        ; }
 352   address consts_begin          () const          { return           header_begin() + _consts_offset        ; }
 353   address consts_end            () const          { return           header_begin() + _oops_offset          ; }
 354   oop*    oops_begin            () const          { return (oop*)   (header_begin() + _oops_offset)         ; }
 355   oop*    oops_end              () const          { return (oop*)   (header_begin() + _scopes_data_offset)  ; }
 356 
 357   address scopes_data_begin     () const          { return           header_begin() + _scopes_data_offset   ; }
 358   address scopes_data_end       () const          { return           header_begin() + _scopes_pcs_offset    ; }
 359   PcDesc* scopes_pcs_begin      () const          { return (PcDesc*)(header_begin() + _scopes_pcs_offset   ); }
 360   PcDesc* scopes_pcs_end        () const          { return (PcDesc*)(header_begin() + _dependencies_offset) ; }
 361   address dependencies_begin    () const          { return           header_begin() + _dependencies_offset  ; }