< prev index next >

src/share/vm/aot/aotCodeHeap.cpp

Print this page
rev 13198 : 8183573: Refactor CodeHeap and AOTCodeHeap to devirtualize hot methods
Reviewed-by: rbackman


 241   _oop_got      = (oop*) _lib->load_symbol("JVM.oop.got");
 242   _oop_got_size = _lib->header()->_oop_got_size;
 243 
 244   // Collect stubs info
 245   _stubs_offsets = (int*) _lib->load_symbol("JVM.stubs.offsets");
 246 
 247   // code segments table
 248   _code_segments = (address) _lib->load_symbol("JVM.code.segments");
 249 
 250   // method state
 251   _method_state = (jlong*) _lib->load_symbol("JVM.meth.state");
 252 
 253   // Create a table for mapping classes
 254   _classes = NEW_C_HEAP_ARRAY(AOTClass, _class_count, mtCode);
 255   memset(_classes, 0, _class_count * sizeof(AOTClass));
 256 
 257   // Create table for searching AOTCompiledMethod based on pc.
 258   _code_to_aot = NEW_C_HEAP_ARRAY(CodeToAMethod, _method_count, mtCode);
 259   memset(_code_to_aot, 0, _method_count * sizeof(CodeToAMethod));
 260 
 261   _low_boundary = _code_space;
 262   _memory.set_low_boundary((char *)_code_space);
 263   _memory.set_high_boundary((char *)_code_space);
 264   _memory.set_low((char *)_code_space);
 265   _memory.set_high((char *)_code_space);
 266 
 267   _segmap.set_low_boundary((char *)_code_segments);
 268   _segmap.set_low((char *)_code_segments);
 269 
 270   _log2_segment_size = exact_log2(_lib->config()->_codeSegmentSize);
 271 
 272   // Register aot stubs
 273   register_stubs();
 274 
 275   if (PrintAOT || (PrintCompilation && PrintAOT)) {
 276     tty->print("%7d ", (int) tty->time_stamp().milliseconds());
 277     tty->print_cr("%4d     loaded    %s  aot library", _lib->id(), _lib->name());
 278   }
 279 }
 280 
 281 void AOTCodeHeap::publish_aot(const methodHandle& mh, AOTMethodData* method_data, int code_id) {




 241   _oop_got      = (oop*) _lib->load_symbol("JVM.oop.got");
 242   _oop_got_size = _lib->header()->_oop_got_size;
 243 
 244   // Collect stubs info
 245   _stubs_offsets = (int*) _lib->load_symbol("JVM.stubs.offsets");
 246 
 247   // code segments table
 248   _code_segments = (address) _lib->load_symbol("JVM.code.segments");
 249 
 250   // method state
 251   _method_state = (jlong*) _lib->load_symbol("JVM.meth.state");
 252 
 253   // Create a table for mapping classes
 254   _classes = NEW_C_HEAP_ARRAY(AOTClass, _class_count, mtCode);
 255   memset(_classes, 0, _class_count * sizeof(AOTClass));
 256 
 257   // Create table for searching AOTCompiledMethod based on pc.
 258   _code_to_aot = NEW_C_HEAP_ARRAY(CodeToAMethod, _method_count, mtCode);
 259   memset(_code_to_aot, 0, _method_count * sizeof(CodeToAMethod));
 260 

 261   _memory.set_low_boundary((char *)_code_space);
 262   _memory.set_high_boundary((char *)_code_space);
 263   _memory.set_low((char *)_code_space);
 264   _memory.set_high((char *)_code_space);
 265 
 266   _segmap.set_low_boundary((char *)_code_segments);
 267   _segmap.set_low((char *)_code_segments);
 268 
 269   _log2_segment_size = exact_log2(_lib->config()->_codeSegmentSize);
 270 
 271   // Register aot stubs
 272   register_stubs();
 273 
 274   if (PrintAOT || (PrintCompilation && PrintAOT)) {
 275     tty->print("%7d ", (int) tty->time_stamp().milliseconds());
 276     tty->print_cr("%4d     loaded    %s  aot library", _lib->id(), _lib->name());
 277   }
 278 }
 279 
 280 void AOTCodeHeap::publish_aot(const methodHandle& mh, AOTMethodData* method_data, int code_id) {


< prev index next >