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;
|