hotspot/src/share/vm/oops/method.hpp
changeset 26558 b7df27df6384
parent 25895 03808d9a48b2
child 26799 0c349e16bbe8
equal deleted inserted replaced
26557:e399effe36f9 26558:b7df27df6384
    78   enum Flags {
    78   enum Flags {
    79     _jfr_towrite      = 1 << 0,
    79     _jfr_towrite      = 1 << 0,
    80     _caller_sensitive = 1 << 1,
    80     _caller_sensitive = 1 << 1,
    81     _force_inline     = 1 << 2,
    81     _force_inline     = 1 << 2,
    82     _dont_inline      = 1 << 3,
    82     _dont_inline      = 1 << 3,
    83     _hidden           = 1 << 4
    83     _hidden           = 1 << 4,
       
    84     _running_emcp     = 1 << 5
    84   };
    85   };
    85   u1 _flags;
    86   u1 _flags;
    86 
    87 
    87 #ifndef PRODUCT
    88 #ifndef PRODUCT
    88   int               _compiled_invocation_count;  // Number of nmethod invocations so far (for perf. debugging)
    89   int               _compiled_invocation_count;  // Number of nmethod invocations so far (for perf. debugging)
   686   void set_is_old()                                 { _access_flags.set_is_old(); }
   687   void set_is_old()                                 { _access_flags.set_is_old(); }
   687   bool is_obsolete() const                          { return access_flags().is_obsolete(); }
   688   bool is_obsolete() const                          { return access_flags().is_obsolete(); }
   688   void set_is_obsolete()                            { _access_flags.set_is_obsolete(); }
   689   void set_is_obsolete()                            { _access_flags.set_is_obsolete(); }
   689   bool is_deleted() const                           { return access_flags().is_deleted(); }
   690   bool is_deleted() const                           { return access_flags().is_deleted(); }
   690   void set_is_deleted()                             { _access_flags.set_is_deleted(); }
   691   void set_is_deleted()                             { _access_flags.set_is_deleted(); }
       
   692 
       
   693   bool is_running_emcp() const {
       
   694     // EMCP methods are old but not obsolete or deleted. Equivalent
       
   695     // Modulo Constant Pool means the method is equivalent except
       
   696     // the constant pool and instructions that access the constant
       
   697     // pool might be different.
       
   698     // If a breakpoint is set in a redefined method, its EMCP methods that are
       
   699     // still running must have a breakpoint also.
       
   700     return (_flags & _running_emcp) != 0;
       
   701   }
       
   702 
       
   703   void set_running_emcp(bool x) {
       
   704     _flags = x ? (_flags | _running_emcp) : (_flags & ~_running_emcp);
       
   705   }
       
   706 
   691   bool on_stack() const                             { return access_flags().on_stack(); }
   707   bool on_stack() const                             { return access_flags().on_stack(); }
   692   void set_on_stack(const bool value);
   708   void set_on_stack(const bool value);
   693 
   709 
   694   // see the definition in Method*.cpp for the gory details
   710   // see the definition in Method*.cpp for the gory details
   695   bool should_not_be_cached() const;
   711   bool should_not_be_cached() const;