510 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_stub_routines_vectorizedMismatch", address, StubRoutines::_vectorizedMismatch);
511
512 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_stub_routines_throw_delayed_StackOverflowError_entry", address, StubRoutines::_throw_delayed_StackOverflowError_entry);
513
514 }
515
516 void AOTCodeHeap::link_os_symbols() {
517 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_os_javaTimeMillis", address, os::javaTimeMillis);
518 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_os_javaTimeNanos", address, os::javaTimeNanos);
519 }
520
521 /*
522 * Link any global symbols in precompiled DSO with dlopen() _dl_handle
523 * dso_handle.
524 */
525
526 void AOTCodeHeap::link_global_lib_symbols() {
527 if (!_lib_symbols_initialized) {
528 _lib_symbols_initialized = true;
529
530 CollectedHeap* heap = Universe::heap();
531 CardTableModRefBS* ct = (CardTableModRefBS*)(heap->barrier_set());
532 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_card_table_address", address, ct->byte_map_base);
533 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_heap_top_address", address, (heap->supports_inline_contig_alloc() ? heap->top_addr() : NULL));
534 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_heap_end_address", address, (heap->supports_inline_contig_alloc() ? heap->end_addr() : NULL));
535 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_polling_page", address, os::get_polling_page());
536 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_narrow_klass_base_address", address, Universe::narrow_klass_base());
537 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_narrow_oop_base_address", address, Universe::narrow_oop_base());
538 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_log_of_heap_region_grain_bytes", int, HeapRegion::LogOfHRGrainBytes);
539 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_inline_contiguous_allocation_supported", bool, heap->supports_inline_contig_alloc());
540 link_shared_runtime_symbols();
541 link_stub_routines_symbols();
542 link_os_symbols();
543 link_graal_runtime_symbols();
544
545 // Link primitive array klasses.
546 link_primitive_array_klasses();
547 }
548 }
549
550 #ifndef PRODUCT
|
510 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_stub_routines_vectorizedMismatch", address, StubRoutines::_vectorizedMismatch);
511
512 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_stub_routines_throw_delayed_StackOverflowError_entry", address, StubRoutines::_throw_delayed_StackOverflowError_entry);
513
514 }
515
516 void AOTCodeHeap::link_os_symbols() {
517 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_os_javaTimeMillis", address, os::javaTimeMillis);
518 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_os_javaTimeNanos", address, os::javaTimeNanos);
519 }
520
521 /*
522 * Link any global symbols in precompiled DSO with dlopen() _dl_handle
523 * dso_handle.
524 */
525
526 void AOTCodeHeap::link_global_lib_symbols() {
527 if (!_lib_symbols_initialized) {
528 _lib_symbols_initialized = true;
529
530 CollectedHeap* heap = GC::gc()->heap();
531 CardTableModRefBS* ct = (CardTableModRefBS*)(heap->barrier_set());
532 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_card_table_address", address, ct->byte_map_base);
533 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_heap_top_address", address, (heap->supports_inline_contig_alloc() ? heap->top_addr() : NULL));
534 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_heap_end_address", address, (heap->supports_inline_contig_alloc() ? heap->end_addr() : NULL));
535 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_polling_page", address, os::get_polling_page());
536 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_narrow_klass_base_address", address, Universe::narrow_klass_base());
537 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_narrow_oop_base_address", address, Universe::narrow_oop_base());
538 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_log_of_heap_region_grain_bytes", int, HeapRegion::LogOfHRGrainBytes);
539 SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_inline_contiguous_allocation_supported", bool, heap->supports_inline_contig_alloc());
540 link_shared_runtime_symbols();
541 link_stub_routines_symbols();
542 link_os_symbols();
543 link_graal_runtime_symbols();
544
545 // Link primitive array klasses.
546 link_primitive_array_klasses();
547 }
548 }
549
550 #ifndef PRODUCT
|