Mercurial > hg > truffle
comparison src/share/vm/opto/matcher.cpp @ 6795:7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose
author | roland |
---|---|
date | Thu, 20 Sep 2012 16:49:17 +0200 |
parents | da91efe96a93 |
children | e626685e9f6c |
comparison
equal
deleted
inserted
replaced
6794:8ae8f9dd7099 | 6795:7eca5de9e0b6 |
---|---|
2132 case Op_CompareAndSwapI: | 2132 case Op_CompareAndSwapI: |
2133 case Op_CompareAndSwapL: | 2133 case Op_CompareAndSwapL: |
2134 case Op_CompareAndSwapP: | 2134 case Op_CompareAndSwapP: |
2135 case Op_CompareAndSwapN: { // Convert trinary to binary-tree | 2135 case Op_CompareAndSwapN: { // Convert trinary to binary-tree |
2136 Node *newval = n->in(MemNode::ValueIn ); | 2136 Node *newval = n->in(MemNode::ValueIn ); |
2137 Node *oldval = n->in(LoadStoreNode::ExpectedIn); | 2137 Node *oldval = n->in(LoadStoreConditionalNode::ExpectedIn); |
2138 Node *pair = new (C, 3) BinaryNode( oldval, newval ); | 2138 Node *pair = new (C, 3) BinaryNode( oldval, newval ); |
2139 n->set_req(MemNode::ValueIn,pair); | 2139 n->set_req(MemNode::ValueIn,pair); |
2140 n->del_req(LoadStoreNode::ExpectedIn); | 2140 n->del_req(LoadStoreConditionalNode::ExpectedIn); |
2141 break; | 2141 break; |
2142 } | 2142 } |
2143 case Op_CMoveD: // Convert trinary to binary-tree | 2143 case Op_CMoveD: // Convert trinary to binary-tree |
2144 case Op_CMoveF: | 2144 case Op_CMoveF: |
2145 case Op_CMoveI: | 2145 case Op_CMoveI: |