src/share/vm/jvmci/jvmciCodeInstaller.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/jvmci/jvmciCodeInstaller.hpp	Mon Oct 31 17:46:51 2016
--- new/src/share/vm/jvmci/jvmciCodeInstaller.hpp	Mon Oct 31 17:46:51 2016

*** 41,50 **** --- 41,65 ---- size_t _size; char _static_buffer[stack_size]; char *_buffer; }; + class AOTOopRecorder : public OopRecorder { + public: + AOTOopRecorder(Arena* arena = NULL, bool deduplicate = false); + + virtual int find_index(Metadata* h); + virtual int find_index(jobject h); + int nr_meta_strings() const; + const char* meta_element(int pos) const; + + private: + void record_meta_string(const char* name, int index); + + GrowableArray<const char*>* _meta_strings; + }; + class CodeMetadata { public: CodeMetadata() {} CodeBlob* get_code_blob() const { return _cb; }
*** 55,64 **** --- 70,81 ---- u_char* get_scopes_desc() const { return _scopes_desc; } int get_scopes_size() const { return _nr_scopes_desc; } RelocBuffer* get_reloc_buffer() { return &_reloc_buffer; } + AOTOopRecorder* get_oop_recorder() { return _oop_recorder; } + ExceptionHandlerTable* get_exception_table() { return _exception_table; } void set_pc_desc(PcDesc* desc, int count) { _pc_desc = desc; _nr_pc_desc = count;
*** 67,76 **** --- 84,97 ---- void set_scopes(u_char* scopes, int size) { _scopes_desc = scopes; _nr_scopes_desc = size; } + void set_oop_recorder(AOTOopRecorder* recorder) { + _oop_recorder = recorder; + } + void set_exception_table(ExceptionHandlerTable* table) { _exception_table = table; } private:
*** 80,89 **** --- 101,111 ---- u_char* _scopes_desc; int _nr_scopes_desc; RelocBuffer _reloc_buffer; + AOTOopRecorder* _oop_recorder; ExceptionHandlerTable* _exception_table; }; /* * This class handles the conversion from a InstalledCode to a CodeBlob or an nmethod.
*** 110,119 **** --- 132,142 ---- CARD_TABLE_SHIFT = 16, HEAP_TOP_ADDRESS = 17, HEAP_END_ADDRESS = 18, NARROW_KLASS_BASE_ADDRESS = 19, CRC_TABLE_ADDRESS = 20, + LOG_OF_HEAP_REGION_GRAIN_BYTES = 21, INVOKE_INVALID = -1 }; Arena _arena;
*** 144,153 **** --- 167,178 ---- OopRecorder* _oop_recorder; DebugInformationRecorder* _debug_recorder; Dependencies* _dependencies; ExceptionHandlerTable _exception_handler_table; + bool _immutable_pic_compilation; // Installer is called for Immutable PIC compilation. + static ConstantOopWriteValue* _oop_null_scope_value; static ConstantIntValue* _int_m1_scope_value; static ConstantIntValue* _int_0_scope_value; static ConstantIntValue* _int_1_scope_value; static ConstantIntValue* _int_2_scope_value;
*** 171,181 **** --- 196,206 ---- oop word_kind() { return (oop) JNIHandles::resolve(_word_kind_handle); } public: ! CodeInstaller(bool immutable_pic_compilation) : _arena(mtCompiler), _immutable_pic_compilation(immutable_pic_compilation) {} JVMCIEnv::CodeInstallResult gather_metadata(Handle target, Handle compiled_code, CodeMetadata& metadata, TRAPS); JVMCIEnv::CodeInstallResult install(JVMCICompiler* compiler, Handle target, Handle compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log, TRAPS); static address runtime_call_target_address(oop runtime_call);

src/share/vm/jvmci/jvmciCodeInstaller.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File