< prev index next >

src/hotspot/share/code/codeBlob.hpp

Print this page




  65 //    ExceptionBlob      : Used for stack unrolling
  66 //    SafepointBlob      : Used to handle illegal instruction exceptions
  67 //    UncommonTrapBlob   : Used to handle uncommon traps
  68 //
  69 //
  70 // Layout (all except AOTCompiledMethod) : continuous in the CodeCache
  71 //   - header
  72 //   - relocation
  73 //   - content space
  74 //     - instruction space
  75 //   - data space
  76 //
  77 // Layout (AOTCompiledMethod) : in the C-Heap
  78 //   - header -\
  79 //     ...     |
  80 //   - code  <-/
  81 
  82 
  83 class CodeBlobLayout;
  84 
  85 class CodeBlob VALUE_OBJ_CLASS_SPEC {
  86   friend class VMStructs;
  87   friend class JVMCIVMStructs;
  88   friend class CodeCacheDumper;
  89 
  90 protected:
  91 
  92   const CompilerType _type;                      // CompilerType
  93   int        _size;                              // total size of CodeBlob in bytes
  94   int        _header_size;                       // size of header (depends on subclass)
  95   int        _frame_complete_offset;             // instruction offsets in [0.._frame_complete_offset) have
  96                                                  // not finished setting up their frame. Beware of pc's in
  97                                                  // that range. There is a similar range(s) on returns
  98                                                  // which we don't detect.
  99   int        _data_offset;                       // offset to where data region begins
 100   int        _frame_size;                        // size of stack frame
 101 
 102   address    _code_begin;
 103   address    _code_end;
 104   address    _content_begin;                     // address to where content region begins (this includes consts, insts, stubs)
 105                                                  // address    _content_end - not required, for all CodeBlobs _code_end == _content_end for now




  65 //    ExceptionBlob      : Used for stack unrolling
  66 //    SafepointBlob      : Used to handle illegal instruction exceptions
  67 //    UncommonTrapBlob   : Used to handle uncommon traps
  68 //
  69 //
  70 // Layout (all except AOTCompiledMethod) : continuous in the CodeCache
  71 //   - header
  72 //   - relocation
  73 //   - content space
  74 //     - instruction space
  75 //   - data space
  76 //
  77 // Layout (AOTCompiledMethod) : in the C-Heap
  78 //   - header -\
  79 //     ...     |
  80 //   - code  <-/
  81 
  82 
  83 class CodeBlobLayout;
  84 
  85 class CodeBlob {
  86   friend class VMStructs;
  87   friend class JVMCIVMStructs;
  88   friend class CodeCacheDumper;
  89 
  90 protected:
  91 
  92   const CompilerType _type;                      // CompilerType
  93   int        _size;                              // total size of CodeBlob in bytes
  94   int        _header_size;                       // size of header (depends on subclass)
  95   int        _frame_complete_offset;             // instruction offsets in [0.._frame_complete_offset) have
  96                                                  // not finished setting up their frame. Beware of pc's in
  97                                                  // that range. There is a similar range(s) on returns
  98                                                  // which we don't detect.
  99   int        _data_offset;                       // offset to where data region begins
 100   int        _frame_size;                        // size of stack frame
 101 
 102   address    _code_begin;
 103   address    _code_end;
 104   address    _content_begin;                     // address to where content region begins (this includes consts, insts, stubs)
 105                                                  // address    _content_end - not required, for all CodeBlobs _code_end == _content_end for now


< prev index next >