< prev index next >

src/share/vm/code/codeBlob.hpp

Print this page
rev 13455 : 8166317: InterpreterCodeSize should be computed
Reviewed-by: kvn


  55 //     RuntimeStub        : Call to VM runtime methods
  56 //     DeoptimizationBlob : Used for deoptimization
  57 //     ExceptionBlob      : Used for stack unrolling
  58 //     SafepointBlob      : Used to handle illegal instruction exceptions
  59 //
  60 //
  61 // Layout:
  62 //   - header
  63 //   - relocation
  64 //   - content space
  65 //     - instruction space
  66 //   - data space
  67 
  68 
  69 class CodeBlobLayout;
  70 
  71 class CodeBlob VALUE_OBJ_CLASS_SPEC {
  72   friend class VMStructs;
  73   friend class JVMCIVMStructs;
  74   friend class CodeCacheDumper;

  75 
  76 protected:
  77 
  78   const CompilerType _type;                      // CompilerType
  79   int        _size;                              // total size of CodeBlob in bytes
  80   int        _header_size;                       // size of header (depends on subclass)
  81   int        _frame_complete_offset;             // instruction offsets in [0.._frame_complete_offset) have
  82                                                  // not finished setting up their frame. Beware of pc's in
  83                                                  // that range. There is a similar range(s) on returns
  84                                                  // which we don't detect.
  85   int        _data_offset;                       // offset to where data region begins
  86   int        _frame_size;                        // size of stack frame
  87 
  88   address    _code_begin;
  89   address    _code_end;
  90   address    _content_begin;                     // address to where content region begins (this includes consts, insts, stubs)
  91                                                  // address    _content_end - not required, for all CodeBlobs _code_end == _content_end for now
  92   address    _data_end;
  93   address    _relocation_begin;
  94   address    _relocation_end;




  55 //     RuntimeStub        : Call to VM runtime methods
  56 //     DeoptimizationBlob : Used for deoptimization
  57 //     ExceptionBlob      : Used for stack unrolling
  58 //     SafepointBlob      : Used to handle illegal instruction exceptions
  59 //
  60 //
  61 // Layout:
  62 //   - header
  63 //   - relocation
  64 //   - content space
  65 //     - instruction space
  66 //   - data space
  67 
  68 
  69 class CodeBlobLayout;
  70 
  71 class CodeBlob VALUE_OBJ_CLASS_SPEC {
  72   friend class VMStructs;
  73   friend class JVMCIVMStructs;
  74   friend class CodeCacheDumper;
  75   friend class CodeCache;
  76 
  77 protected:
  78 
  79   const CompilerType _type;                      // CompilerType
  80   int        _size;                              // total size of CodeBlob in bytes
  81   int        _header_size;                       // size of header (depends on subclass)
  82   int        _frame_complete_offset;             // instruction offsets in [0.._frame_complete_offset) have
  83                                                  // not finished setting up their frame. Beware of pc's in
  84                                                  // that range. There is a similar range(s) on returns
  85                                                  // which we don't detect.
  86   int        _data_offset;                       // offset to where data region begins
  87   int        _frame_size;                        // size of stack frame
  88 
  89   address    _code_begin;
  90   address    _code_end;
  91   address    _content_begin;                     // address to where content region begins (this includes consts, insts, stubs)
  92                                                  // address    _content_end - not required, for all CodeBlobs _code_end == _content_end for now
  93   address    _data_end;
  94   address    _relocation_begin;
  95   address    _relocation_end;


< prev index next >