< prev index next >

src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp

Print this page




  44 address CompilerToVM::Data::SharedRuntime_handle_wrong_method_stub;
  45 address CompilerToVM::Data::SharedRuntime_deopt_blob_unpack;
  46 address CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap;
  47 
  48 size_t CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve;
  49 
  50 CollectedHeap* CompilerToVM::Data::Universe_collectedHeap;
  51 int CompilerToVM::Data::Universe_base_vtable_size;
  52 address CompilerToVM::Data::Universe_narrow_oop_base;
  53 int CompilerToVM::Data::Universe_narrow_oop_shift;
  54 address CompilerToVM::Data::Universe_narrow_klass_base;
  55 int CompilerToVM::Data::Universe_narrow_klass_shift;
  56 void* CompilerToVM::Data::Universe_non_oop_bits;
  57 uintptr_t CompilerToVM::Data::Universe_verify_oop_mask;
  58 uintptr_t CompilerToVM::Data::Universe_verify_oop_bits;
  59 
  60 bool       CompilerToVM::Data::_supports_inline_contig_alloc;
  61 HeapWord** CompilerToVM::Data::_heap_end_addr;
  62 HeapWord* volatile* CompilerToVM::Data::_heap_top_addr;
  63 int CompilerToVM::Data::_max_oop_map_stack_offset;

  64 
  65 jbyte* CompilerToVM::Data::cardtable_start_address;
  66 int CompilerToVM::Data::cardtable_shift;
  67 
  68 int CompilerToVM::Data::vm_page_size;
  69 
  70 int CompilerToVM::Data::sizeof_vtableEntry = sizeof(vtableEntry);
  71 int CompilerToVM::Data::sizeof_ExceptionTableElement = sizeof(ExceptionTableElement);
  72 int CompilerToVM::Data::sizeof_LocalVariableTableElement = sizeof(LocalVariableTableElement);
  73 int CompilerToVM::Data::sizeof_ConstantPool = sizeof(ConstantPool);
  74 int CompilerToVM::Data::sizeof_SymbolPointer = sizeof(Symbol*);
  75 int CompilerToVM::Data::sizeof_narrowKlass = sizeof(narrowKlass);
  76 int CompilerToVM::Data::sizeof_arrayOopDesc = sizeof(arrayOopDesc);
  77 int CompilerToVM::Data::sizeof_BasicLock = sizeof(BasicLock);
  78 
  79 address CompilerToVM::Data::dsin;
  80 address CompilerToVM::Data::dcos;
  81 address CompilerToVM::Data::dtan;
  82 address CompilerToVM::Data::dexp;
  83 address CompilerToVM::Data::dlog;
  84 address CompilerToVM::Data::dlog10;
  85 address CompilerToVM::Data::dpow;
  86 
  87 address CompilerToVM::Data::symbol_init;
  88 address CompilerToVM::Data::symbol_clinit;
  89 
  90 void CompilerToVM::Data::initialize(TRAPS) {
  91   Klass_vtable_start_offset = in_bytes(Klass::vtable_start_offset());
  92   Klass_vtable_length_offset = in_bytes(Klass::vtable_length_offset());
  93 
  94   Method_extra_stack_entries = Method::extra_stack_entries();


 105   Universe_narrow_oop_base = Universe::narrow_oop_base();
 106   Universe_narrow_oop_shift = Universe::narrow_oop_shift();
 107   Universe_narrow_klass_base = Universe::narrow_klass_base();
 108   Universe_narrow_klass_shift = Universe::narrow_klass_shift();
 109   Universe_non_oop_bits = Universe::non_oop_word();
 110   Universe_verify_oop_mask = Universe::verify_oop_mask();
 111   Universe_verify_oop_bits = Universe::verify_oop_bits();
 112 
 113   _supports_inline_contig_alloc = Universe::heap()->supports_inline_contig_alloc();
 114   _heap_end_addr = _supports_inline_contig_alloc ? Universe::heap()->end_addr() : (HeapWord**) -1;
 115   _heap_top_addr = _supports_inline_contig_alloc ? Universe::heap()->top_addr() : (HeapWord* volatile*) -1;
 116 
 117   _max_oop_map_stack_offset = (OopMapValue::register_mask - VMRegImpl::stack2reg(0)->value()) * VMRegImpl::stack_slot_size;
 118   int max_oop_map_stack_index = _max_oop_map_stack_offset / VMRegImpl::stack_slot_size;
 119   assert(OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index)), "should be valid");
 120   assert(!OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index + 1)), "should be invalid");
 121 
 122   symbol_init = (address) vmSymbols::object_initializer_name();
 123   symbol_clinit = (address) vmSymbols::class_initializer_name();
 124 


 125   BarrierSet* bs = BarrierSet::barrier_set();
 126   if (bs->is_a(BarrierSet::CardTableBarrierSet)) {
 127     jbyte* base = ci_card_table_address();
 128     assert(base != NULL, "unexpected byte_map_base");
 129     cardtable_start_address = base;
 130     cardtable_shift = CardTable::card_shift;
 131   } else {
 132     // No card mark barriers
 133     cardtable_start_address = 0;
 134     cardtable_shift = 0;
 135   }
 136 
 137   vm_page_size = os::vm_page_size();
 138 
 139 #define SET_TRIGFUNC(name)                                      \
 140   if (StubRoutines::name() != NULL) {                           \
 141     name = StubRoutines::name();                                \
 142   } else {                                                      \
 143     name = CAST_FROM_FN_PTR(address, SharedRuntime::name);      \
 144   }




  44 address CompilerToVM::Data::SharedRuntime_handle_wrong_method_stub;
  45 address CompilerToVM::Data::SharedRuntime_deopt_blob_unpack;
  46 address CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap;
  47 
  48 size_t CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve;
  49 
  50 CollectedHeap* CompilerToVM::Data::Universe_collectedHeap;
  51 int CompilerToVM::Data::Universe_base_vtable_size;
  52 address CompilerToVM::Data::Universe_narrow_oop_base;
  53 int CompilerToVM::Data::Universe_narrow_oop_shift;
  54 address CompilerToVM::Data::Universe_narrow_klass_base;
  55 int CompilerToVM::Data::Universe_narrow_klass_shift;
  56 void* CompilerToVM::Data::Universe_non_oop_bits;
  57 uintptr_t CompilerToVM::Data::Universe_verify_oop_mask;
  58 uintptr_t CompilerToVM::Data::Universe_verify_oop_bits;
  59 
  60 bool       CompilerToVM::Data::_supports_inline_contig_alloc;
  61 HeapWord** CompilerToVM::Data::_heap_end_addr;
  62 HeapWord* volatile* CompilerToVM::Data::_heap_top_addr;
  63 int CompilerToVM::Data::_max_oop_map_stack_offset;
  64 int CompilerToVM::Data::_fields_annotations_base_offset;
  65 
  66 jbyte* CompilerToVM::Data::cardtable_start_address;
  67 int CompilerToVM::Data::cardtable_shift;
  68 
  69 int CompilerToVM::Data::vm_page_size;
  70 
  71 int CompilerToVM::Data::sizeof_vtableEntry = sizeof(vtableEntry);
  72 int CompilerToVM::Data::sizeof_ExceptionTableElement = sizeof(ExceptionTableElement);
  73 int CompilerToVM::Data::sizeof_LocalVariableTableElement = sizeof(LocalVariableTableElement);
  74 int CompilerToVM::Data::sizeof_ConstantPool = sizeof(ConstantPool);

  75 int CompilerToVM::Data::sizeof_narrowKlass = sizeof(narrowKlass);
  76 int CompilerToVM::Data::sizeof_arrayOopDesc = sizeof(arrayOopDesc);
  77 int CompilerToVM::Data::sizeof_BasicLock = sizeof(BasicLock);
  78 
  79 address CompilerToVM::Data::dsin;
  80 address CompilerToVM::Data::dcos;
  81 address CompilerToVM::Data::dtan;
  82 address CompilerToVM::Data::dexp;
  83 address CompilerToVM::Data::dlog;
  84 address CompilerToVM::Data::dlog10;
  85 address CompilerToVM::Data::dpow;
  86 
  87 address CompilerToVM::Data::symbol_init;
  88 address CompilerToVM::Data::symbol_clinit;
  89 
  90 void CompilerToVM::Data::initialize(TRAPS) {
  91   Klass_vtable_start_offset = in_bytes(Klass::vtable_start_offset());
  92   Klass_vtable_length_offset = in_bytes(Klass::vtable_length_offset());
  93 
  94   Method_extra_stack_entries = Method::extra_stack_entries();


 105   Universe_narrow_oop_base = Universe::narrow_oop_base();
 106   Universe_narrow_oop_shift = Universe::narrow_oop_shift();
 107   Universe_narrow_klass_base = Universe::narrow_klass_base();
 108   Universe_narrow_klass_shift = Universe::narrow_klass_shift();
 109   Universe_non_oop_bits = Universe::non_oop_word();
 110   Universe_verify_oop_mask = Universe::verify_oop_mask();
 111   Universe_verify_oop_bits = Universe::verify_oop_bits();
 112 
 113   _supports_inline_contig_alloc = Universe::heap()->supports_inline_contig_alloc();
 114   _heap_end_addr = _supports_inline_contig_alloc ? Universe::heap()->end_addr() : (HeapWord**) -1;
 115   _heap_top_addr = _supports_inline_contig_alloc ? Universe::heap()->top_addr() : (HeapWord* volatile*) -1;
 116 
 117   _max_oop_map_stack_offset = (OopMapValue::register_mask - VMRegImpl::stack2reg(0)->value()) * VMRegImpl::stack_slot_size;
 118   int max_oop_map_stack_index = _max_oop_map_stack_offset / VMRegImpl::stack_slot_size;
 119   assert(OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index)), "should be valid");
 120   assert(!OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index + 1)), "should be invalid");
 121 
 122   symbol_init = (address) vmSymbols::object_initializer_name();
 123   symbol_clinit = (address) vmSymbols::class_initializer_name();
 124 
 125   _fields_annotations_base_offset = Array<AnnotationArray*>::base_offset_in_bytes();
 126 
 127   BarrierSet* bs = BarrierSet::barrier_set();
 128   if (bs->is_a(BarrierSet::CardTableBarrierSet)) {
 129     jbyte* base = ci_card_table_address();
 130     assert(base != NULL, "unexpected byte_map_base");
 131     cardtable_start_address = base;
 132     cardtable_shift = CardTable::card_shift;
 133   } else {
 134     // No card mark barriers
 135     cardtable_start_address = 0;
 136     cardtable_shift = 0;
 137   }
 138 
 139   vm_page_size = os::vm_page_size();
 140 
 141 #define SET_TRIGFUNC(name)                                      \
 142   if (StubRoutines::name() != NULL) {                           \
 143     name = StubRoutines::name();                                \
 144   } else {                                                      \
 145     name = CAST_FROM_FN_PTR(address, SharedRuntime::name);      \
 146   }


< prev index next >