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