167 address _deopt_mh_handler_begin; |
167 address _deopt_mh_handler_begin; |
168 |
168 |
169 PcDescContainer _pc_desc_container; |
169 PcDescContainer _pc_desc_container; |
170 ExceptionCache * volatile _exception_cache; |
170 ExceptionCache * volatile _exception_cache; |
171 |
171 |
|
172 void* _gc_data; |
|
173 |
172 virtual void flush() = 0; |
174 virtual void flush() = 0; |
173 protected: |
175 protected: |
174 CompiledMethod(Method* method, const char* name, CompilerType type, const CodeBlobLayout& layout, int frame_complete_offset, int frame_size, ImmutableOopMapSet* oop_maps, bool caller_must_gc_arguments); |
176 CompiledMethod(Method* method, const char* name, CompilerType type, const CodeBlobLayout& layout, int frame_complete_offset, int frame_size, ImmutableOopMapSet* oop_maps, bool caller_must_gc_arguments); |
175 CompiledMethod(Method* method, const char* name, CompilerType type, int size, int header_size, CodeBuffer* cb, int frame_complete_offset, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments); |
177 CompiledMethod(Method* method, const char* name, CompilerType type, int size, int header_size, CodeBuffer* cb, int frame_complete_offset, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments); |
176 |
178 |
177 public: |
179 public: |
178 virtual bool is_compiled() const { return true; } |
180 virtual bool is_compiled() const { return true; } |
|
181 |
|
182 template<typename T> |
|
183 T* gc_data() const { return reinterpret_cast<T*>(_gc_data); } |
|
184 template<typename T> |
|
185 void set_gc_data(T* gc_data) { _gc_data = reinterpret_cast<void*>(gc_data); } |
179 |
186 |
180 bool has_unsafe_access() const { return _has_unsafe_access; } |
187 bool has_unsafe_access() const { return _has_unsafe_access; } |
181 void set_has_unsafe_access(bool z) { _has_unsafe_access = z; } |
188 void set_has_unsafe_access(bool z) { _has_unsafe_access = z; } |
182 |
189 |
183 bool has_method_handle_invokes() const { return _has_method_handle_invokes; } |
190 bool has_method_handle_invokes() const { return _has_method_handle_invokes; } |