160 void pd_patch_DataSectionReference(int pc_offset, int data_offset);
161 void pd_relocate_ForeignCall(NativeInstruction* inst, jlong foreign_call_destination, TRAPS);
162 void pd_relocate_JavaMethod(Handle method, jint pc_offset, TRAPS);
163 void pd_relocate_poll(address pc, jint mark, TRAPS);
164
165 objArrayOop sites() { return (objArrayOop) JNIHandles::resolve(_sites_handle); }
166 arrayOop code() { return (arrayOop) JNIHandles::resolve(_code_handle); }
167 arrayOop data_section() { return (arrayOop) JNIHandles::resolve(_data_section_handle); }
168 objArrayOop data_section_patches() { return (objArrayOop) JNIHandles::resolve(_data_section_patches_handle); }
169 objArrayOop exception_handlers() { return (objArrayOop) JNIHandles::resolve(_exception_handlers_handle); }
170 #ifndef PRODUCT
171 objArrayOop comments() { return (objArrayOop) JNIHandles::resolve(_comments_handle); }
172 #endif
173
174 oop word_kind() { return (oop) JNIHandles::resolve(_word_kind_handle); }
175
176 public:
177
178 CodeInstaller() : _arena(mtCompiler) {}
179
180 JVMCIEnv::CodeInstallResult gather_metadata(Handle target, Handle& compiled_code, CodeMetadata& metadata, TRAPS);
181 JVMCIEnv::CodeInstallResult install(JVMCICompiler* compiler, Handle target, Handle& compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log, TRAPS);
182
183 static address runtime_call_target_address(oop runtime_call);
184 static VMReg get_hotspot_reg(jint jvmciRegisterNumber, TRAPS);
185 static bool is_general_purpose_reg(VMReg hotspotRegister);
186
187 const OopMapSet* oopMapSet() const { return _debug_recorder->_oopmaps; }
188
189 protected:
190 Location::Type get_oop_type(Handle value);
191 ScopeValue* get_scope_value(Handle value, BasicType type, GrowableArray<ScopeValue*>* objects, ScopeValue* &second, TRAPS);
192 MonitorValue* get_monitor_value(Handle value, GrowableArray<ScopeValue*>* objects, TRAPS);
193
194 Metadata* record_metadata_reference(Handle constant, TRAPS);
195 #ifdef _LP64
196 narrowKlass record_narrow_metadata_reference(Handle constant, TRAPS);
197 #endif
198
199 // extract the fields of the CompilationResult
200 void initialize_fields(oop target, oop target_method, TRAPS);
201 void initialize_dependencies(oop target_method, OopRecorder* oop_recorder, TRAPS);
|
160 void pd_patch_DataSectionReference(int pc_offset, int data_offset);
161 void pd_relocate_ForeignCall(NativeInstruction* inst, jlong foreign_call_destination, TRAPS);
162 void pd_relocate_JavaMethod(Handle method, jint pc_offset, TRAPS);
163 void pd_relocate_poll(address pc, jint mark, TRAPS);
164
165 objArrayOop sites() { return (objArrayOop) JNIHandles::resolve(_sites_handle); }
166 arrayOop code() { return (arrayOop) JNIHandles::resolve(_code_handle); }
167 arrayOop data_section() { return (arrayOop) JNIHandles::resolve(_data_section_handle); }
168 objArrayOop data_section_patches() { return (objArrayOop) JNIHandles::resolve(_data_section_patches_handle); }
169 objArrayOop exception_handlers() { return (objArrayOop) JNIHandles::resolve(_exception_handlers_handle); }
170 #ifndef PRODUCT
171 objArrayOop comments() { return (objArrayOop) JNIHandles::resolve(_comments_handle); }
172 #endif
173
174 oop word_kind() { return (oop) JNIHandles::resolve(_word_kind_handle); }
175
176 public:
177
178 CodeInstaller() : _arena(mtCompiler) {}
179
180 JVMCIEnv::CodeInstallResult gather_metadata(Handle target, Handle compiled_code, CodeMetadata& metadata, TRAPS);
181 JVMCIEnv::CodeInstallResult install(JVMCICompiler* compiler, Handle target, Handle compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log, TRAPS);
182
183 static address runtime_call_target_address(oop runtime_call);
184 static VMReg get_hotspot_reg(jint jvmciRegisterNumber, TRAPS);
185 static bool is_general_purpose_reg(VMReg hotspotRegister);
186
187 const OopMapSet* oopMapSet() const { return _debug_recorder->_oopmaps; }
188
189 protected:
190 Location::Type get_oop_type(Handle value);
191 ScopeValue* get_scope_value(Handle value, BasicType type, GrowableArray<ScopeValue*>* objects, ScopeValue* &second, TRAPS);
192 MonitorValue* get_monitor_value(Handle value, GrowableArray<ScopeValue*>* objects, TRAPS);
193
194 Metadata* record_metadata_reference(Handle constant, TRAPS);
195 #ifdef _LP64
196 narrowKlass record_narrow_metadata_reference(Handle constant, TRAPS);
197 #endif
198
199 // extract the fields of the CompilationResult
200 void initialize_fields(oop target, oop target_method, TRAPS);
201 void initialize_dependencies(oop target_method, OopRecorder* oop_recorder, TRAPS);
|