src/share/vm/oops/methodData.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8031320_8u Cdiff src/share/vm/oops/methodData.hpp

src/share/vm/oops/methodData.hpp

Print this page
rev 5968 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed

*** 1859,1869 **** bool is_methodData() const volatile { return true; } // Whole-method sticky bits and flags enum { ! _trap_hist_limit = 18, // decoupled from Deoptimization::Reason_LIMIT _trap_hist_mask = max_jubyte, _extra_data_count = 4 // extra DataLayout headers, for trap history }; // Public flag values private: uint _nof_decompiles; // count of all nmethod removals --- 1859,1869 ---- bool is_methodData() const volatile { return true; } // Whole-method sticky bits and flags enum { ! _trap_hist_limit = 19, // decoupled from Deoptimization::Reason_LIMIT _trap_hist_mask = max_jubyte, _extra_data_count = 4 // extra DataLayout headers, for trap history }; // Public flag values private: uint _nof_decompiles; // count of all nmethod removals
*** 1890,1899 **** --- 1890,1905 ---- // Same for backedges. InvocationCounter _backedge_counter; // Counter values at the time profiling started. int _invocation_counter_start; int _backedge_counter_start; + + #if INCLUDE_RTM_OPT + // State of RTM code generation during compilation of the method + int _rtm_state; + #endif + // Number of loops and blocks is computed when compiling the first // time with C1. It is used to determine if method is trivial. short _num_loops; short _num_blocks; // Highest compile level this method has ever seen.
*** 2053,2062 **** --- 2059,2084 ---- } InvocationCounter* invocation_counter() { return &_invocation_counter; } InvocationCounter* backedge_counter() { return &_backedge_counter; } + #if INCLUDE_RTM_OPT + int rtm_state() const { + return _rtm_state; + } + void set_rtm_state(RTMState rstate) { + _rtm_state = (int)rstate; + } + void atomic_set_rtm_state(RTMState rstate) { + Atomic::store((int)rstate, &_rtm_state); + } + + static int rtm_state_offset_in_bytes() { + return offset_of(MethodData, _rtm_state); + } + #endif + void set_would_profile(bool p) { _would_profile = p; } bool would_profile() const { return _would_profile; } int highest_comp_level() const { return _highest_comp_level; } void set_highest_comp_level(int level) { _highest_comp_level = level; }
src/share/vm/oops/methodData.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File