1.1 --- a/src/share/vm/code/nmethod.hpp Sat Mar 22 00:26:48 2014 +0400 1.2 +++ b/src/share/vm/code/nmethod.hpp Thu Mar 20 17:49:27 2014 -0700 1.3 @@ -193,6 +193,12 @@ 1.4 1.5 jbyte _scavenge_root_state; 1.6 1.7 +#if INCLUDE_RTM_OPT 1.8 + // RTM state at compile time. Used during deoptimization to decide 1.9 + // whether to restart collecting RTM locking abort statistic again. 1.10 + RTMState _rtm_state; 1.11 +#endif 1.12 + 1.13 // Nmethod Flushing lock. If non-zero, then the nmethod is not removed 1.14 // and is not made into a zombie. However, once the nmethod is made into 1.15 // a zombie, it will be locked one final time if CompiledMethodUnload 1.16 @@ -414,6 +420,12 @@ 1.17 bool is_zombie() const { return _state == zombie; } 1.18 bool is_unloaded() const { return _state == unloaded; } 1.19 1.20 +#if INCLUDE_RTM_OPT 1.21 + // rtm state accessing and manipulating 1.22 + RTMState rtm_state() const { return _rtm_state; } 1.23 + void set_rtm_state(RTMState state) { _rtm_state = state; } 1.24 +#endif 1.25 + 1.26 // Make the nmethod non entrant. The nmethod will continue to be 1.27 // alive. It is used when an uncommon trap happens. Returns true 1.28 // if this thread changed the state of the nmethod or false if