82 _frame_size(frame_size), 83 _code_begin(layout.code_begin()), 84 _code_end(layout.code_end()), 85 _content_begin(layout.content_begin()), 86 _data_end(layout.data_end()), 87 _relocation_begin(layout.relocation_begin()), 88 _relocation_end(layout.relocation_end()), 89 _oop_maps(oop_maps), 90 _caller_must_gc_arguments(caller_must_gc_arguments), 91 _strings(CodeStrings()), 92 _name(name) 93 { 94 assert(is_aligned(layout.size(), oopSize), "unaligned size"); 95 assert(is_aligned(layout.header_size(), oopSize), "unaligned size"); 96 assert(is_aligned(layout.relocation_size(), oopSize), "unaligned size"); 97 assert(layout.code_end() == layout.content_end(), "must be the same - see code_end()"); 98 #ifdef COMPILER1 99 // probably wrong for tiered 100 assert(_frame_size >= -1, "must use frame size or -1 for runtime stubs"); 101 #endif // COMPILER1 102 } 103 104 CodeBlob::CodeBlob(const char* name, CompilerType type, const CodeBlobLayout& layout, CodeBuffer* cb, int frame_complete_offset, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments) : 105 _type(type), 106 _size(layout.size()), 107 _header_size(layout.header_size()), 108 _frame_complete_offset(frame_complete_offset), 109 _data_offset(layout.data_offset()), 110 _frame_size(frame_size), 111 _code_begin(layout.code_begin()), 112 _code_end(layout.code_end()), 113 _content_begin(layout.content_begin()), 114 _data_end(layout.data_end()), 115 _relocation_begin(layout.relocation_begin()), 116 _relocation_end(layout.relocation_end()), 117 _caller_must_gc_arguments(caller_must_gc_arguments), 118 _strings(CodeStrings()), 119 _name(name) 120 { 121 assert(is_aligned(_size, oopSize), "unaligned size"); 122 assert(is_aligned(_header_size, oopSize), "unaligned size"); 123 assert(_data_offset <= _size, "codeBlob is too small"); 124 assert(layout.code_end() == layout.content_end(), "must be the same - see code_end()"); 125 126 set_oop_maps(oop_maps); 127 #ifdef COMPILER1 128 // probably wrong for tiered 129 assert(_frame_size >= -1, "must use frame size or -1 for runtime stubs"); 130 #endif // COMPILER1 131 } 132 133 134 // Creates a simple CodeBlob. Sets up the size of the different regions. 135 RuntimeBlob::RuntimeBlob(const char* name, int header_size, int size, int frame_complete, int locs_size) 136 : CodeBlob(name, compiler_none, CodeBlobLayout((address) this, size, header_size, locs_size, size), frame_complete, 0, NULL, false /* caller_must_gc_arguments */) 137 { 138 assert(is_aligned(locs_size, oopSize), "unaligned size"); 139 } 140 141 142 // Creates a RuntimeBlob from a CodeBuffer 143 // and copy code and relocation info. 144 RuntimeBlob::RuntimeBlob( 145 const char* name, 146 CodeBuffer* cb, 147 int header_size, 148 int size, 149 int frame_complete, 150 int frame_size, | 82 _frame_size(frame_size), 83 _code_begin(layout.code_begin()), 84 _code_end(layout.code_end()), 85 _content_begin(layout.content_begin()), 86 _data_end(layout.data_end()), 87 _relocation_begin(layout.relocation_begin()), 88 _relocation_end(layout.relocation_end()), 89 _oop_maps(oop_maps), 90 _caller_must_gc_arguments(caller_must_gc_arguments), 91 _strings(CodeStrings()), 92 _name(name) 93 { 94 assert(is_aligned(layout.size(), oopSize), "unaligned size"); 95 assert(is_aligned(layout.header_size(), oopSize), "unaligned size"); 96 assert(is_aligned(layout.relocation_size(), oopSize), "unaligned size"); 97 assert(layout.code_end() == layout.content_end(), "must be the same - see code_end()"); 98 #ifdef COMPILER1 99 // probably wrong for tiered 100 assert(_frame_size >= -1, "must use frame size or -1 for runtime stubs"); 101 #endif // COMPILER1 102 S390_ONLY(_ctable_offset = 0;) // avoid uninitialized fields 103 } 104 105 CodeBlob::CodeBlob(const char* name, CompilerType type, const CodeBlobLayout& layout, CodeBuffer* cb, int frame_complete_offset, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments) : 106 _type(type), 107 _size(layout.size()), 108 _header_size(layout.header_size()), 109 _frame_complete_offset(frame_complete_offset), 110 _data_offset(layout.data_offset()), 111 _frame_size(frame_size), 112 _code_begin(layout.code_begin()), 113 _code_end(layout.code_end()), 114 _content_begin(layout.content_begin()), 115 _data_end(layout.data_end()), 116 _relocation_begin(layout.relocation_begin()), 117 _relocation_end(layout.relocation_end()), 118 _caller_must_gc_arguments(caller_must_gc_arguments), 119 _strings(CodeStrings()), 120 _name(name) 121 { 122 assert(is_aligned(_size, oopSize), "unaligned size"); 123 assert(is_aligned(_header_size, oopSize), "unaligned size"); 124 assert(_data_offset <= _size, "codeBlob is too small"); 125 assert(layout.code_end() == layout.content_end(), "must be the same - see code_end()"); 126 127 set_oop_maps(oop_maps); 128 #ifdef COMPILER1 129 // probably wrong for tiered 130 assert(_frame_size >= -1, "must use frame size or -1 for runtime stubs"); 131 #endif // COMPILER1 132 S390_ONLY(_ctable_offset = 0;) // avoid uninitialized fields 133 } 134 135 136 // Creates a simple CodeBlob. Sets up the size of the different regions. 137 RuntimeBlob::RuntimeBlob(const char* name, int header_size, int size, int frame_complete, int locs_size) 138 : CodeBlob(name, compiler_none, CodeBlobLayout((address) this, size, header_size, locs_size, size), frame_complete, 0, NULL, false /* caller_must_gc_arguments */) 139 { 140 assert(is_aligned(locs_size, oopSize), "unaligned size"); 141 } 142 143 144 // Creates a RuntimeBlob from a CodeBuffer 145 // and copy code and relocation info. 146 RuntimeBlob::RuntimeBlob( 147 const char* name, 148 CodeBuffer* cb, 149 int header_size, 150 int size, 151 int frame_complete, 152 int frame_size, |