--- old/src/share/vm/opto/memnode.hpp 2016-05-31 12:19:08.949853989 +0300 +++ new/src/share/vm/opto/memnode.hpp 2016-05-31 12:19:08.893854191 +0300 @@ -885,13 +885,19 @@ } }; -//------------------------------CompareAndSwapLNode--------------------------- -class CompareAndSwapLNode : public CompareAndSwapNode { +//------------------------------CompareAndSwapBNode--------------------------- +class CompareAndSwapBNode : public CompareAndSwapNode { public: - CompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } + CompareAndSwapBNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } virtual int Opcode() const; }; +//------------------------------CompareAndSwapSNode--------------------------- +class CompareAndSwapSNode : public CompareAndSwapNode { +public: + CompareAndSwapSNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } + virtual int Opcode() const; +}; //------------------------------CompareAndSwapINode--------------------------- class CompareAndSwapINode : public CompareAndSwapNode { @@ -900,6 +906,12 @@ virtual int Opcode() const; }; +//------------------------------CompareAndSwapLNode--------------------------- +class CompareAndSwapLNode : public CompareAndSwapNode { +public: + CompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } + virtual int Opcode() const; +}; //------------------------------CompareAndSwapPNode--------------------------- class CompareAndSwapPNode : public CompareAndSwapNode { @@ -915,14 +927,19 @@ virtual int Opcode() const; }; - -//------------------------------WeakCompareAndSwapLNode--------------------------- -class WeakCompareAndSwapLNode : public CompareAndSwapNode { +//------------------------------WeakCompareAndSwapBNode--------------------------- +class WeakCompareAndSwapBNode : public CompareAndSwapNode { public: - WeakCompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } + WeakCompareAndSwapBNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } virtual int Opcode() const; }; +//------------------------------WeakCompareAndSwapSNode--------------------------- +class WeakCompareAndSwapSNode : public CompareAndSwapNode { +public: + WeakCompareAndSwapSNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } + virtual int Opcode() const; +}; //------------------------------WeakCompareAndSwapINode--------------------------- class WeakCompareAndSwapINode : public CompareAndSwapNode { @@ -931,6 +948,12 @@ virtual int Opcode() const; }; +//------------------------------WeakCompareAndSwapLNode--------------------------- +class WeakCompareAndSwapLNode : public CompareAndSwapNode { +public: + WeakCompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { } + virtual int Opcode() const; +}; //------------------------------WeakCompareAndSwapPNode--------------------------- class WeakCompareAndSwapPNode : public CompareAndSwapNode { @@ -946,6 +969,21 @@ virtual int Opcode() const; }; +//------------------------------CompareAndExchangeBNode--------------------------- +class CompareAndExchangeBNode : public CompareAndExchangeNode { +public: + CompareAndExchangeBNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeInt::BYTE) { } + virtual int Opcode() const; +}; + + +//------------------------------CompareAndExchangeSNode--------------------------- +class CompareAndExchangeSNode : public CompareAndExchangeNode { +public: + CompareAndExchangeSNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeInt::SHORT) { } + virtual int Opcode() const; +}; + //------------------------------CompareAndExchangeLNode--------------------------- class CompareAndExchangeLNode : public CompareAndExchangeNode { public: @@ -976,6 +1014,20 @@ virtual int Opcode() const; }; +//------------------------------GetAndAddBNode--------------------------- +class GetAndAddBNode : public LoadStoreNode { +public: + GetAndAddBNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::BYTE, 4) { } + virtual int Opcode() const; +}; + +//------------------------------GetAndAddSNode--------------------------- +class GetAndAddSNode : public LoadStoreNode { +public: + GetAndAddSNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::SHORT, 4) { } + virtual int Opcode() const; +}; + //------------------------------GetAndAddINode--------------------------- class GetAndAddINode : public LoadStoreNode { public: @@ -990,6 +1042,19 @@ virtual int Opcode() const; }; +//------------------------------GetAndSetBNode--------------------------- +class GetAndSetBNode : public LoadStoreNode { +public: + GetAndSetBNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::BYTE, 4) { } + virtual int Opcode() const; +}; + +//------------------------------GetAndSetSNode--------------------------- +class GetAndSetSNode : public LoadStoreNode { +public: + GetAndSetSNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::SHORT, 4) { } + virtual int Opcode() const; +}; //------------------------------GetAndSetINode--------------------------- class GetAndSetINode : public LoadStoreNode { @@ -998,7 +1063,7 @@ virtual int Opcode() const; }; -//------------------------------GetAndSetINode--------------------------- +//------------------------------GetAndSetLNode--------------------------- class GetAndSetLNode : public LoadStoreNode { public: GetAndSetLNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeLong::LONG, 4) { }