1.1 --- a/src/share/vm/opto/locknode.hpp Tue Mar 25 12:54:21 2014 -0700 1.2 +++ b/src/share/vm/opto/locknode.hpp Tue Mar 25 17:07:36 2014 -0700 1.3 @@ -92,13 +92,17 @@ 1.4 //------------------------------FastLockNode----------------------------------- 1.5 class FastLockNode: public CmpNode { 1.6 private: 1.7 - BiasedLockingCounters* _counters; 1.8 + BiasedLockingCounters* _counters; 1.9 + RTMLockingCounters* _rtm_counters; // RTM lock counters for inflated locks 1.10 + RTMLockingCounters* _stack_rtm_counters; // RTM lock counters for stack locks 1.11 1.12 public: 1.13 FastLockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) { 1.14 init_req(0,ctrl); 1.15 init_class_id(Class_FastLock); 1.16 _counters = NULL; 1.17 + _rtm_counters = NULL; 1.18 + _stack_rtm_counters = NULL; 1.19 } 1.20 Node* obj_node() const { return in(1); } 1.21 Node* box_node() const { return in(2); } 1.22 @@ -107,13 +111,17 @@ 1.23 // FastLock and FastUnlockNode do not hash, we need one for each correspoding 1.24 // LockNode/UnLockNode to avoid creating Phi's. 1.25 virtual uint hash() const ; // { return NO_HASH; } 1.26 + virtual uint size_of() const; 1.27 virtual uint cmp( const Node &n ) const ; // Always fail, except on self 1.28 virtual int Opcode() const; 1.29 virtual const Type *Value( PhaseTransform *phase ) const { return TypeInt::CC; } 1.30 const Type *sub(const Type *t1, const Type *t2) const { return TypeInt::CC;} 1.31 1.32 void create_lock_counter(JVMState* s); 1.33 - BiasedLockingCounters* counters() const { return _counters; } 1.34 + void create_rtm_lock_counter(JVMState* state); 1.35 + BiasedLockingCounters* counters() const { return _counters; } 1.36 + RTMLockingCounters* rtm_counters() const { return _rtm_counters; } 1.37 + RTMLockingCounters* stack_rtm_counters() const { return _stack_rtm_counters; } 1.38 }; 1.39 1.40