--- old/src/share/vm/jvmci/jvmciCodeInstaller.hpp 2015-11-02 17:06:51.000000000 -1000 +++ new/src/share/vm/jvmci/jvmciCodeInstaller.hpp 2015-11-02 17:06:51.000000000 -1000 @@ -107,10 +107,11 @@ POLL_FAR = 13, POLL_RETURN_FAR = 14, CARD_TABLE_ADDRESS = 15, - HEAP_TOP_ADDRESS = 16, - HEAP_END_ADDRESS = 17, - NARROW_KLASS_BASE_ADDRESS = 18, - CRC_TABLE_ADDRESS = 19, + CARD_TABLE_SHIFT = 16, + HEAP_TOP_ADDRESS = 17, + HEAP_END_ADDRESS = 18, + NARROW_KLASS_BASE_ADDRESS = 19, + CRC_TABLE_ADDRESS = 20, INVOKE_INVALID = -1 }; @@ -155,8 +156,8 @@ jint pd_next_offset(NativeInstruction* inst, jint pc_offset, oop method); void pd_patch_OopConstant(int pc_offset, Handle& constant); + void pd_patch_MetaspaceConstant(int pc_offset, Handle& constant); void pd_patch_DataSectionReference(int pc_offset, int data_offset); - void pd_relocate_CodeBlob(CodeBlob* cb, NativeInstruction* inst); void pd_relocate_ForeignCall(NativeInstruction* inst, jlong foreign_call_destination); void pd_relocate_JavaMethod(oop method, jint pc_offset); void pd_relocate_poll(address pc, jint mark); @@ -170,11 +171,10 @@ objArrayOop comments() { return (objArrayOop) JNIHandles::resolve(_comments_handle); } #endif - void record_resolved(oop obj); - oop word_kind() { return (oop) JNIHandles::resolve(_word_kind_handle); } public: + CodeInstaller() : _arena(mtCompiler) {} JVMCIEnv::CodeInstallResult gather_metadata(Handle target, Handle& compiled_code, CodeMetadata& metadata); @@ -191,6 +191,11 @@ ScopeValue* get_scope_value(oop value, BasicType type, GrowableArray* objects, ScopeValue* &second); MonitorValue* get_monitor_value(oop value, GrowableArray* objects); + Metadata* record_metadata_reference(Handle& constant); +#ifdef _LP64 + narrowKlass record_narrow_metadata_reference(Handle& constant); +#endif + // extract the fields of the CompilationResult void initialize_fields(oop target, oop target_method); void initialize_dependencies(oop target_method, OopRecorder* oop_recorder);