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; |