comparison src/share/vm/graal/graalCodeInstaller.hpp @ 17241:6fcb6691fe5f

Add safepoint checks during code installation
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Fri, 26 Sep 2014 16:00:09 -0700
parents 4e2d34d7715b
children 508e88b5f1d3
comparison
equal deleted inserted replaced
17240:136ba6d379f2 17241:6fcb6691fe5f
50 INVOKE_INVALID = -1 50 INVOKE_INVALID = -1
51 }; 51 };
52 52
53 Arena _arena; 53 Arena _arena;
54 54
55 oop _dataSection; 55 jobject _data_section_handle;
56 arrayOop _sites; 56 jobject _sites_handle;
57 arrayOop _exception_handlers; 57 jobject _exception_handlers_handle;
58 CodeOffsets _offsets; 58 CodeOffsets _offsets;
59 59
60 arrayOop _code; 60 jobject _code_handle;
61 jint _code_size; 61 jint _code_size;
62 jint _total_frame_size; 62 jint _total_frame_size;
63 jint _custom_stack_area_offset; 63 jint _custom_stack_area_offset;
64 jint _parameter_count; 64 jint _parameter_count;
65 jint _constants_size; 65 jint _constants_size;
66 #ifndef PRODUCT 66 #ifndef PRODUCT
67 arrayOop _comments; 67 jobject _comments_handle;
68 #endif 68 #endif
69 69
70 MarkId _next_call_type; 70 MarkId _next_call_type;
71 address _invoke_mark_pc; 71 address _invoke_mark_pc;
72 72
84 void pd_relocate_CodeBlob(CodeBlob* cb, NativeInstruction* inst); 84 void pd_relocate_CodeBlob(CodeBlob* cb, NativeInstruction* inst);
85 void pd_relocate_ForeignCall(NativeInstruction* inst, jlong foreign_call_destination); 85 void pd_relocate_ForeignCall(NativeInstruction* inst, jlong foreign_call_destination);
86 void pd_relocate_JavaMethod(oop method, jint pc_offset); 86 void pd_relocate_JavaMethod(oop method, jint pc_offset);
87 void pd_relocate_poll(address pc, jint mark); 87 void pd_relocate_poll(address pc, jint mark);
88 88
89 objArrayOop sites() { return (objArrayOop) JNIHandles::resolve(_sites_handle); }
90 arrayOop code() { return (arrayOop) JNIHandles::resolve(_code_handle); }
91 arrayOop data_section() { return (arrayOop) JNIHandles::resolve(_data_section_handle); }
92 objArrayOop exception_handlers() { return (objArrayOop) JNIHandles::resolve(_exception_handlers_handle); }
93 #ifndef PRODUCT
94 objArrayOop comments() { return (objArrayOop) JNIHandles::resolve(_comments_handle); }
95 #endif
89 96
90 public: 97 public:
91 98
92 CodeInstaller() {}; 99 CodeInstaller() {};
93 GraalEnv::CodeInstallResult install(Handle& compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log); 100 GraalEnv::CodeInstallResult install(Handle& compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log);