hotspot/src/share/vm/code/nmethod.hpp
changeset 363 99d43e8a76ad
parent 347 df859fcca515
child 670 ddf3e9583f2f
equal deleted inserted replaced
362:00cf4bffd828 363:99d43e8a76ad
   138 
   138 
   139   // Offsets for different nmethod parts
   139   // Offsets for different nmethod parts
   140   int _exception_offset;
   140   int _exception_offset;
   141   // All deoptee's will resume execution at this location described by this offset
   141   // All deoptee's will resume execution at this location described by this offset
   142   int _deoptimize_offset;
   142   int _deoptimize_offset;
       
   143 #ifdef HAVE_DTRACE_H
       
   144   int _trap_offset;
       
   145 #endif // def HAVE_DTRACE_H
   143   int _stub_offset;
   146   int _stub_offset;
   144   int _consts_offset;
   147   int _consts_offset;
   145   int _scopes_data_offset;
   148   int _scopes_data_offset;
   146   int _scopes_pcs_offset;
   149   int _scopes_pcs_offset;
   147   int _dependencies_offset;
   150   int _dependencies_offset;
   208           CodeBuffer *code_buffer,
   211           CodeBuffer *code_buffer,
   209           int frame_size,
   212           int frame_size,
   210           ByteSize basic_lock_owner_sp_offset, /* synchronized natives only */
   213           ByteSize basic_lock_owner_sp_offset, /* synchronized natives only */
   211           ByteSize basic_lock_sp_offset,       /* synchronized natives only */
   214           ByteSize basic_lock_sp_offset,       /* synchronized natives only */
   212           OopMapSet* oop_maps);
   215           OopMapSet* oop_maps);
       
   216 
       
   217 #ifdef HAVE_DTRACE_H
       
   218   // For native wrappers
       
   219   nmethod(methodOop method,
       
   220           int nmethod_size,
       
   221           CodeOffsets* offsets,
       
   222           CodeBuffer *code_buffer,
       
   223           int frame_size);
       
   224 #endif // def HAVE_DTRACE_H
   213 
   225 
   214   // Creation support
   226   // Creation support
   215   nmethod(methodOop method,
   227   nmethod(methodOop method,
   216           int nmethod_size,
   228           int nmethod_size,
   217           int compile_id,
   229           int compile_id,
   269                                      int frame_complete,
   281                                      int frame_complete,
   270                                      int frame_size,
   282                                      int frame_size,
   271                                      ByteSize receiver_sp_offset,
   283                                      ByteSize receiver_sp_offset,
   272                                      ByteSize basic_lock_sp_offset,
   284                                      ByteSize basic_lock_sp_offset,
   273                                      OopMapSet* oop_maps);
   285                                      OopMapSet* oop_maps);
       
   286 
       
   287 #ifdef HAVE_DTRACE_H
       
   288   // The method we generate for a dtrace probe has to look
       
   289   // like an nmethod as far as the rest of the system is concerned
       
   290   // which is somewhat unfortunate.
       
   291   static nmethod* new_dtrace_nmethod(methodHandle method,
       
   292                                      CodeBuffer *code_buffer,
       
   293                                      int vep_offset,
       
   294                                      int trap_offset,
       
   295                                      int frame_complete,
       
   296                                      int frame_size);
       
   297 
       
   298   int trap_offset() const      { return _trap_offset; }
       
   299   address trap_address() const { return code_begin() + _trap_offset; }
       
   300 
       
   301 #endif // def HAVE_DTRACE_H
   274 
   302 
   275   // accessors
   303   // accessors
   276   methodOop method() const                        { return _method; }
   304   methodOop method() const                        { return _method; }
   277   AbstractCompiler* compiler() const              { return _compiler; }
   305   AbstractCompiler* compiler() const              { return _compiler; }
   278 
   306