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: