< prev index next >

src/hotspot/share/c1/c1_Runtime1.cpp

Print this page

 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();
< prev index next >