src/hotspot/share/code/compiledMethod.hpp
changeset 52659 8b26bd8b1832
parent 52405 c0c6cdea32f1
child 52660 9cb53c505acd
equal deleted inserted replaced
52658:2d18e5ed0f8d 52659:8b26bd8b1832
   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()));