221 frame_size = sasm->frame_size();
222 must_gc_arguments = sasm->must_gc_arguments();
223 // create blob - distinguish a few special cases
224 CodeBlob* blob = RuntimeStub::new_runtime_stub(name,
225 &code,
226 CodeOffsets::frame_never_safe,
227 frame_size,
228 oop_maps,
229 must_gc_arguments);
230 assert(blob != NULL, "blob must exist");
231 return blob;
232 }
233
234 void Runtime1::generate_blob_for(BufferBlob* buffer_blob, StubID id) {
235 assert(0 <= id && id < number_of_ids, "illegal stub id");
236 bool expect_oop_map = true;
237 #ifdef ASSERT
238 // Make sure that stubs that need oopmaps have them
239 switch (id) {
240 // These stubs don't need to have an oopmap
241 case dtrace_object_alloc_id:
242 case slow_subtype_check_id:
243 case fpu2long_stub_id:
244 case unwind_exception_id:
245 case counter_overflow_id:
246 expect_oop_map = false;
247 break;
248 default:
249 break;
250 }
251 #endif
252 StubIDStubAssemblerCodeGenClosure cl(id);
253 CodeBlob* blob = generate_blob(buffer_blob, id, name_for(id), expect_oop_map, &cl);
254 // install blob
255 _blobs[id] = blob;
256 }
257
258 void Runtime1::initialize(BufferBlob* blob) {
259 // platform-dependent initialization
260 initialize_pd();
|
221 frame_size = sasm->frame_size();
222 must_gc_arguments = sasm->must_gc_arguments();
223 // create blob - distinguish a few special cases
224 CodeBlob* blob = RuntimeStub::new_runtime_stub(name,
225 &code,
226 CodeOffsets::frame_never_safe,
227 frame_size,
228 oop_maps,
229 must_gc_arguments);
230 assert(blob != NULL, "blob must exist");
231 return blob;
232 }
233
234 void Runtime1::generate_blob_for(BufferBlob* buffer_blob, StubID id) {
235 assert(0 <= id && id < number_of_ids, "illegal stub id");
236 bool expect_oop_map = true;
237 #ifdef ASSERT
238 // Make sure that stubs that need oopmaps have them
239 switch (id) {
240 // These stubs don't need to have an oopmap
241 case load_klass_id:
242 case dtrace_object_alloc_id:
243 case slow_subtype_check_id:
244 case fpu2long_stub_id:
245 case unwind_exception_id:
246 case counter_overflow_id:
247 expect_oop_map = false;
248 break;
249 default:
250 break;
251 }
252 #endif
253 StubIDStubAssemblerCodeGenClosure cl(id);
254 CodeBlob* blob = generate_blob(buffer_blob, id, name_for(id), expect_oop_map, &cl);
255 // install blob
256 _blobs[id] = blob;
257 }
258
259 void Runtime1::initialize(BufferBlob* blob) {
260 // platform-dependent initialization
261 initialize_pd();
|