95
96 address CompilerToVM::Data::SharedRuntime_ic_miss_stub;
97 address CompilerToVM::Data::SharedRuntime_handle_wrong_method_stub;
98 address CompilerToVM::Data::SharedRuntime_deopt_blob_unpack;
99 address CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap;
100
101 size_t CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve;
102
103 CollectedHeap* CompilerToVM::Data::Universe_collectedHeap;
104 int CompilerToVM::Data::Universe_base_vtable_size;
105 address CompilerToVM::Data::Universe_narrow_oop_base;
106 int CompilerToVM::Data::Universe_narrow_oop_shift;
107 address CompilerToVM::Data::Universe_narrow_klass_base;
108 int CompilerToVM::Data::Universe_narrow_klass_shift;
109 void* CompilerToVM::Data::Universe_non_oop_bits;
110 uintptr_t CompilerToVM::Data::Universe_verify_oop_mask;
111 uintptr_t CompilerToVM::Data::Universe_verify_oop_bits;
112
113 bool CompilerToVM::Data::_supports_inline_contig_alloc;
114 HeapWord** CompilerToVM::Data::_heap_end_addr;
115 HeapWord** CompilerToVM::Data::_heap_top_addr;
116 int CompilerToVM::Data::_max_oop_map_stack_offset;
117
118 jbyte* CompilerToVM::Data::cardtable_start_address;
119 int CompilerToVM::Data::cardtable_shift;
120
121 int CompilerToVM::Data::vm_page_size;
122
123 address CompilerToVM::Data::dsin;
124 address CompilerToVM::Data::dcos;
125 address CompilerToVM::Data::dtan;
126 address CompilerToVM::Data::dexp;
127 address CompilerToVM::Data::dlog;
128 address CompilerToVM::Data::dlog10;
129 address CompilerToVM::Data::dpow;
130
131 void CompilerToVM::Data::initialize() {
132 Klass_vtable_start_offset = in_bytes(Klass::vtable_start_offset());
133 Klass_vtable_length_offset = in_bytes(Klass::vtable_length_offset());
134
135 Method_extra_stack_entries = Method::extra_stack_entries();
136
137 SharedRuntime_ic_miss_stub = SharedRuntime::get_ic_miss_stub();
138 SharedRuntime_handle_wrong_method_stub = SharedRuntime::get_handle_wrong_method_stub();
139 SharedRuntime_deopt_blob_unpack = SharedRuntime::deopt_blob()->unpack();
140 SharedRuntime_deopt_blob_uncommon_trap = SharedRuntime::deopt_blob()->uncommon_trap();
141
142 ThreadLocalAllocBuffer_alignment_reserve = ThreadLocalAllocBuffer::alignment_reserve();
143
144 Universe_collectedHeap = Universe::heap();
145 Universe_base_vtable_size = Universe::base_vtable_size();
146 Universe_narrow_oop_base = Universe::narrow_oop_base();
147 Universe_narrow_oop_shift = Universe::narrow_oop_shift();
148 Universe_narrow_klass_base = Universe::narrow_klass_base();
149 Universe_narrow_klass_shift = Universe::narrow_klass_shift();
150 Universe_non_oop_bits = Universe::non_oop_word();
151 Universe_verify_oop_mask = Universe::verify_oop_mask();
152 Universe_verify_oop_bits = Universe::verify_oop_bits();
153
154 _supports_inline_contig_alloc = Universe::heap()->supports_inline_contig_alloc();
155 _heap_end_addr = _supports_inline_contig_alloc ? Universe::heap()->end_addr() : (HeapWord**) -1;
156 _heap_top_addr = _supports_inline_contig_alloc ? Universe::heap()->top_addr() : (HeapWord**) -1;
157
158 _max_oop_map_stack_offset = (OopMapValue::register_mask - VMRegImpl::stack2reg(0)->value()) * VMRegImpl::stack_slot_size;
159 int max_oop_map_stack_index = _max_oop_map_stack_offset / VMRegImpl::stack_slot_size;
160 assert(OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index)), "should be valid");
161 assert(!OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index + 1)), "should be invalid");
162
163 BarrierSet* bs = Universe::heap()->barrier_set();
164 switch (bs->kind()) {
165 case BarrierSet::CardTableModRef:
166 case BarrierSet::CardTableForRS:
167 case BarrierSet::CardTableExtension:
168 case BarrierSet::G1SATBCT:
169 case BarrierSet::G1SATBCTLogging: {
170 jbyte* base = barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base;
171 assert(base != 0, "unexpected byte_map_base");
172 cardtable_start_address = base;
173 cardtable_shift = CardTableModRefBS::card_shift;
174 break;
175 }
176 case BarrierSet::ModRef:
1587 {CC "getLocalVariableTableLength", CC "(" HS_RESOLVED_METHOD ")I", FN_PTR(getLocalVariableTableLength)},
1588 {CC "reprofile", CC "(" HS_RESOLVED_METHOD ")V", FN_PTR(reprofile)},
1589 {CC "invalidateInstalledCode", CC "(" INSTALLED_CODE ")V", FN_PTR(invalidateInstalledCode)},
1590 {CC "collectCounters", CC "()[J", FN_PTR(collectCounters)},
1591 {CC "allocateCompileId", CC "(" HS_RESOLVED_METHOD "I)I", FN_PTR(allocateCompileId)},
1592 {CC "isMature", CC "(" METASPACE_METHOD_DATA ")Z", FN_PTR(isMature)},
1593 {CC "hasCompiledCodeForOSR", CC "(" HS_RESOLVED_METHOD "II)Z", FN_PTR(hasCompiledCodeForOSR)},
1594 {CC "getSymbol", CC "(J)" STRING, FN_PTR(getSymbol)},
1595 {CC "getNextStackFrame", CC "(" HS_STACK_FRAME_REF "[" RESOLVED_METHOD "I)" HS_STACK_FRAME_REF, FN_PTR(getNextStackFrame)},
1596 {CC "materializeVirtualObjects", CC "(" HS_STACK_FRAME_REF "Z)V", FN_PTR(materializeVirtualObjects)},
1597 {CC "shouldDebugNonSafepoints", CC "()Z", FN_PTR(shouldDebugNonSafepoints)},
1598 {CC "writeDebugOutput", CC "([BII)V", FN_PTR(writeDebugOutput)},
1599 {CC "flushDebugOutput", CC "()V", FN_PTR(flushDebugOutput)},
1600 {CC "methodDataProfileDataSize", CC "(JI)I", FN_PTR(methodDataProfileDataSize)},
1601 {CC "interpreterFrameSize", CC "(" BYTECODE_FRAME ")I", FN_PTR(interpreterFrameSize)},
1602 };
1603
1604 int CompilerToVM::methods_count() {
1605 return sizeof(methods) / sizeof(JNINativeMethod);
1606 }
1607
|
95
96 address CompilerToVM::Data::SharedRuntime_ic_miss_stub;
97 address CompilerToVM::Data::SharedRuntime_handle_wrong_method_stub;
98 address CompilerToVM::Data::SharedRuntime_deopt_blob_unpack;
99 address CompilerToVM::Data::SharedRuntime_deopt_blob_uncommon_trap;
100
101 size_t CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve;
102
103 CollectedHeap* CompilerToVM::Data::Universe_collectedHeap;
104 int CompilerToVM::Data::Universe_base_vtable_size;
105 address CompilerToVM::Data::Universe_narrow_oop_base;
106 int CompilerToVM::Data::Universe_narrow_oop_shift;
107 address CompilerToVM::Data::Universe_narrow_klass_base;
108 int CompilerToVM::Data::Universe_narrow_klass_shift;
109 void* CompilerToVM::Data::Universe_non_oop_bits;
110 uintptr_t CompilerToVM::Data::Universe_verify_oop_mask;
111 uintptr_t CompilerToVM::Data::Universe_verify_oop_bits;
112
113 bool CompilerToVM::Data::_supports_inline_contig_alloc;
114 HeapWord** CompilerToVM::Data::_heap_end_addr;
115 HeapWord* volatile* CompilerToVM::Data::_heap_top_addr;
116 int CompilerToVM::Data::_max_oop_map_stack_offset;
117
118 jbyte* CompilerToVM::Data::cardtable_start_address;
119 int CompilerToVM::Data::cardtable_shift;
120
121 int CompilerToVM::Data::vm_page_size;
122
123 address CompilerToVM::Data::dsin;
124 address CompilerToVM::Data::dcos;
125 address CompilerToVM::Data::dtan;
126 address CompilerToVM::Data::dexp;
127 address CompilerToVM::Data::dlog;
128 address CompilerToVM::Data::dlog10;
129 address CompilerToVM::Data::dpow;
130
131 void CompilerToVM::Data::initialize() {
132 Klass_vtable_start_offset = in_bytes(Klass::vtable_start_offset());
133 Klass_vtable_length_offset = in_bytes(Klass::vtable_length_offset());
134
135 Method_extra_stack_entries = Method::extra_stack_entries();
136
137 SharedRuntime_ic_miss_stub = SharedRuntime::get_ic_miss_stub();
138 SharedRuntime_handle_wrong_method_stub = SharedRuntime::get_handle_wrong_method_stub();
139 SharedRuntime_deopt_blob_unpack = SharedRuntime::deopt_blob()->unpack();
140 SharedRuntime_deopt_blob_uncommon_trap = SharedRuntime::deopt_blob()->uncommon_trap();
141
142 ThreadLocalAllocBuffer_alignment_reserve = ThreadLocalAllocBuffer::alignment_reserve();
143
144 Universe_collectedHeap = Universe::heap();
145 Universe_base_vtable_size = Universe::base_vtable_size();
146 Universe_narrow_oop_base = Universe::narrow_oop_base();
147 Universe_narrow_oop_shift = Universe::narrow_oop_shift();
148 Universe_narrow_klass_base = Universe::narrow_klass_base();
149 Universe_narrow_klass_shift = Universe::narrow_klass_shift();
150 Universe_non_oop_bits = Universe::non_oop_word();
151 Universe_verify_oop_mask = Universe::verify_oop_mask();
152 Universe_verify_oop_bits = Universe::verify_oop_bits();
153
154 _supports_inline_contig_alloc = Universe::heap()->supports_inline_contig_alloc();
155 _heap_end_addr = _supports_inline_contig_alloc ? Universe::heap()->end_addr() : (HeapWord**) -1;
156 _heap_top_addr = _supports_inline_contig_alloc ? Universe::heap()->top_addr() : (HeapWord* volatile*) -1;
157
158 _max_oop_map_stack_offset = (OopMapValue::register_mask - VMRegImpl::stack2reg(0)->value()) * VMRegImpl::stack_slot_size;
159 int max_oop_map_stack_index = _max_oop_map_stack_offset / VMRegImpl::stack_slot_size;
160 assert(OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index)), "should be valid");
161 assert(!OopMapValue::legal_vm_reg_name(VMRegImpl::stack2reg(max_oop_map_stack_index + 1)), "should be invalid");
162
163 BarrierSet* bs = Universe::heap()->barrier_set();
164 switch (bs->kind()) {
165 case BarrierSet::CardTableModRef:
166 case BarrierSet::CardTableForRS:
167 case BarrierSet::CardTableExtension:
168 case BarrierSet::G1SATBCT:
169 case BarrierSet::G1SATBCTLogging: {
170 jbyte* base = barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base;
171 assert(base != 0, "unexpected byte_map_base");
172 cardtable_start_address = base;
173 cardtable_shift = CardTableModRefBS::card_shift;
174 break;
175 }
176 case BarrierSet::ModRef:
1587 {CC "getLocalVariableTableLength", CC "(" HS_RESOLVED_METHOD ")I", FN_PTR(getLocalVariableTableLength)},
1588 {CC "reprofile", CC "(" HS_RESOLVED_METHOD ")V", FN_PTR(reprofile)},
1589 {CC "invalidateInstalledCode", CC "(" INSTALLED_CODE ")V", FN_PTR(invalidateInstalledCode)},
1590 {CC "collectCounters", CC "()[J", FN_PTR(collectCounters)},
1591 {CC "allocateCompileId", CC "(" HS_RESOLVED_METHOD "I)I", FN_PTR(allocateCompileId)},
1592 {CC "isMature", CC "(" METASPACE_METHOD_DATA ")Z", FN_PTR(isMature)},
1593 {CC "hasCompiledCodeForOSR", CC "(" HS_RESOLVED_METHOD "II)Z", FN_PTR(hasCompiledCodeForOSR)},
1594 {CC "getSymbol", CC "(J)" STRING, FN_PTR(getSymbol)},
1595 {CC "getNextStackFrame", CC "(" HS_STACK_FRAME_REF "[" RESOLVED_METHOD "I)" HS_STACK_FRAME_REF, FN_PTR(getNextStackFrame)},
1596 {CC "materializeVirtualObjects", CC "(" HS_STACK_FRAME_REF "Z)V", FN_PTR(materializeVirtualObjects)},
1597 {CC "shouldDebugNonSafepoints", CC "()Z", FN_PTR(shouldDebugNonSafepoints)},
1598 {CC "writeDebugOutput", CC "([BII)V", FN_PTR(writeDebugOutput)},
1599 {CC "flushDebugOutput", CC "()V", FN_PTR(flushDebugOutput)},
1600 {CC "methodDataProfileDataSize", CC "(JI)I", FN_PTR(methodDataProfileDataSize)},
1601 {CC "interpreterFrameSize", CC "(" BYTECODE_FRAME ")I", FN_PTR(interpreterFrameSize)},
1602 };
1603
1604 int CompilerToVM::methods_count() {
1605 return sizeof(methods) / sizeof(JNINativeMethod);
1606 }
|