172 oop word_kind() { return (oop) JNIHandles::resolve(_word_kind_handle); } 173 174 public: 175 176 CodeInstaller() : _arena(mtCompiler) {} 177 178 JVMCIEnv::CodeInstallResult gather_metadata(Handle target, Handle compiled_code, CodeMetadata& metadata, TRAPS); 179 JVMCIEnv::CodeInstallResult install(JVMCICompiler* compiler, Handle target, Handle compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log, TRAPS); 180 181 static address runtime_call_target_address(oop runtime_call); 182 static VMReg get_hotspot_reg(jint jvmciRegisterNumber, TRAPS); 183 static bool is_general_purpose_reg(VMReg hotspotRegister); 184 185 const OopMapSet* oopMapSet() const { return _debug_recorder->_oopmaps; } 186 187 protected: 188 Location::Type get_oop_type(Handle value); 189 ScopeValue* get_scope_value(Handle value, BasicType type, GrowableArray<ScopeValue*>* objects, ScopeValue* &second, TRAPS); 190 MonitorValue* get_monitor_value(Handle value, GrowableArray<ScopeValue*>* objects, TRAPS); 191 192 void* record_metadata_reference(Handle constant, TRAPS); 193 #ifdef _LP64 194 narrowKlass record_narrow_metadata_reference(Handle constant, TRAPS); 195 #endif 196 197 // extract the fields of the HotSpotCompiledCode 198 void initialize_fields(oop target, oop target_method, TRAPS); 199 void initialize_dependencies(oop target_method, OopRecorder* oop_recorder, TRAPS); 200 201 int estimate_stubs_size(TRAPS); 202 203 // perform data and call relocation on the CodeBuffer 204 JVMCIEnv::CodeInstallResult initialize_buffer(CodeBuffer& buffer, TRAPS); 205 206 void assumption_NoFinalizableSubclass(Handle assumption); 207 void assumption_ConcreteSubtype(Handle assumption); 208 void assumption_LeafType(Handle assumption); 209 void assumption_ConcreteMethod(Handle assumption); 210 void assumption_CallSiteTargetValue(Handle assumption); 211 212 void site_Safepoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS); 213 void site_Infopoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS); 214 void site_Call(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS); | 172 oop word_kind() { return (oop) JNIHandles::resolve(_word_kind_handle); } 173 174 public: 175 176 CodeInstaller() : _arena(mtCompiler) {} 177 178 JVMCIEnv::CodeInstallResult gather_metadata(Handle target, Handle compiled_code, CodeMetadata& metadata, TRAPS); 179 JVMCIEnv::CodeInstallResult install(JVMCICompiler* compiler, Handle target, Handle compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log, TRAPS); 180 181 static address runtime_call_target_address(oop runtime_call); 182 static VMReg get_hotspot_reg(jint jvmciRegisterNumber, TRAPS); 183 static bool is_general_purpose_reg(VMReg hotspotRegister); 184 185 const OopMapSet* oopMapSet() const { return _debug_recorder->_oopmaps; } 186 187 protected: 188 Location::Type get_oop_type(Handle value); 189 ScopeValue* get_scope_value(Handle value, BasicType type, GrowableArray<ScopeValue*>* objects, ScopeValue* &second, TRAPS); 190 MonitorValue* get_monitor_value(Handle value, GrowableArray<ScopeValue*>* objects, TRAPS); 191 192 void* record_metadata_reference(CodeSection* section, address dest, Handle constant, TRAPS); 193 #ifdef _LP64 194 narrowKlass record_narrow_metadata_reference(CodeSection* section, address dest, Handle constant, TRAPS); 195 #endif 196 197 // extract the fields of the HotSpotCompiledCode 198 void initialize_fields(oop target, oop target_method, TRAPS); 199 void initialize_dependencies(oop target_method, OopRecorder* oop_recorder, TRAPS); 200 201 int estimate_stubs_size(TRAPS); 202 203 // perform data and call relocation on the CodeBuffer 204 JVMCIEnv::CodeInstallResult initialize_buffer(CodeBuffer& buffer, TRAPS); 205 206 void assumption_NoFinalizableSubclass(Handle assumption); 207 void assumption_ConcreteSubtype(Handle assumption); 208 void assumption_LeafType(Handle assumption); 209 void assumption_ConcreteMethod(Handle assumption); 210 void assumption_CallSiteTargetValue(Handle assumption); 211 212 void site_Safepoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS); 213 void site_Infopoint(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS); 214 void site_Call(CodeBuffer& buffer, jint pc_offset, Handle site, TRAPS); |