equal
deleted
inserted
replaced
149 MarkForDeoptimizationStatus _mark_for_deoptimization_status; // Used for stack deoptimization |
149 MarkForDeoptimizationStatus _mark_for_deoptimization_status; // Used for stack deoptimization |
150 |
150 |
151 bool _is_far_code; // Code is far from CodeCache. |
151 bool _is_far_code; // Code is far from CodeCache. |
152 // Have to use far call instructions to call it from code in CodeCache. |
152 // Have to use far call instructions to call it from code in CodeCache. |
153 |
153 |
154 volatile uint8_t _is_unloading_state; // Local state used to keep track of whether unloading is happening or not |
|
155 |
|
156 // set during construction |
154 // set during construction |
157 unsigned int _has_unsafe_access:1; // May fault due to unsafe access. |
155 unsigned int _has_unsafe_access:1; // May fault due to unsafe access. |
158 unsigned int _has_method_handle_invokes:1; // Has this method MethodHandle invokes? |
156 unsigned int _has_method_handle_invokes:1; // Has this method MethodHandle invokes? |
159 unsigned int _lazy_critical_native:1; // Lazy JNI critical native |
157 unsigned int _lazy_critical_native:1; // Lazy JNI critical native |
160 unsigned int _has_wide_vectors:1; // Preserve wide vectors at safepoints |
158 unsigned int _has_wide_vectors:1; // Preserve wide vectors at safepoints |
388 |
386 |
389 public: |
387 public: |
390 // GC unloading support |
388 // GC unloading support |
391 // Cleans unloaded klasses and unloaded nmethods in inline caches |
389 // Cleans unloaded klasses and unloaded nmethods in inline caches |
392 |
390 |
393 bool is_unloading(); |
391 virtual bool is_unloading() = 0; |
394 |
392 |
395 void unload_nmethod_caches(bool class_unloading_occurred); |
393 void unload_nmethod_caches(bool class_unloading_occurred); |
396 void clear_unloading_state(); |
|
397 virtual void do_unloading(bool unloading_occurred) { } |
394 virtual void do_unloading(bool unloading_occurred) { } |
398 |
395 |
399 private: |
396 private: |
400 PcDesc* find_pc_desc(address pc, bool approximate) { |
397 PcDesc* find_pc_desc(address pc, bool approximate) { |
401 return _pc_desc_container.find_pc_desc(pc, approximate, PcDescSearch(code_begin(), scopes_pcs_begin(), scopes_pcs_end())); |
398 return _pc_desc_container.find_pc_desc(pc, approximate, PcDescSearch(code_begin(), scopes_pcs_begin(), scopes_pcs_end())); |